Calculators

Reference / Paper · 1985

Trokhimenko and Lyubich, Microcalculator, Your Move! (1985, in Russian)

Read the PDF ↗

Mikrokalkulyator, vash khod! (Radio i svyaz', 1985, 224 pp, 100,000 copies): programming methods, games and models of moving vehicles for programmable calculators (in Russian).

Author
Ya. K. Trokhimenko and F. D. Lyubich
Year
1985
Type
Reference / Paper
Language
ru
Credit
Scan via the Internet Archive (archive.org).

← Back to the Reference Library

Trokhimenko and Lyubich, Microcalculator, Your Move! (1985, in Russian)

Я. К.Трохименко, Ф Д.Любич МИКРОКАЛЬКУЛЯТОР ВАШ ХОД! <. 2 «< == 4 г. 9, > вт ы Я. К.Трохименко, Ф Д.Любич МИКРОКАЛЬКУЛЯТОР ВАШ ХО @© Москва «Радио и связь» 1985 ББК 32.97 Т76 УДК 681.321 Трохименко Я. К., Любич Ф. Д. Т76 — Микрокалькулятор, Ваш ход! — М.: Радио и связь, 1985. — 224 с., ил. 40 к. 100000 экз. В популярной форме рассмотрены особенности и мето- дика составления программ работы микрокалькуляторов. Показано их применение для решения разнообразных за- дач, встречающихся в повседневной жизни. Рассмотрены, в частности, решения типовых математических задач, со- ставление оптимального рациона питания и расчет биорит- мов, моделирование игровых автоматов и движения авто- мобиля, полноправное участие микрокалькуляторов в раз- нообразных играх. Для широкого круга читателей, интересующихся возмож- ностями применения микрокалькуляторов. 2405000000- _ 121 124 — 85 ББК 1 32.97 046 (01) - 85 ° Рецензенты: доктор техн. наук проф. Е. П. Балашов, доктор техн. наук проф. С. Д. Пашкеев, кандидат техн. наук В. А. Балыбердин Редакция литературы по электронной технике © Издательство ’Радио и связь’, 1985 ОГЛАВЛЕНИЕ Предисловие ........ еее 4 Глава 1. ЭВМ в кармане............ еее нне. 8 1.1. Картофель и алгоритм ..... еее... 8 1.2. Лингвистика карманных ЭВМ................. 19 1.3. Как работает микрокалькулятор. .............. 26 1.4. Искусство программирования ................ 37 1.5. Будьте внимательны! ....... еее. 46 Глава 2. С микрокалькулятором сквозь ”’дебри’’ математики . 56 2.1. Как обойтись без таблиц? ....... еее. 56 2.2. В поисках корня......... еее ьнне я 65 2.3. Сколько было винограда, или как решить систему уравнений?........... уе 718 2.4. Немного статистики........ еее нна я 89 2.5. Блуждание в тумане, или оптимизация параметров. ... 101 Глава 3. Наука и жизнь. „. еее ооо 114 3.1. Подарок молодым хозяйкам ................. 114 3.2. Ваш день рождения и биоритмы ............... 126 3.3. Покупать ли шкаф?.. „лень. 134 3.4. ”’Регата”’ на клавишах. ...... еее 145 3.5. Берегите автомобиль!........ еее. 158 Глава 4. Микрокалькулятор, Ваш ход!................ 170 4.1. Может ли мыслить микрокалькулятор?........... 170 4.2. Игры с камешками ......... еее 179 4.3. Микрокалькулятор играет в шахматы. ........... 193 4.4. ’Коктейль” из стратегий... ... еее. 207 4.5. Игры со случаем ........ еее а 214 Список литературы.... ..... еее, 223 Хвала человеку! Возьми, оглянись — Сколько прошел он, мечтая! За механизмом творит механизм, Себя самого удивляя. Пожнет он и снова растит семена, А машину за то и ценят, Что, его без конца заменяя, она До конца никогда не заменит. Вл. Котов ПРЕДИСЛОВИЕ Совсем недавно электронные вычислительные машины использовались сравнительно небольшим кругом специ- алистов. Сегодня положение принципиально изменилось, так как каждому доступны простейшие малогабаритные ЭВМ, называемые микрокалькуляторами. Микрокалькуля- торы, предназначенные для школьников, выполняют лишь четыре арифметических действия над числами, а наиболее совершенные из современных программируемых микро- калькуляторов карманных габаритов по своим возмож- ностям превосходят многие универсальные ЭВМ первых поколений, занимавшие несколько просторных помеще- ний. Можно без особого риска предсказать, что уже в бли- жайшем будущем внедрение микрокалькуляторов (со- бенно программируемых) и персональных микро-ЭВМ не только повлияет на методику преподавания в средней и высшей школах, но также изменит наш подход к решению многих практических задач. В этой книге, предназначенной для широкого круга чи- тателей, не рассматривается внутреннее устройство микро- калькуляторов, представляющее интерес только для спе- циалистов. Задача книги - помочь читателю, не имеющему достаточной подготовки по вычислительной технике и про- граммированию ЭВМ, в эффективном использовании мик- рокалькуляторов (в основном — программируемых) для решения разнообразных практических задач. Особое вни- мание в книге уделено участию простейших программиру- емых микрокалькуляторов в качестве полноправных и ”удачливых” партнеров в различного рода играх - область, которую совсем недавно относили к привилегиям человека или, по крайней мере, универсальных ЭВМ с колоссальной памятью и быстродействием. В книге сравнительно небольшого объема трудно под- робно рассмотреть все стороны возможных применений микрокалькуляторов, но авторы могут считать свою зада- чу выполненной, если книга побудит читателя к развитию приведенных примеров и самостоятельному поиску. 3в, # 8 « . О р.сз2 ре Г а я\ . 2 Зееик =— тем 2 о < - =— - 2 о > ее ЕЕ ‚р ЭВМ В КАРМАНЕ КАРТОФЕЛЬ И АЛГОРИТМ ЛИНГВИСТИКА КАРМАННЫХ ЭВМ КАК РАБОТАЕТ МИКРОКАЛЬКУЛЯТОР ИСКУССТВО ПРОГРАММИРОВАНИЯ БУДЬТЕ ВНИМАТЕЛЬНЫ! ЭВМ В КАРМАНЕ 1.1. Картофель и алгоритм Микрокалькуляторы предназначены для вычислений или, Другими словами, выполнения определенных оперя- ций над числами. Однако сами по себе вычисления, за ис- ключением учебных упражнений, не являются самоцелью и служат лишь средством решения практических задач. Одна и та же задача может быть решена, как правило, раз- личными способами, а требуемые количество и слож- ность вычислительных или других операций определяются выбранным способом. В простейших случаях план решения конкретной задачи составляют мысленно, но чаще прихо- дится прибегать к его изложению на бумаге с использо- ванием математических моделей. Математику (греческое слово матема” означает наука) не случайно называют языком природы — ее предметом, по определению Ф. Энгельса, являются количественные отношения и пространственные формы окружающего ми- ра. Физические (реально существующие) явления и при- чинно-следственные связи между ними приближенно моделируют различными способами с помощью словесных описаний, физических макетов и математических моде- лей (множеств геометрических. символов и условных знаков, связанных между собой по определенным пра- вилам и отображающих числа и отношения между ними). Требуемая точность отображения свойств модели- руемых объектов зависит от назначения модели. Изобра- жение автомобиля (рис. 1,4) образовано геометрическими символами в виде линий и, строго говоря, не является математической моделью. Бесспорно, такая модель более приближенно отображает конструкцию автомобиля, чем инженерный чертеж, но ее точность соответствует назна- чению: показать общий вид автомобиля. А вот ’’генеало- гическое древо”, представленное на рис.1, б, точно отобра- жает отношение типа ”кто чей ребенок” в семействе и, несмотря на некоторую вольность формы, относится к математическим моделям, называемым графами и опи- сывающим отношения между множеством объектов. Чаще используют алгебраические (буквенные) моде- ли, составленные по определенным правилам из букв и услевных знаков, отображающих числа и операции над ними. Примером может служить математическая модель в виде формулы 2х2 = ? (рис. 1,6), в которой знаком вопроса обозначаем неизвестный результат умножения. Такая формула в общем виде моделирует один из спо- ‘собов подсчета числа объектов в двух мнежествах, со- держащих по два объекта. Могущество математики и заключается в общности (абстрактности) математи- ческих моделей, позволяющих отобразить бесконечное многообразие отношений между явлениями природы с помощью конечного числа символов. Составление плана решения большинства практических задач в основном сводится к поиску таких математических моделей, условий и путей решения задачи, которые позво- ляют свести исходную проблему к решению типовых мате- Рис. |. Математические модели матических задач. Процесс решения задачи в общем случае состоит из ряда взаимосвязанных этапов: 1) формулиров- ка задачи, заключающаяся в выборе математической моде- ли, связывающей исходные данные с требуемым результа- том решения; 2) выбор метода решения, заключающегося в таких преобразованиях исходной модели, которые позво- ляют получить искомый результат решения с допустимой точностью; 3) выбор способа (алгоритма) решения задачи, обеспечивающего получение искомого результата с мини- мальными затратами времени или материальных средств; 4) выполнение предусмотренных выбранным алгоритмом операций для получения искомого результата; 5) провер- ка соответствия полученного результата требованиям зада- чи (проверка точности решения). Возможность упрощения решения задачи при ее удачной формулировке наглядно видна на примере известной зада- чи о птице, которая должна перелетать с одного столба на другой по кратчайшему пути, коснувшись земли. Непосред- ственная математическая формулировка этой задачи сво- дится к заданию в качестве исходных данных высот а и столбов и расстояния между ними @ при искомом рассто- янии х от одного из столбов до точки касания земли (рис. 2, а), соответствующему кратчайшему расстоянию Й = =й, +Й.. При такой формулировке для определения крат- чайшего пути следует согласно теореме Пифагора составить выражение й =Й, +Й. =\/а “+х +3" + (4-х) * ипо- добрать значение х, соответствующее минимальному значе- нию Й. Однако такой путь решения задачи достаточно гро- моздок, так как связан с многократным вычислением зна- чений Й для различных значений х. | Между тем, незначительно изменив исходную модель, можно существенно упростить решение рассматриваемой задачи. Для этого достаточно начертить зеркальное отобра- жение одного из столбов ис. 2,6). В этом случае длина кратчайшего пути Й =\ (@ +)" + 4°,аиз подобия тре- угольников на чертеже искомое значение х = аа/(@а +Ь). Таким образом, изменение формулировки задачи опре- делило и выбор более удачного метода ее решения. Методом называют общий подход к решению определен- ного класса задач, причем различают прямые (точные) и косвенные (приближенные) методы. Прямыми называют методы, обеспечивающие получение результата после вы- полнения заранее известного числа определенных операций. В косвенных методах число операций заранее неизвестно, а вычисления прекращают после получения результата с допустимой точностью. Алгоритмом называют описание способа решения кон- кретной задачи в виде конечной последовательности одно- значных описаний выполнимых операций, приводящих к искомому результату. В этом определении слово ”выпол- нимый” означает, что исполнитель алгоритма может выпол- нять операцию имеющимися в его распоряжении средства- ми. В случае, когда описание операции невыполнимо (в частности, исполнитель не знает, как это сделать), то его заменяют последовательностью описания более простых и выполнимых операций. Поэтому в зависимости от знаний Рис. 2. Модели условий задачи о вороне и возможностей исполнителя решение задачи выбранным методом отображают алгоритмами, содержащими различ- ные последовательности описаний операций. Алгоритм представляют словесно-формульным описани- ем, схемой или программой. Словесно-формульное описа- ние обычно составляют из обозначенных порядковыми но- мерами описаний отдельных операций (@пагов или блоков алгоритма) с указанием последовательности их выполне- ния. Такие указания необходимы при переходах к выпол- нению операции, не следующей по порядку. Если переход зависит от соответствия результата выполнения предыду- щей операции некоторому условию, то его называют услов- ным, в противном случае — безусловным. Более наглядно представление алгоритма в виде схемы: описания операций проверки заданных условий заключают в ромбы с выходом ”Да” или 1 при выполнении и ”Нет” или 0 при невыполнении проверяемого условия; описания остальных операций заключают в прямоугольники, а пре- кращение решения задачи обозначают овалом. Все такие блоки схемы соединяют между собой линиями со стрелка- ми, указывающими последовательность выполнения опе- раций. Представление алгоритма упрощается при замене каждо- го описания операций условным символом (оператором). В этом случае алгоритм можно отобразить последователь- ностью операций, называемой программой. Трудности возникают в связи с необходимостью отобра- жения в последовательности операторов разветвлений алго- ритма. Поэтому вводят операторы безусловного перехода, например БП А, где после команды БП (безусловного пе- рехода) записывают символ А, указывающий, с какого оператора должна выполняться программа после перехода. Переходы, зависящие от проверяемого условия, обычно отображают операторами условного перехода, занимающи- ми также два шага программы и состоящими из символа [2 проверяемого условия (например, х = 0), после которого записывают указатель 4 перехода при невыполнении (ино- гда при выполнении) проверяемого условия. Если это ус- ловие удовлетворяется, то программа продолжает выпол- няться с оператора, записанного после оператора условного перехода. В программах используют один из двух основных спосо- бов передачи управления при переходах. В первом из них указателем 4 перехода (передачи управления) является адрес (символ порядкового номера) оператора програм- мы, которому передается управление. Во втором указате- лем А перехода служит определенный символ (метка), записываемый также перед тем оператором, которому пе- редается управление при переходе. Кстати, эти указатели перехода применяют не только в программах. В книгах можно встретить указатели пе- рехода в виде адресов (например, см. стр. 106” или см. рис 22”) ‚ так и в виде меток-звездочек или цифр для перехода к примечаниям. После решения задачи в соответствии с выбранным алго- ритмом иногда оказывается необходимым проверять точ- ность решения. Это относится к случаям, когда при выборе формулировки математической модели, метода и алгорит-. ма нельзя полностью учесть особенности решения задачи — например, различного рода погрешности, зависящие от вы- бранного метода решения, и операционные ошибки, возни- кающие при выполнении операций. Часто проверка резуль- тата точности оказывается более существенной, чем сам ре- зультат, так как позволяет оценить преимущества и недо- статки выбранного пути решения задачи. Следует добавить, что хорошо составленный алгоритм позволяет не задумы- ваясь (”механически”) решать задачу и, следовательно, может служить основой для полной или частичной автома- тизации решения задачи при помощи автоматов. Попробуем показать это на следующей элементарной си- туации, которая иногда встречается в быту. Вам, например, потребовалось сварить картофель. В общем случае алгоритм решения задачи описывается словами ’’сварить картофель”. Если вы впервые столкнулись с этой задачей, то это описа- ние будет непонятным и, следовательно, невыполнимым. Для получения искомого результата (вареного картофе- ля) можно воспользоваться двумя методами: советами специалиста или поваренной книгой. Сложить 8 Очистить Очистить кастрюлю с водой картофель кортофель || а 7 Варить 20 мин Сложить 6 Сложить 8 кастрюлю с 80900 кастрюлю с водой | | в ый У Выключить лит Варить 15 мин Варить 45 мин Г Картофель $0106 3 у Картофель ЕТ готов ? Выключить Выключить | Пит плиту 6) Рис. 3. Схемы алгоритмов решения задачи о варке картофеля Узнав, что картофель варится около 20 мин, можно со- ставить для решения задачи следующий алгоритм: 1. Сложить картофель в кастрюлю с водой. 2. Варить 20 мин. 3. Выключить плиту. Несмотря на простоту схемы этого алгоритма (рис. 3,4), попытка его реализации может окончиться неудачей, когда картофель окажется сыроватым или разварится. В сборни- ке алгоритмов решения подобных задач, называемом пова- ренной книгой, есть следующее описание: ”очистить карто- фель, сложить в кастрюлю с водой и варить до готовности”. В этом описании непонятны слова ”варить до готовности”, но в быту готовность картофеля проверяется очень просто; если картофель легко протыкается, то он готов. Используя эту информацию, можно составить следующий алгоритм: 1. Очистить картофель. 2. Сложить в кастрюлю с водой. 3. Варить 15 мин. 4. Если картофель готов, то выключить плиту, иначе пе- рейти к п. 5; . Варить 5 мин. мл. Если картофель готов, то выключить плиту, иначе пе- © рейти к п. 7; 7. Варить 5 мин. 8. Если картофель готов, то выключить плиту, иначе пе- рейти к п. 9; 9. Варить 5 мин. 10. Выключить плиту. Как видно, в нем учтены все последовательные операции варки картофеля. Представим этот алгоритм программой, выбрав в качест- ве операторов начальные буквы описания операций Оч, Сл и ВМ!, где М — число минут варки картофеля. Прекраще- ние решения задачи обозначим оператором С/П (’стоп/ пуск”), рассудив, что для повторного решения задачи сле- дует прекратить ее предыдущее решение. При таком выбо- ре операторов первый из алгоритмов (ис. 3, 4) отображал- ся весьма короткой программой (Сл В20 СП), но в силу доказанных недостатков этого алгоритма такая программа имела чисто теоретическое значение. Для представления программой второго алгоритма сле- довало выбрать символ оператора с проверкой условия Картофель готов?” Остановимся на символе х = 0 А, где буква х определяет отклонение состояния картофеля от готового, а буквой А обозначен порядковый номер (адрес) оператора, с которого должно продолжаться выполнение программы в случае неготовности картофеля. Так как при готовности должен выполняться следующий оператор про- граммы, то определенный таким образом оператор описыва- ется условным предложением: ”если картофель готов, то перейти к следующей по порядку операции, иначе перейти к операции с адресом А. С учетом сокращенного обозначе- ния такого оператора последний из составленных алгорит- мов отображался программой Оч Сл В15 х=0 7 СШ В5 х=0 11 СШ В$5 х=0 15 В5 С. Заметим, что длину этой программы можно сократить при использовании оператора х =0А (”если картофель не готов, то перейти к следующей операции, иначе перейти к операции с адресом 4”). Но такая замена не изменяет су- щества алгоритма и нужно искать лучшее решение. Попро- буем вынести один из одинаковых фрагментов отдельно в виде подпрограммы, а в исходной программе на место каж- дого из таких фрагментов записать оператор ПП А обраще- ния к подпрограмме с адресом А начального оператора под- программы. Окончив подпрограмму оператором В/О, озна- чавшим, что после выполнения подпрограммы следует воз- вратиться обратно к тому месту программы, откуда выпол- нено обращение к подпрограмме, получим следующую про- грамму: Оч Сл В15 ПП 12 Ш 12 Ш 12 СШ х=0 10 В5 В/О К сожалению, введение подпрограммы не привело к со- кращению длины программы, но можно заметить другую возможность — сохранить лишь один из повторяющихся фрагментов, но выполнять его требуемое число раз, орга- низовав цикл. Лля подсчета числа выполнений такого фраг- мента используем счетчик, обозначаемый символом к =к+1 и означающий, что после каждого выполнения такого счет- чика его содержимое увеличивается на единицу. При началь- ном значении к = 0 после п выполнений такого счетчика его содержимое становится равным к = п. Для прекращения варки картофеля после трех выполнений такого оператора- счетчика решаем ввести оператор х =3 4, передающий опе- ратору с адресом 4 в начале цикла при к < 3 или оператору С/П при к =3: Оч Сл В10 В5 х=0 11 В5 к=к+1 х=3 4 СШ. Согласно составленной программе варка картофеля пре- кращалась оператором х =0 11, если готовность достига- лась за 15, 20 или 25 мин. Если картофель не был готов за это время, то он варился еще 5 мин, после чего плита вык- лючалась. Размышления над этой программой приводят к более плодотворной идее — прекращать варку картофеля только после его готовности. Для большей точности результата варки заменим оператор В5 оператором ВЗ (варить 3 мин) и введем после него оператор безусловного перехода БП 4 к началу цикла: Оч Сл В15 х=0 9 ВЗ БП 4 СШ. Этой программе соответствовала схема алгоритма, показан- ная на рис. 3, 6, и следующее описание: 1. Очистить картофель. 2. Сложить в кастрюлю с водой. 3. Варить 15 мин. 4. Если картофель готов, то Перейти к п. 6, иначе к п. 5. 5. Варить 3 мин и перейти к п. 4. 2 Зак. 953 17 6. Выключить плиту. Этот алгоритм удачнее предыдущих, так как процесс варки прекращается только после готовности картофеля. Стремление к изъятию лишнего в концовке алгоритма, ко- торая содержала несколько переходов, привело к переста- новке в программе оператора ВЗ в начало цикла. Оконча- тельный ее вариант получится Оч Сл В15 В3 х=0 4 С/П, соответствовавший показанной на рис. 3, в схеме и следу- ющему описанию: 1. Очистить картофель. 2. Сложить в кастрюлю с водой. 3. Варить 15 мин. 4. Варить 3 мин. 5. Если картофель готов, то перейти к п. 6, иначе к п. 4. 6. Выключить плиту. Следует подчеркнуть, что в поисках решения задачи о картофеле использованы различные методы. Первый (ис. 3, а) и второй его алгоритмы реализуют прямой метод ре- шения, тогда как два последних алгоритма (рис. 3, бив) — косвенный метод последовательных приближений, отобра- жаемый в алгоритмах замкнутыми циклами, охватывающи- ми повторно выполняемую последовательность операций (итерацию). Однако очевидные преимущества косвенных методов еще не означают их преимущество в общем случае. Убедительный пример — задача о птице, где применение прямого метода упрощает решение. Выполнение операций, записанных в последнем алгорит- ме, можно поручить уже автоматам. Это приводит к мысли о том, что составление программ, представляющих алгорит- мы, подобно составлению текста на обычных языках. В та- ком алгоритмическом языке, ”’понятном” автомату, функ- ции слов выполняют команды-операторы, а правила, опре- деляющие допустимые сочетания операторов, соответству- 1Ж ют синтаксическим правилам обычного языка. Более того, различаются два языковых уровня для автоматов. Програм- мы, составленные из вводимых нажатием кнопок сложных команд-операторов (например,”Сварить картофель” ,’”Взять 3 яйца”, ’’Приготовить кофе с молоком” и т. п.) , соответ- ствуют входному (внешнему) языку автомата. Однако каждая из таких команд выполнялась бы автоматом в виде последовательности более простых операций, соответство- вавших микропрограмме реализации команды на внутрен- нем (машинном) языке автомата. В заключение отметим, что обращение к алгоритмам и программам на кухонные” темы не является необычным. Автор известной многотомной монографии по программи- рованию ЭВМ [6] признался на страницах своей книги, что он очень хотел назвать ее ’’Поваренной книгой для програм- мистов”. 1.2. Лингвистика карманных ЭВМ Цифровые ЭВМ, к которым относятся и микрокалькуляторы, выполняют операции над такими абстрактными объектами, как числа (называемые в этом случае операндами), и, казалось бы, не имеют ничего общего с кухонными автоматами, выполняющими операции над вполне материальными субстанциями в виде про- дуктов. Однако то обстоятельство, что кухонные автоматы выпол- няют операции над отдельными (дискретными) порциями продук- тов, и объединило их с ЭВМ в едином семействе дискретных авто- матов, программирование которых подчиняется общим закономер- ностям. В зависимости от сложности автоматически выполняемых опера- ций микрокалькуляторы любого типа можно отнести к одному из трех следующих основных классов. Арифметические микрокалькуляторы по командам, подава- емым нажатием клавиш, автоматически выполняют арифметичес- кие операции (сложение, вычитание, умножение, деление) и иногда вычисляют простейшие функции (обратную величину, квадратные корни, проценты). 2" |2 Специализированные (в основном инженерные и коммерческие) микрокалькуляторы по командам, подаваемым нажатием клавиш, кроме выполнения арифметических операций, вычисляют ряд эле ментарных и специальных функций. Программируемые микрокалькуляторы, кроме выполнения операций над числами при нажатии клавиш (обычный режим) ‚ авто- матически выполняют вычисления по программе, заранее введен- ной в микрокалькулятор в: режиме программирования. На передних панелях представителей каждого из этих классов (рис. 4) расположены индикатор для десятичных представлений чи- сел и пульт управления с клавишами и переключателями для ввода команд (операторов). Числа представляются на индикаторах в ес- тественной форме с запятой, фиксированной между целой и дроб- ной частями, или в показательной форме с плавающей запятой а = п й =М + 10 ‚где М - мантисса, а п — порядок числа. Для микрокаль- -/.6/004/ -5/ ОЧ РНИИ - 1.001560! -26 СИ ГЗлемиса) о РР РП ХУЛ -56, 75000! [№ (З^ЕКТРНИКА) НПП Х=П [9] а) 5) Рис. 4. Микрокалькуляторы типа: а — ”Электроника Б3-23; б — Электроника Б3-36”; в — ”Элект- роника Б3-21” 20 куляторов характерна стандартная показательная форма представ- ления результатов вычислений, при которой целая часть мантиссы содержит одну не равную нулю цифру (1 < М<!10). На клавиатуре пульта управления обозначены символы команд, образующие алфавит входного языка микрокалькулятора. Из од- ного или допустимых сочетаний нескольких элементов алфавита формируются слова входного языка в виде служебных команд и операторов программы. Допустимые сочетания операторов опреде- ляются синтаксическими правилами входного языка. Операторы, из которых составляется программа, относятся к одной из несколь- ких основных групп операторов. Группа операторов набора чисел во`всех микрокалькуляторах содержит операторы набора цифр от 0 до 9, десятичного раздели- тельного знака (запятой или точки) и изменения знака числа, обоз- начаемого символами /—/, +/— или СН$. В микрокалькуляторах, до- пускающих показательную форму представления чисел, к этой груп- пе относится оператор ввода порядка (обозначаемый символом ВН, п, ЕЕ или ЕЕХ), оператор набора числа Л = 3,1415927 и некоторые другие. Группа функциональных операторов обязательно содержит двух- местные (выполняемые над двумя операндами) арифметические операторы +, —, хи-. К двухместным относится также оператор ХУ или У” для вычисления степенной функции общего вида. Одно- местными называют операторы вычисления функций одного аргу- мента — простейших степенных функций у = Хх =1Их, у =х2, у = = х№ = х ‚ логарифмических, показательных, тригонометричес- ких, обратных тригонометрических и других элементарных функ- ций. К одноместным относится также оператор вычисления факто- риала х! =х(х - 1) *(х-2)...2+1 (см. рис. 4, 6) и оператор е/Х (см. рис. 4, в) для одновременного вычисления зшх и соз-х. Словари некоторых микрокалькуляторов содержат и много- местные функциональные операторы, например оператор вычисле- ния вещественных корней квадратного уравнения во входном язы- ке микрокалькулятора Электроника Б3-32”. Большинство микрокалькуляторов содержит запоминающее устройство (память) для хранения чисел, а их словари содержат опе- раторы обращения к памяти. К ним относятся операторы занесения числа в память, обозначаемые символами ЗАП, П, х > т или $ТО, 2] и вызова числа из памяти, обозначаемые, например, символами ИП, СЧ, т-х или ВС. . Если в памяти может одновременно находить- ся несколько чисел, то оператор обращения к памяти содержит так- же номер регистра (устройства для хранения одного числа) ‚,в кото- рый заносится или из которого вызывается число. Словари некото- рых микрокалькуляторов содержат операторы для выполнения двухместных операций над содержимым памяти и высвечиваемым на индикаторе числом, а также операторы для стирания содержимо- го памяти. | Для уменьшения количества клавиш на пульте управления часть команд обозначают над или под клавишами и для ввода таких ко- манд предварительно нажимают префиксную клавишу, часто обоз- начаемую символом Е. К префиксным относятся, например, коман- да агс в некоторых входных языках, ввод которой перед вводом оператора вычисления тригонометрической функции приводит к вычислению соответствующей обратной тригонометрической функ- ЦИИ. Группа ’’синтаксических” операторов связана с синтаксически- ми особенностями входного языка, от выбора которых в значитель- ной мере зависит сложность изготовления и, следовательно, сто- имость микрокалькулятора. Обычные правила записи математических формул для вычисле- ний (их называют арифметическими выражениями независимо от выполняемых операций) допускают дробные черты, радикалы и другие символы с протяженными элементами, облегчающими образное восприятие формул человеком, например у=а-Ь/\/ (а-В). Для вычислений по таким формулам с помощью дискретных авто- матов символы с протяженными элементами должны быть замене ны операторами, занимающими один шаг программы, например а-Ь+\/в (а-в) =, где буквами обозначены набираемые или ‘вызываемые из памяти операнды, а оператор-вывода результата записывается в коние программы. и Основной недостаток правил подобной формы арифметических выражений, называемой естественной алгебраической записью при их использовании для синтаксиса входного языка микрокалькуля- тора, связан с необходимостью запоминания операторов, которые могут быть выполнены только после ввода следующих за ними операнда и оператора, ввод которого сигнализирует об окончании ввода операнда и возможности выполнения предыдущего оператора. Поэтому во входных языках микрокалькуляторов обычно исполь- зуют синтаксическое правило записи одноместных операторов пос- ле операндов, например а-Ь- («-В) =. При использовании подобной формы, называемой простой ал- гебраической записью, одноместные операторы выполняются без их запоминания непосредственно после ввода, что упрощает конструк- цию микрокалькулятора. Входные языки некоторых микрокалькуляторов (например, ти- па ”Электроника С3-15”) автоматически учитывают необходимость выполнения (старшинство) операций умножения и деления перед сложением и вычитанием. Однако чаще для учета старшинства опе- раций используют только операторы скобок, например а— 6+ (а-в) ш\/ )=. Такую форму называют простой скобочной записью. Для упроше- ния конструкции входные языки многих микрокалькуляторов с алгебраическим синтаксисом предусматривают простую бесскобоч- ную запись, при которой старшинство операций не учитывается. При вычислениях на таких микрокалькуляторах для учета стар- шинства операций приходится обращаться к памяти или, когда это возможно, предварительно, преобразовывать арифметическое выра- жение, например а- Ва \/ + Ь= 1/х/-/+а =. Преимущества простой записи одноместных операторов после операндов привели к использованию во входных языках некото- рых микрокалькуляторов синтаксического правила обратной (на- зываемой' также обратной или инверсной польской записью) записи 23 5-1 ш --- ен у --- 9 ще т ем ща у г ДЕЯ 711 ратор, а символом { обозначен оператор, разделяющий операнды. В обратной записи рассматриваемое арифметическое выражение принимает вид арта 18\/ +-. В этом случае конструкция микрокалькулятора должна обеспечи- вать запоминание четырех операндов в процессе вычислений. Если допустимо запоминание не более трех операндов, то рассматрива- емое арифметическое выражение записывается как Баев 18 \/ + [- 1а+. Если же возможно запоминание не более двух операндов, то ариф- метическое выражение следует записать ав \/ Ти [-/|1а+. Однако в любом случае при обратном синтаксисе входного язы- ка все операторы выполняются непосредственно после их ввода, что исключает необходимость их запоминания и упрошает конструк- цию микрокалькулятора. Преимущества обратного синтаксиса входных языков микрокалькуляторов не случайны. По назначению эти языки соответствуют командным формам обычных языков, которые также отличаются обратным порядком слов. Так, естест- венная запись \/ а соответствует в русском языке повелительной форме ””Извлеките корень из числа а!”, тогда как обратная запись а соответствует более категоричной команде ”Из числа а корень извлечь!” Аналогично алгебраическая запись а + Б = описывается словами ’’Число @ сложите с числом В и запишите результат”, тогда как обратная запись @1Ь + соответствует команде ’’Число а и чис- ло ВБ сложить!”. Последняя форма характерна для всех команд, которые долж- ны быть выполнены без промедления. Правила русского языка не запрещают подачу команды типа Стой, Иванов и Петров!”, но мо- мент их выполнения оказывается неопределенным, так как может последовать как команда ”Стой, Иванов”, так и команда ”Стой, Иванов, и Сидоров, и Петров!”. Поэтому в командах первым вво- дят подлежащее, определяющее объект, который должен быть го- тов к выполнению команды, а затем сказуемое, определяющее действие объекта и служащее сигналом для выполнения команды, 24 например голоппа демонстрантов, сгои: или первая шеренга, вперед!”. . Таким образом, для словарного запаса входных языков с ал- гебраическим синтаксисом характерен оператор =, функции ко- торого в простейших микрокалькуляторах иногда выполняют опе- раторы + и -—,а для входных языков со скобочным алгебраичес- ким синтаксисом характерны также операторы скобок (и) или, если допустимо хранение более одного дополнительного операнда, ((и)). В словарях входных языков с обратным синтаксисом эти опера- торы отсутствуют, но имеется оператор разделения операндов, обозначаемый символом 1 или ЕТ. Кроме них группа синтаксичес- ких операторов содержит операторы стирания (С, СК или СГХ), высвечиваемого на индикаторе операнда и операторы С или СГ стирания всей информации, хранимой в ходе вычислений. К этой группе относится также оператор Х = У или + обмена местами первого или второго операнда при двухместных операциях и неко- торые другие. Для программируемых микрокалькуляторов, кроме рассмот- ренных, характерны операторы управления программой автомати- ческих вычислений. К ним относятся уже известные нам условные операторы вида хП2 А, где А — указатель перехода, а П — отноше- ние равенства или неравенства между результатом х предыдущей операции и некоторым эталонным числом (обычно 2 =0). Команду безусловного перехода общего назначения обычно обозначают сим- волом БП или СТО, а команду обращения к подпрограмме — сим- волом ПП, $ВВ или $ВТ. Оператор возврата из подпрограммы 0бо3- начают символом В/О, В$Т или ВЕ$. Если этот оператор записан в основной части программы, то он передает управление второму ее оператору. При передаче управления с помощью меток словарь про- граммируемого микрокалькулятора содержит символ ГЫМ, где № — номер метки, или метки в виде букв. Адреса в программах указывают либо набором цифр, либо операторами, кодирующими адрес при нажатии соответствующих клавиш. Программу автоматических вычислений оканчивают оператором С/П, автоматически прекращающим вычисления. Этот же оператор вводят нажатием клавиши при пуске программы автоматических вычислений и при необходимости ее остановки. В зарубежных ми- крокалькуляторах оператор ”стоп/пуск’’ обозначают символом В/$. 25 Словари некоторых программируемых микрокалькулялоров со- держат оператор Ф или $Е установки флага — сигнала о некоторых свойствах операндов или выполняемых операций, являющегося своеобразным °’узелком на память’. В этом случае установка флага проверяется условным оператором Ф? или 1Е ЕС?, после которого в программу записывают оператор передачи управления (адрес или метку) при установленном или, в некоторых языках, при неуста- новленном флаге. Группа служебных команд программируемых микрокалькуля- торов содержит команды перехода в режим программирования РП, ПРГ, или ВМ, перехода в режим вычисления РР, АВТ или ОЗЕБ, а также операторы, используемые для исправления ошибок при вводе программы автоматических вычислений или для ее ре- дактирования. 1.3. Как работает микрокалькулятор Микрокалькуляторы отличаются от универсальных ЭВМ в ос- новном лишь скоростью выполнения операций и емкостью запоми- нающих устройств и имеют весьма сложную конструкцию: простей- шие из них содержат несколько тысяч, а более совершенные нес- колько десятков или даже сотен тысяч транзисторов в интеграль- ном исполнении. Однако пользователю нет необходимости