Calculators

Reference / Paper · 1990

Trokhimenko et al., Programmable Microcalculators: Design and Use (1990, in Russian)

Read the PDF ↗

Programmiruemye mikrokalkulyatory: ustroistvo i pol'zovanie (Radio i svyaz', 1990, 272 pp): the main published account of the hardware and software of the B3-34 and MK-61 family (in Russian).

Author
Ya. K. Trokhimenko (ed.), V. P. Zakharov, N. P. Romashko and others
Year
1990
Type
Reference / Paper
Language
ru
Credit
Scan via the Internet Archive (archive.org).

← Back to the Reference Library

Trokhimenko et al., Programmable Microcalculators: Design and Use (1990, in Russian)

ПРОГРАММИРУЕМЫЕ МИКРО- КАЛЬКУЛЯТОРЫ Устройство и пользование Под редакцией Я. К. Т Р О Х И М Е Н К О 01dPC.su МОСКВА , 5 0 6 1 «РАДИО И СВЯЗЬ» 1900 музей компьютеров ББК 32.97 П78 УДК 681.31 А в т о р ы : Я. К. Трохименко, В. П. Захаров, Н. П. Ромашко, В. А. Жижко, Ю. М. Польский Рецензент докт. техн. наук. проф. В. П. Дьяконов Редакция литературы по информатике и вычислительной технике Программируемые микрокалькуляторы: Устройство П78 и пользование / Я. К. Трохименко, В. П. Захаров, Н. П. Ромашко и др.; Под ред. Я. К. Трохименко. — М.: Радио и связь, 1990. — 272 е., ил. ISBN 5-256-00318-6. Описаны структура, архитектура, элементная база и операцион- ное программное обеспечение массовых программируемых микро- калькуляторов (ПМК) серии «Электроника» (МК-46, МК-64, БЗ-34. БЗ-54, МК-56, МК-54, МК-61, МК-52), а также перспективные ПМК «Электроника-85» и «Электроника МК-72» и тенденции их дальней- шего совершенствования. Рассмотрены особенности программирова- ния ПМК, даны рекомендации по оптимизации программ, оценке погрешностей вычислений н другие полезные сведения. Для пользователей п разработчиков ПМК, а также специалистов, использующих элементную базу ПМК. „ 2404060000-010 П 145-90 ББК 32.97 046(01)-90 ISBN 5-256-00318-6 © Трохименко Я. К., Захаров В. П., Ромашко Н. П. и др., 1990 ПРЕДИСЛОВИЕ Программируемые микрокалькуляторы (ПМК) завоевали призна- ние широкого круга пользователей в учебных заведениях и различных отраслях народного хозяйства как достаточно мощные индивидуаль- ные вычислительные устройства, обеспечивающие возможность реше- ния повседневных задач практически в любых условиях. В связи с про- стотой эксплуатации, надежностью и низкой стоимостью машинного времени ПМК незаменимы во всех случаях, когда решение задачи на ЭВМ большей производительности экономически нецелесообразно или практически неприемлемо. Решение разнообразных задач с помощью ПМК рассмотрено в ряде книг [1, 2, 5, 6, 8, 14—27| и других публикациях. В настоящей книге кроме общих сведений о ПМК, освоенных промышленностью, достаточ- но подробно описаны особенности их структуры, элементной базы, ар- хитектуры, прикладного программирования и перспектив развития. Эти сведения представляют интерес для пользователей, стремящихся расширить свои знания о ПМК для их более эффективного использова- ния, а также для многочисленных радиолюбителей и специалистов раз- личного профиля, которые могут применять достаточно надежную, ма*- логабаритную и недорогую элементную базу ПМК для создания раз- личных вычислительных или управляющих устройств. Авторы книги стремились изложить материал на уровне предпола- гаемого круга читателей, ограничивая число используемых терминов и давая их определения. Насколько удачным окажется выбранный стиль изложения, могут судить читатели, все замечания которых будут с благодарностью приняты авторами. Глава 1 ОСНОВНЫЕ ОСОБЕННОСТИ ПРОГРАММИРУЕМЫХ МИКРОКАЛЬКУЛЯТОРОВ 1.1. ЭВМ И МИКРОКАЛЬКУЛЯТОРЫ Одной из основных характеристик ЭВМ является производитель- ность, которая определяется емкостью памяти, обеспечивающей реше- ние сложных задач без разбиения на более простые, а также быстродей- ствием стандартных операций внутреннего обмена информацией. Про- изводительность зависит от трудовых или эквивалентных денежных за- трат на разработку, изготовление и применение ЭВМ. Практически их оценивают по стоимости часа машинного времени, равной отношению всех затрат на приобретение и эксплуатацию ЭВМ к числу часов ее ра- боты за период амортизации. Стоимость машинного времени ЭВМ при- мерно пропорциональна ее производительности. Экономическая эффективность использования ЭВМ повышается при специализации. Поэтому созданы универсальные ЭВМ, предназначен- ные для решения разнообразных задач обработки информации по легко сменяемым прикладным программам, и специализированные, предназ- наченные в основном для управления производственными и другими процессами. Применение ЭВМ определенной производительности эконо- мически оправдано лишь в том случае, если рассматриваемую задачу нельзя решить с меньшими затратами на ЭВМ меньшей производитель- ности или без применения ЭВМ. В связи с экономическими требованиями в каждом поколении созда- ются ЭВМ различной производительности — от суперЭВМ, предназ- наченных для решения наиболее сложных задач, до простейших ЭВМ с минимальной стоимостью машинного времени. Так, еще в первом (ламповом) поколении наряду с ЭВМ относительно высокой производи- тельности были созданы настольные ЭВМ, предназначенные для авто- матизации выполнения арифметических операций над числами по ко- мандам, подаваемым нажатием клавиш. Такие ЭВМ в соответствии с их назначением были названы калькуляторами *. 'Следует отметить, что английские глаголы to compute и to calculate оди- наково переводят на русский язык — считать, рассчитывать, вычислять, но второй из этих глаголов (связанный с латинским словом calculus, обозначавшим в древнем Риме «счетный камешек») по смыслу ближе к слову «считать». Кстати, 4 Во втором (транзисторном) поколении появились настольные каль- куляторы, названные электронными клавишными вычислительными машинами (ЭКВМ), которые вычисляли и элементарные функции. Важное значение имело создание программируемых ЭКВМ, выполняв- ших вычисления по прикладным программам, предварительно введен- ным в память. Характерными их особенностями являлись одностроч- ный индикатор для отображения результатов вычислений в виде от- дельных чисел, ограниченная емкость памяти и отсутствие накопителей информации для длительного хранения. Разработка микросхем с большой степенью интеграции (число эле- ментов на единицу площади кристалла) — БИС обусловила возмож- ность существенного уменьшения размеров и повышения производи- тельности ЭВМ. Эти возможности могли быть реализованы в первую очередь при изготовлении ЭКВМ в связи с их относительной просто- той и, следовательно, большей гибкостью производства. Поэтому впер- вые массовое применение БИС и началось в производстве малогаба- ритных ЭКВМ. Одна из наиболее крупных в мире производителей малогабаритных ЭВМ фирма Hewlett-Packard (США) в 1972 г. приступила к серий- ному выпуску миниатюрных непрограммируемых ЭКВМ, получивших название карманных калькуляторов или микрокалькуляторов, а уже в следующем году начала серийное производство карманных програм- мируемых микрокалькуляторов (ПМК). Создание микрокалькуляторов знаменовало появление принципи- ально нового класса носимых вычислительных средств. Массовое про- изводство непрограммируемых и особенно программируемых микро- калькуляторов обеспечило возможность автоматизации широкого кру- га повседневных вычислительных задач и существенного повышения производительности труда их пользователей. При этом ПМК, как и на- стольные программируемые ЭКВМ, отличаются от универсальных ЭВМ других классов в основном лишь малой производительностью, связанной с низкой стоимостью машинного времени. Последнее обстоятельство определяет и экономически оправданную область при- менения ПМК — относительно несложные вычислительные задачи, решение которых на универсальных ЭВМ других классов связано с большими затратами вследствие большей стоимости машинного вре- мени и затратами рабочего времени пользователя на доступ к ЭВМ и ожидание результата решения задачи. В соответствии с назначением ПМК основным требованием является низкая стоимость, обеспечивающая доступность широкому кругу поль- зователей. Это требование приводит к жестким ограничениям на ап- паратурные затраты, определяемые количеством и стоимостью микро- схем. Так как стоимость микросхем зависит от их технологии, то в в отечественной литературе первые ЭВМ называли электронными счетными ма- шинами (что сохранилось в названиях ЭВМ серии БЭСМ), хотя, строго говоря, их следовало назвать логическими машинами, так как автоматизация вычисле- ний основана на логических операциях. 5 ПМК первых поколений, как правило, использовались микросхемы, изготовленные по относительно недорогой МОП-технологии. Дальней- шее развитие полупроводниковой технологии привело к существен- ному снижению стоимости микросхем при их массовом изготовлении. Поэтому в наиболее совершенных и дорогих ПМК стали использовать микросхемы, изготовленные по другим технологиям, и в первую оче- редь по КМОП-технологии, особенностью которой являются дополни- тельные (комплементарные) транзисторные структуры с различным ти- пом проводимости. Микросхемы, изготовленные по этой технологии, хотя и дороже микросхем, изготовленных по МОП-технологии, но имеют большее быстродействие и потребляют значительно меньше энер- гии. Последнее особенно существенно для носимых ПМК с автономным питанием от аккумуляторов или сухих элементов. Повышение степени интеграции микросхем обеспечило также соз- дание полупроводниковых запоминающих устройств (ЗУ) большой ем- кости и энергонезависимых ЗУ, сохраняющих информацию при выклю- ченном питании. Это позволило значительно расширить емкость памя- ти ПМК и комплектовать их встроенными или внешними накопителя- ми информации на микросхемах, а также сменными модулями для по- стоянного или временного хранения информации. В карманных ПМК широкое применение нашли также экономичные жидкокристалличе- ские индикаторы (ЖКИ). Развитие ПМК связано с совершенствованием ЭВМ других классов. С разработкой микропроцессорных наборов (комплектов совместно ра- ботающих микросхем) упростилось создание прежде всего недорогих управляющих микроЭВМ (микроконтроллеров). Так как управляемые физические величины нельзя измерить с большой точностью, то быст- родействие контроллеров повышают, обрабатывая небольшие порции информации (слова) и используя упрощенные вычислительные про- цедуры. Такие управляющие ЭВМ с «короткими» словами и процеду- рами получили название мини-ЭВМ, непосредственно не связанное вопреки существующему мнению с размерами ЭВМ. Простейшие мини- ЭВМ собирают из микропроцессорных наборов или изготовляют в виде однокристальных БИС (используемых и в ПМК), называемых иногда микромини-ЭВМ — первый префикс (микро) указывает на технологию изготовления, а второй (мини) — на особенности обработки информа- ции. Развитие микроэлектроники повлияло и на развитие универсаль- ных ЭВМ высокой производительности. Стационарные ЭВМ этого клас- са в связи с высокой стоимостью машинного времени окупаются лишь при практически непрерывном решении достаточно сложных задач. Поэтому такие ЭВМ первых поколений работали в пакетном режиме, при котором последовательно решаются задачи по заранее заготовлен- ному и отлаженному запасу (пакету) программ. При работе в пакетном режиме отдельные задачи решаются быстро, но время ожидания очереди может оказаться большим. Поэтому в сов- ременных стационарных ЭВМ высокой производительности использу- ь ют режим разделения времени между множеством устройств ввода-вы- вода информации — терминалами. Еще более эффективными оказались иерархические вычислительные системы с центральной ЭВМ высокой производительности и «интеллектуальными» терминалами в виде ЭВМ меньшей производительности, которые, в свою очередь, могут работать с несколькими терминалами пользователей. Развитием таких иерархи- ческих систем явились сети ЭВМ различной производительности с об- меном информацией по линиям связи, которыми при определенных ус- ловиях могут служить телефонные или телеграфные линии. Максимальная эффективность иерархических вычислительных сис- тем достигается при возможности обращения пользователя к терми- нальной ЭВМ с достаточно низкой стоимостью машинного времени и достаточной мощностью для решения большинства задач пользовате- ля, который при необходимости решения более сложной задачи может обратиться через сеть к ЭВМ большей производительности. Внедрение БИС, обеспечившее существенное повышение производи- тельности настольных ЭКВМ и миниатюризацию универсальных ЭВМ высокой производительности, привело к разработке индивидуальных ЭВМ, которые могут использоваться и в качестве терминалов вычисли- тельной сети. В зависимости от производительности, стоимости и наз- начения такие микроЭВМ, получившие название персональных ЭВМ (ПЭВМ), можно условно разделить на профессиональные, конторские или учрежденческие, бытовые и карманные. Профессиональные ПЭВМ (например, ЕС-1840, ЕС-1841, «Нейрон И9.66», «Электроника-85»), предназначенные для решения наиболее сложных задач квалифицированными специалистами, по производи- тельности не уступают многим стационарным универсальным ЭВМ вы- сокой производительности третьего поколения. Они снабжены ком- плектом достаточно совершенных внешних устройств, включая нако- пители информации большой емкости на жестких магнитных дисках, печатающие устройства и графопостроители для документирования результатов обработки информации, цветные или монохроматические мониторы на электронно-лучевой трубке для отображения текстов при- кладных программ, результатов диагностирования работы, а также ре- зультатов обработки информации в алфавитно-цифровой или графиче- ской форме. Конторские или учрежденческие ПЭВМ (например, ДВК-2, «Элект- роника ДЗ-28»), предназначенные для решения более простых задач обработки информации и обучения основам программирования в учеб- ных заведениях, комплектуются менее дорогими внешними устройст- вами (в частности, накопителями информации на мягких магнитных дисках или магнитной ленте) и по стоимости значительно отличаются от профессиональных ПЭВМ. Бытовые ПЭВМ (например, ПК-1 или БК-0010) предназначены для использования в основном в домашних условиях совместно с бы- товыми телевизором в качестве многострочного монитора и магнито- фоном в качестве накопителя информации большой емкости. Такие ПЭВМ обычно конструктивно оформляются в виде плоской коробки с клавиатурой и разъемами для присоединения внешних устройств, ком- плект которых, кроме бытовых приборов, может дополнительно со- держать различные приспособления для преобразования и отображе- ния информации. Малогабаритные носимые (карманные) ПЭВМ по назначению сов- падают с ПМК и чаще всего отличаются от них многострочным жидко- кристаллическим индикатором и особенностями программного предста- вления способа решения задачи. Однако по мере совершенствования ПМК эти различия практически стерлись. Более того, на элементной базе карманных ПМК разработаны настольные с разъемами для присое- динения бытовых телевизора и магнитофона, являющихся отличитель- ной особенностью большинства бытовых ПЭВМ. Таким образом, уже сейчас нельзя провести четкую границу между ПМК и простейшими ПЭВМ. В некоторых случаях различия между ними связаны с использованием микропроцессорных наборов для ПЭВМ и заказных БИС для ПМК, но все больше малогабаритных ПЭВМ собираются на заказных БИС, в связи с чем н это различие сти- рается. По этой причине многие малогабаритные ПЭВМ называют про- граммируемыми микрокалькуляторами, и в будущем, вероятно, это название сохранится за всеми малогабаритными ПЭВМ. Во всяком слу- чае распространенное сокращение ПМК в равной мере приме'.имо как к программируемым микрокалькуляторам, так и к персональным мик- рокомпьютерам, внешне отличающимся в основном лишь входными языками. 1.2. ОСОБЕННОСТИ ВХОДНЫХ ЯЗЫКОВ Решение на ЭВМ любой задачи преобразования информации воз- можно лишь после ее решения человеком и описания им способа реше- ния задачи программой работы ЭВМ, составленной на «понятном» ма- шине языке. Способ решения задачи отображают алгоритмом, состоя- щим из последовательности описаний операций, приводящих к иско- мому результату. Алгоритм представляют словесно-формульными опи- саниями, схемами и программами. Словесно-формульное описание алгоритма состоит из последователь- ности однозначных словесно-формульных описаний отдельных опера- ций (шагов алгоритма), обозначаемых порядковыми номерами. Описа- ния операций в общем случае называют предписаниями, инструкциями или операторами (правилами выполнения операций, обозначенными специальными символами). Несмотря на разнообразие операций, вы- полняемых при решении прикладных задач, все их описания относятся к одному из двух основных типов операторов — присваивания или ус- ловных переходов. Операторы присваивания, отображающие операции с однозначным результатом, описывают формулой «пусть / : -- Л». 8 В арифметических (вычислительных) операторах присваивания симво- лом / отображают имя (идентификатор) переменной, значение кото- рой после выполнения операции равно числу А, значению перемен- ной А или результату вычислений по выражению Л. Символ присваива- ния : - часто заменяют знаком равенства, который в этом случае озна- чает «равно после выполнения операции» *. Так, арифметический опе- ратор «пусть х - х—1» означает, что в дальнейшем переменной х при- сваивается значение, на единицу меньшее предыдущего, а оператор «пусть у а — b In с» означает, что переменной у присваивается зна- чение, равное результату вычислений в правой части формулы после замены имен переменных их числовыми значениями. Ключевое слово «пусть» может быть заменено другим (например, «примем» или «вычи- слить») или опущено. Операторы присваивания могут быть также логическими (на- пример, «пусть х — не х») или отображать другие однозначные измене- ния состояния. Такие операторы часто описывают словами естествен- ного языка, но могут быть записаны и в стандартной форме оператора присваивания. Так, оператор безусловного перехода «перейти к шагу т» равнозначен оператору «пусть шаг т», а оператор прекращения выполнения алгоритма («стоп», «конец», «прекратить вычисления» и т. п.) по договоренности можно заменить, например, оператором «пусть А - • 0», где символ А, отображающий состояние процесса, на- зывают флагом. Операторы условных переходов отображают операцию выбора сле- дующего шага алгоритма в зависимости от выполнения заданного ус- ловия. Основная форма этого оператора: «если <условие>, то перей- ти к шагу ..., иначе— к шагу ...». Если при неудовлетворении проверя- емого условия должен выполняться следующий по порядку шаг алго- ритма, то обычно используют сокращенную форму оператора услов- ного перехода «если <Гусловие>, то перейти к шагу ...». Операторы, являющиеся элементами (словами) алгоритма, имеют самостоятельный смысл и различаются семантическим (смысловым) уровнем, соответствующим сложности выполняемой операции. Так, оператор «пусть X --- Л + flxC» отличается более высоким уровнем по отношению к операторам равнозначной последовательности «пусть X fi x С», «пусть X X + Ау>. Однако каждый из этих простых опе- раторов является сложным по отношению к логическим операторам, последовательности которых соответствуют выполнению арифметиче- ских операций. Уровень сложности операторов должен выбираться наиболее высоким из выполнимых исполнителем алгоритма — неоправ- данное дробление операторов на более простые усложняет запись и вы- *Символ присваивания : - не следует смешивать со знаком определения (который также часто заменяют знаком равенства), означающим в семанти- ческих формулах «равно по определению». Например, выражение / : сБук- в а | Ц и ф р а > означает, что имя переменной / состоит из буквы и следующей за ней цифры. U полнение алгоритма. Так, алгоритм ре- шения квадратного уравнения для под- готовленного исполнителя достаточно представить одним оператором «решить уравнение a jc +a,jt-|-a ~ 0», для менее 2 4 0 подготовленного исполнителя, напри- мер, в виде формулы вычисления корней «пусть хх,.г ах12а2±У(ах12аг)*—а0'а.г)у>. Если же исполнитель не умеет находить по этой формуле все возможные реше- ния, то ее необходимо заменить более под- робным словесно-формульным описани- ем, например: 1. Пусть a — ау'2а2. 2. Пусть D a — aja2. 2 3. Если D < 0, то перейти к шагу 6. 4. Вычислить вещественные корни дс, a - V"D, х2 a + J/"D. 5. Перейти к шагу 7. 6. Вычислить вещественную и мни- Re =а мую составляющие комплексно-сопря- Im Х/ 2 = женных корней Re дг, 2 a, 1тдг, 2 7. Закончить вычисления. CZD Для наглядности алгоритмы пред- ставляют схемами (рис. 1.1), на кото- рых операторы присваивания обознача- Рис. 1.1 ют прямоугольниками, а операторы ус- ловных переходов — ромбами с выходами «Да» и «Нет», соответствующими удовлетворению и неудовлетворе- нию проверяемого условия. Начало и конец алгоритма обозначают овалами. Все обозначения операторов соединяют линиями, указываю- щими на порядок выполнения операций. Неразветвленные алгоритмы, не содержащие операторов условных переходов, называют линейными. Если один из выходов оператора ус- ловного перехода соединен с предыдущей частью алгоритма, то обра- зуется замкнутая структура, называемая циклом, операции в котором многократно повторяются до удовлетворения или неудовлетворения условия, проверяемого оператором условного перехода. Алгоритмы решения сложных задач для упрощения записи струк- турируют, заменяя типовые структуры (линейные части алгоритмов, циклы и т.д.) составными операторами, отображаемыми определенными сочетаниями слов или символов. К ним относятся, в частности, операто- ры цикла общего назначения «пока <Сусловие>, выполнять«^опе- ратор;»), где описание операции называют телом цикла. Если опера- ции в цикле повторяются для ряда значений переменной х, отличаю- 10 щихся постоянным приращением Л* в интервале (дс,, лг ), то используют 2 оператор цикла «для х - JCj до х2 шаг Ах выполнять <оператор>». Для целочисленных значений переменной х при шаге Лх 1 этот оператор упрощают: «для х xt до хг выполнять <оператор>». Применение составных операторов упрощает запись и чтение алго- ритма, если их смысл понятен исполнителю алгоритма, в связи с чем обычно используют лишь стандартизованные описания сложных опе- раций. Исполнителем алгоритма может быть не только человек, но и авто- мат (в частности, ЭВМ), содержащий устройства ввода, распознава- ния и выполнения операторов алгоритма. В последнем случае алгоритм решения задачи представляют программой на входном языке (языке программирования) с определенным множеством символов алфавита, из которых в соответствии с лексическими правилами формируются слова (операторы), распознаваемые и исполняемые ЭВМ. Допустимое множество операторов входного языка образует его словарный запас, допустимые последовательности операторов в программе определяются синтаксическими правилами входного языка. В цифровых ЭВМ информация передается в двоичных кодах в виде последовательности состояний, отображаемых 0 или 1. Сменные про- граммы решения прикладных задач, называемые прикладными про- граммами или программами пользователя, для первых ЭВМ также со- ставлялись в двоичных кодах. В связи с большой трудоемкостью со- ставления и ввода таких программ вскоре ЭВМ стали дополнять ас- семблерами — устройствами, формирующими двоичные коды команд, управляющие выполнением простейших операций, при вводе с клавиа- туры легко запоминающихся сочетаний букв и цифр. Однако состав- ление программ решения прикладных задач на языках ассемблеров (мнемокодах) также достаточно трудоемко. Поэтому по мере расшире- ния круга пользователей ЭВМ, не имеющих специальной подготовки по вычислительной технике, обострялась необходимость в создании язы- ков программирования высокого уровня, обеспечивающих непосредст- венное отображение стандартизованных описаний алгоритмов решения задач текстами программ работы ЭВМ. Большинство языков программирования высокого уровня относится к груп- пе алгоритмических (или процедурных) языков, отображающих способ решения задачи последовательностью описаний выполняемых операций. Первым из наи- более известных языков был разработанный в 1954 г. Фортран (formulae trans- lation — перевод формул), различные версии которого используются до настоя- щего времени. Большие надежды возлагались на язык Алгол (algorithmic lan- guage — алгоритмический язык), предложенный в I960 г. как международный стандарт для описания алгоритмов и программ решения математических задач. В настоящее время этот язык, в отличие от Фортрана, используется редко и все более вытесняется языками следующих поколений. Среди последних следует отметить достаточно универсальный язык программирования PL/1 (program J I language — язык программирования) и его версию APL/1 с удобными средствами доступа к памяти и обработки переменных различного типа. Среди специалистов широкую известность приобрел также язык Паскаль, отличающийся четкими грамматическими правилами и средствами обработки различных структур дан- ных. Среди других языков второго поколения следует отметить Аналитик, разра- ботанный в Институте кибернетики АН УССР с русскими ключевыми словами, который, в частности, отличается возможностью представления чисел, содержа- щих до 999 десятичных цифр, и преобразования математических выражений в аналитическом (символьном) виде. Первые версии Аналитика предназначались для машин МИР (Машины для Инженерных Расчетов), в настоящее время Ана- литик используется и для программирования машин серий СМ ЭВМ и ЕС ЭВМ. Внедрение ПЭВМ привело к появлению множества фирменных языков программирования и различных версий традиционных языков, ориентированных на ПЭВМ определенного типа. Наибольшее применение для программирования ПЭВМ нашел язык высокого уровня Бейсик, название которого происходит не от английского слова basic (основной), а является аббревиатурой BASIC от слов Beginner All-purpose Symbolic Instruction Code — многоцелевой язык символь- ных кодов для начинающих. Основные преимущества Бейсика — наглядность представления алгорит- мов решения задач и простота реализации диалогового режима пользователя с ЭВМ. Алфавит основной версии языка Бейсик содержит 26 прописных англий- ских букв от А до Z, десятичные цифры, разделительные знаки (точка, запятая, точка с запятой, двоеточие, апостроф или кавычки, скобки), знаки отношений ( =, ф , > , < ) , знаки арифметических операций + , —, * (умножение), г / (деление), t, (возведение в степень), а также знаки пробела и перехода на новую строку (перевода каретки). Кроме того, алфавит включает символы вычисления стандартных (встроенных) функций: тригонометрических SIN(X), COS(X), T A N ( X ) , A T N ( X ) , натурального логарифма LOG(X), экспоненты Е Х Р ( Х ) , кор- ня квадратного SQP(X), абсолютного значения ABS(X), целой INT(X) и дробной FRC(X) частей, знака SGN(X) числа, а также RAN(X) — вызова квазислучай- ного числа с равномерным распределением в интервале (0,1). 'Имена переменных в основной версии Бейсика формируются из буквы или буквы и цифры, а порядок числа в показательной форме записывается после буквы Е (exponent — порядок), например —8.5Е—2 или —.85Е —1, причем дробная часть числа отделяется от целой, как и в большинстве других языков программирования, точкой, а не запятой. Для ввода последовательности (массива) чисел используется оператор DATA ai, а , ..., а , 2 п где после имени оператора DATA (данные) записываются последовательность чисел, отделяемых запятыми. Имена этим числам присваиваются оператором READ / 2 /„, где после имени R E A D (читать) записываются выбранные имена переменных, отделяемые запятыми. Оператор DATA может быть считан несколькими опера- торами R E A D с числом переменных, меньшим числа элементов массива данных, содержимое которого при необходимости восстанавливают оператором R E S T O R E (восстановить). Числовые значения переменным можно также присваивать оператором при- сваивания общего вида LET /, = / = ... = 1т =• А, 2 после выполнения которого именам переменных ..., I присваивается зна- m чение числа А, переменной с именем А или результата вычислений по выраже- нию А . Оператор условного перехода IF <условие> THEN <метка перехода> после ключевого слова IF (если) содержит проверяемое условие, при удовлетво- рении которого управление передается оператору, перед которым указана мет- 12 14 ка, записанная после слова T H E N (тогда). Для соединения ветвей алгоритм» используют оператор безусловного перехода GOTO < м е т к а п е р е х о д а > Базовая версия языка Бейсик содержит также оператор цикла с заголов- ком FOR / = а! ТО a,, STEP а , 3 где после ключевого слова FOR (для) записывается имя переменной и равное ей в начальном состоянии число alt после слова ТО — число, равное граничному значению переменной, а после слова STEP (шаг) — число а3, равное приращению переменной на каждой итерации. После заголовка цикла в программе записы- вают операторы, отображающие выполняемые действия на каждой и.терации и называемые телом цикла. Тело цикла оканчивается оператором N E X T У (сле- дующее /). Основным оператором вывода информации является оператор P R I N T (пе- чатать), после имени которого записываются выводимый текст, заключенный н апострофы или кавычки, и имена переменных, числовые значения которых вы- водятся на дисплей или печать. В программе каждый оператор записывается с новой строки и начинается с метки в виде целого числа. Метки записываются в порядке возрастания чисел с некоторым интервалом, обеспечивающим возможность ввода в режиме диало- га промежуточных операторов, так как ЭВМ выполняет их не в порядке записи, а в порядке возрастания меток. Наибольшая метка записывается перед операто- ром END (конец) в конце программы, которая может содержать и операторы STOP для временного прекращения выполнения программы. Во многих версиях Бейсика можно опускать ключевое слово L E T (пусть) и записывать несколько операторов в одной строке с общей меткой. В этом слу- чае-запись программы упрощается и, например, алгоритм решения квадратно- го уравнения на рис. 1.1 можно представить программой 5 DATA а0, alt аг 10 READ А 0 , A l , А2 15 А - — .5.А1/А2; D ^ A f 2 - A 0 / A 2 20 IF D < 0 THEN 40 25 XI = A — SQR(D); X2 A -SQR(D) 30 PRINT " R E A L ROOTS X l = " , X I , " X 2 • " , X 2 35 STOP 40 C=SQR(—D) 50 PRINT "COMPLEX ROOTS REX - - • " , A , "IMX= ",С 999 END После выполнения этой программы при нажатии клавиши RUN (пуск) при а — — 3 , « 1 ^ - 2 , Oi 0 I на дисплей или печать будет выведен результат REAL ROOTS Xi=—3 X2==l а при а0 — 5, а = 1, а = — I — результат 2 г COMPLEX ROOTS REX----1 IMX-2 Для исправления или замены текста оператора достаточно ввести исправ- ленный текст и нажать клавишу RUN. Аналогичные операции выполняют при вводе дополнительного оператора с промежуточным значением метки, что обес- печивает простоту реализации диалога пользователя с ЭВМ. В ПЭВМ текст вводимой программы и результаты ее выполнения обычно выводятся на экран дисплея, что существенно упрощает контроль вводимой про- граммы и ее отладку. Особенности входных языков ПМК первых поколений, также от- носящихся к процедурным языкам программирования высокого уровня, связаны с требованием минимума аппаратурных затрат. При выполнении прикладной программы на алгоритмическом язы- ке высокого уровня, подобного Фортрану или Бейсику, считывание кодов оператора присваивания с формулой вида / = Л приводит к ав- томатическому вызову из основной (оперативной) памяти в быструю (сверхоперативную) память (где хранятся операнды) значений перемен- ных, имена которых содержатся в выражении А. Результат выполне- ния операции автоматически засылается в ячейку памяти, которой со- ответствует выбранное имя / результата операции. Например, при вы- полнении оператора X X + К из основной памяти вызываются зна- чения переменных X и К и после их сложения результат засылается в ячейку памяти, где прежде хранилось значение операнда X. При таком обмене информацией между быстрой и оперативной па- мятью емкость последней не всегда используется полностью, так как оперативная память разбита на области для хранения кодов програм- мы, данных различного типа и вспомогательной информации, и при за- полнении одной из областей памяти вычисления прекращаются. Огра- ниченная емкость памяти ПМК первых поколений заставила разработ- чиков изменить способ обмена информацией между быстрой и основной памятью в процессе обработки информации. Для полного использования емкости памяти во входных языках ПМК предусмотрены специальные операторы обращения к ячейкам (регистрам *) памяти данных. Так, для вызова копии содержимого регистра памяти с адресом N используют операторы FN, И П М (из памяти), П - + - xN или R C L J V (recall — выз- вать), а для засылки результата операции в оперативную память—опе- раторы РN, П/V, х —*• ПЛ или STOJV (storage — запасать). Эти опера- Т торы равнозначны соответственно операторам присваивания вида «пусть х PJV» и «пусть P/V - л:», где символом л обозначена текущая - переменная, а символом (именем) P/V — содержимое регистра памяти N. Таким образом, в отличие от алгоритмических входных языков, при использовании которых обмен данными между быстрой и оператив- ной памятью выполняется автоматически, во входных языках ЭКВМ и ПМК для этой цели используются операторы обращения к памяти. Быстрая память ПМК содержит не менее двух регистров, обычно обозначаемых символами X и Y, причем содержимое регистра X (на- зываемого входным) отображается на индикаторе. В прикладных про- граммах на входных языках ПМК имена текущих переменных, содер- жащихся в этих регистрах, не указываются (умалчиваются), а соответ- ствующие операторы присваивания обозначают только символом опе- рации. Например, оператор «пусть х sin х~» обозначается только sin, а двухместный оператор «пусть х — у + *» — только знаком +• Подобное компактное представление вычислительных (функциональ- * Слово «регистр» («ряд» в дословном переводе с латинского), означающее упо- р я д о ч е н н у ю запись, в вычислительной т е х н и к е используют для определения как порций (слов) информации, отображаемой рядом д в о и ч н ы х разрядов, так и фи- зических устройств для их хранения. Часть регистра также называют регистром, а в с л у ч а я х , когда все регистры имеют одинаковое число разрядов, это же слово используют и в качестве рабочей единицы измерения количества информации. 14 ных) операторов затрудняет чтение программы, но существенно упро- щает конструкцию ПМК и сокращает время ввода программ. Исходные значения переменных в ПМК вводят в быструю память операторами набора десятичных цифр, разделительного знака (запя- той или точки), изменения знака, обозначаемого символами ' — , + . — или CHS (change sign —изменение знака), ввода порядка п, ВП, ЕЕ или ЕЕХ (enter exponent — ввод порядка) при показательной форме представления чисел, а также операторами набора констант (напри- мер, числа л) и квазислучайных чисел с символами СЧ или RND (random — случайный). Эти операторы используются как для предва- рительной засылки исходных данных в память, так и для набора опе- рандов в процессе выполнения программы. Для примера приведем программу решения квадратного уравнения (рис. 1.1) на входном языка ПМК Prograrmnable-59 фирмы Texas Instrument, записав ее по строкам, близким к строкам программы на языке Бейсик, в предположении, что коэффициенты а , а, и а предварительно занесены соответственно в ре- 0 2 гистры 0, 1 и 2: RCLI ч RCL2 н- 2 +/— ST03 х — RCL0 ч- RCL2 =ST04 2 х<0? А У х S T 0 5 + RCL3 = RCL3 —RCL5 - - R/S LBLA У х R/S RCL4 + / — У х RCL3 R/S Если корни уравнения вещественные, то после выполнения этой програм- мы на индикаторе высвечивается значение одного из корней, а для вызова другого достаточно нажать клавишу X Т. Если корни комплексно-сопряженные, высвечивается символ ошибки (переполнения), после чего следует нажать кла- вишу R/S (run/stop — пуск/стоп). Это приведет к высвечиванию вещественной части корней, а при дополнительном нажатии клавиши X Т — модуля мни- мой части корней. В процессе выполнения этой программы в регистры 3 и 4 засылаются зна- чения а = —ах12аг и D = а2 — а0'а2. Учитывая, что в регистрах О, I и 2 хра- нятся исходные коэффициенты, эта программа отображает следующий алгоритм решения задачи: Пусть а = —а,/2а . 2 Пусть D = а — а / а . 2 0 2 Если D < 0, то перейти к шагу с меткой А. Пусть х = а + "I/O; дс, = а — У Т ) . 2 Стоп. А «Пусть х = I / O » . Стоп. Пусть I m j t | = У — D ; i 2 Rejt — а. l i 2 Стоп. Каждая строка такого описания содержит простой или сложный оператор, соответствующий строке приведенной ранее программы на Бейсике. Это под- тверждает высокий уровень входных языков ПМК, позволяющих, как и алгорит- мические языки ЭВМ других классов, практически непосредственно отображать словесно-формульные описания способов решения прикладных задач с выпол- нениями операций над представлениями чисел без их разбиения на части, что характерно для языков низшего уровня. 15 В дальнейшем для определенности процедурные языки программи- рования высокого уровня, подобные Фортрану или Бейсику, будем на- зывать алгоритмическими, а входные языки традиционных ПМК— компактными. В связи с сокращенными обозначениями операторов входные языки ПМК иногда ошибочно относят к языкам ассемблеров. Однако програм- мы на таких языках образованы послед