Й.Янсен Курс цифровой электроники. Том 4. Микрокомпьютеры (1987) (1092084), страница 61
Текст из файла (страница 61)
Печать цены в 0,31 гульдена в виде Р 0.3!ОООЕОО представляет собой численное выражение, с которым обычный покупатель может быть незнаком и которое может привести к затруднениям при окончательном расчете. Обратное преобразование можно произвести с помощью оператора РК1ХТ 13ЫХО, в котором с помощью нескольких знаков типа ЧР, заключенных в кавычки, задается формат числа на выходе. То место, где должна находиться плавающая точка, указывается точкой в поле формата.
Округление происходит обычным образом, т. е. меньше 5 — в сторону уменьшения, а больше 5 — в сторону увеличения: 369 Яэв(ки арограммирования высокого Оровня — Бейсик 6.14. Иллюстрация простых программ Для иллюстрации изложенного выше материала приведем в этом разделе несколько практических примеров коротких программ, показывающих, что в рамках Бейсика можно выполнять сложные вычисления, а также разнообразные операции ввода и вывода с помощью простых операторов. Пример распечатки текста: !О ЕЕТ(=";— !О 4=( !.21 30 ЙЕЙОЙВ Вв Ев Ов ЕВ ВО (.РЙ1(4(ТЙВ(014: ,О ' РРТН ТТВВ( 4 )Йв ! ео 1('Й(нттэе( вв: О Е(ЙШТТТЕ(14(СВ: ЭО Ы ЙТЙТТ,ВЕ(11(ОВ! О ЕРЙ1ЙТТТВ(33'Ев! !00 ( РЙ!НТТВВ( 5((! 1!О ОЙТЙ "Кэ" "КОГ(1Е" "Й":''Г 1Л5" 'Г" \ОО ЕЙО 25 ЙО КОГГТЕ Й Г !.25 Г 31.
5 Этот пример дает представление о том, как выглядит программа для вычисления цены товара и последующей распечатки этой цены в строке накладной ведомости. Чтобы понять, чтб именно делает программа прн решении указанных выше задач, рассмотрим подробно используемые операторы. Оператор ЕЕТ присваивает переменной Х величину веса (25 кг), после чего эта величина умножается на цену 1 кг кофе (1,25 гульденов). В результате вычислений получается цена 25 кг кофе (переменная 1'). Затем с помощью оператора БЕАР текстовым переменным присваиваются те значения (фрагменты текста), которые находятся в файле данных (строка 110). Теперь известны все данные, необходимые для оформления накладной н можно перейти к распечатке данных на бумаге.
Для вывода данных используются семь операторов ЕРК1МТ, после которых поставлены точки с запятыми, т. е. все данные будут напечатаны в одной строке. Оператор ТАВ указывает, где именно должны быть напечатаны соответствующие текстовые переменные. Позиции этих переменных указываются в скобках после операторов ТАВ. Файл данных вводится последним в строке 110. Программа заканчивается оператором ЕМР. Если ввести команду К13М, то программа напечатает одну строку, показанную внизу под текстом программы.
Следующий пример относится к вычислению и распечатке таблицы Х, Х' Х' и е". Глава Б 370 1О ) Рй)ит" тАБлиЦА х1, х217 20 >.Рй!И> "Хз И ЕХР)Х)" ЗО ЯЕАОАЬ 89 СЬ 09 СО ЕРЯ!ИТАЬ> 50 >.Рй)ИТТАВ)5>89) 60 ЕРЙ)И)ТАЗ>10>19) а >.РЙ!и>ТАВ)15>89 80 ВАТА"Х" "Х " "ХЭ" "ЕХР)Х>" 90 ЕЕТХ=О 100 РОЯХ=1ТО100 1>О Т=Х>2 ! а Т=хсэ 130 й=ЕХР)Х) 1СО ) РйнЧТХ) 150 >.Рй!ИТТАВ)5>Т !ьа > Ай!ит>йв)!0>2) 170 ) РЯ1ИТТАВ)15)й 180 ИЕХТХ 190 ЕИО Выполнение программы начинается с команды распечатки текста (заголовка таблицы): ТАБЛИЦА Х1, Х2, ХЗ н ЕХР(Х), Хо)тя текстовые переменные располагаются в программе в двух строках, на выходе они появляются в одной строке, так как строка 010 заканчивается точкой с запятой (;).
В строке 080 считываются текстовые переменные А8...1)>э, после чего происходит их вывод на печать. В строке 080 находится файл данных с соответствующими фрагментамп текста, которые выводятся на печать. Оператор ЕРК11чТ ТАВ обеспечивает расположение соответствующих текстовых фрагментов в колонках с названиями Х, Х', Х' и ех. В строке 090 происходит присвоение Х=О, а в строке 100 указывается, что таблица будет вычислена для значений Х=1 — 100. Далее в строках 110, 120 и 180 происходит вычисление Х', Х' и ех и полученные результаты присваиваются переменным У, Х и К, ТАБЛ Х Х 1 3 5 6 7 8 9 10 11 12 13 1С 15 16 17 18 19 20 21 ИЦА Х1, Х2, ХЗ и ЕХР (Х) 2 Хз ЕХР)Х) 1 1 2.71828 8 7.3890Ь 9 27 20.0855 1Ь 66 56.5982 95 125 1СЗ 613 36 216 СОЭ.С29 69 ЗСЗ 109Ь.63 ЬС 512 2980.9Ь 81 729 8103.08 1ОО 1000 2202Ь.5 121 1331 5987С.1 >СС 1728 1Ь2755 169 219'7 662613 19Ь 27СС 1.2026Евоь ггз зз75 з.гьйаге+аь 256 6096 8.8861>Е+ОЬ 289 6913 2.6155Ев07 321 5832.01 6.56599Е)07 36! 6859.01 1.78682Е+ОЗ СОО ЗООО С.85165Е>08 Языки программирования вь<сокого уровня — Бейсик !уО 5 ХРЙ1иттнв(5> "ТАБлицА дециБел" >СРЙ)ит !о Рй!Иттнв< 1>"ов"$ » 20 (.Рй!И(ТАВ(1>"ОВ"$ зо Рн)ит(нв<!0>"иэли ": 40 ХРЙ!НТТАВ(10$'М2/М1"$ 50 Рн(иттнв(20>"02/и("$ Ьо ХРИ>и(тнв(20>"02>и!"$ 70 Рн!ИТ>ьрй1ИТ 80 Х=О 9О 7 *10«<Х>$0> !ОО Т=(О <ХХВО> !$0 Рй(И!ТАЗ<!>Х( 120 ХРЙ!ИТ(АВ(1>Х\ !ЗО Рй(ИТ(АВ<!0>Т( !40 $ Рй!ИТ(АВ( 10 >Т > 150 РЙ1И(ТАЗ<20>1 160 СРЙ(ИТ(АВ(20>2 !ТО Х Х+! 180 1ГХС-12ОСО(090 190 ЕИО ТАБлицА дециБел и2АЛ 1 !.!22О2 1.25893 1.41254 1.58489 1.77828 1.99526 2.23872 2.51189 2.
а! 838 3.16228 3.54813 3.98107 4.46684 вв о 1 з 4 5 6 7 8 9 10 11 12 13 М2/М! 1 1. 25893 1.58489 1.99526 злы!89 3. 16228 3.98107 5.01187 6.30917 7.94328 !о 12.5893 !5.8489 19.9526 После окончания вычислений производится печать т', Х и К в таблице с использованием операторов 1.РВ1)х)Т, находящихся в строках 140 †1. В строке 180 переи!е))ная Х увеличивается на 1, после чего происходит обратный переход в строку 100. Эта процедура повторяется 99 раз, после чего программа заканчивается в строке 190.
Структурная схема данной программы приведена на рис. 6.7. Следую(цая программа формирует таблицу децибел, т. е. вычисляет отношения мощностей и напряжений, которые соответствуют определенным значениям децибел (РВ) в диапазоне от 0 до 120 ВВ, Рис. 6.7. Структурная схема прог- раммы «таблнца Х, Х', Х' н е"». Глава 6 372 В строках 5 — 70 находятся операторы 1 РИНТ, с помощью которых печатаются заголовки колонок таблицы.
В строке 80 переменная Х, которая представляет собой число децибел, получает числовое значение О, в строке 90 вычисляется отношение У(=%2/%1), а в строке 100: 2=1)2/(/1. Отношение мощностей %2/%1=10пано, а отношение напряжений ()2/Ш =10оига. После вычисления обоих отношений происходит их вывод, который обеспечивают операторы в строках 110 — 160. Вывод осуществляется как на экран дисплея (РИ)х(Т), так и на принтер (1 РИ)х)Т). В строке 170 переменная Х увеличивается на 1, а в строке 180 происходит обратный переход в строку 90.
Затем вычисление повторяется для нового значения Х. После того как Х становится больше 120 (120 (лВ), программа переходит к оператору Е)х(Р. Блок-схема алгоритма приведена на рис. 6.8. На примере приведенной ниже программы будет показано, как выполняется короткая подпрограмма, используемая в основной программе. Эта подпрограмма формирует цикл в основной программе. В данном случае программа печатает группы, состоящие из текстовых и числовых переменных длиной по 5 слов, которые представляют собой обозначения ТТЛ- схем, после которых следуют значения четырех фиктивных цен. Число строк ограничено в данном случае тремя. Трем группам присвоены текстовые переменные А3, В3 и С3. Строки располагаются в файле данных одна за другой, Для разделения групп переменным А3, В3 и С3 присвоены определенные размерности.
Первые пять текстовых фрагментов в кавычках относятся к А3, вторые пять — к В3 и третьи пять фрагментов — к С3. я~и Из текста программы следует, что она состоит из основной программы (строки с 10 по 160) и коротких подпрограмм (строки 170 †1 н 200— 220). Файл данных находится в строке 230. Рис. 6,8. Структурная схема программы «напе- чатать таблицу децибел». Зтэ Языки програял)ирования высокого уровня — Бейсик Печать данных проводится следующим образом: 10 О)МЯЧ)5):О!И0$15) ЧО)ИСЕ)5) 0 Т=О ЗО С0500170 35 ЯЕЯОЯЧ)Х) 60 ) РЯ!ИТРФ)11", 50 СОЯОВЗОО Ьа со)015 70 ЕРЯ)ИТ 90 СО505!70 55 яеааеетх) 90 ЕРЯ!ИТЕЧ)Х)! 100 60500 ОО 110 СО)051 !20 ).РЯТМТ !ЗО С0505170 155 ЯЕЯОТЧ)Х) 160 )РЯ ))ЧТС 6 ! Х ) \ 150 баеав аа 160 Са)0!тз 170 Х=О хеа х=х 1 190 ЯЕ МЛЯИ 200 1ГХ<1)НЕИСО)0150 210 Т=хв! 220 ОИ! СО)070 ° 120:ЕМО "ЗО ОЯТЯ "ЗИ)ЧОО" " Г 1.50" " Г 1.60" " Г 1.20" " !' 1.20" "ЗИ7601" " Г 1.60" 150' " Г! ЧО" "Г 1 ЗО' "5)Ч7610" "Г 1 70" "Г 1 60" ") 150" "Г 1 40" ОИТЧОО Г 1.50 Г !.50 Г !.ЗО Г !.ЗО ЕН7601 Г 1.60 Г 1.50 ! 1.ЧО Г ).ЗО еи76!а г 1.70 г 1.60 г !.50 г !.ло Сначала обрабатывается строка символов А3, т.
е. соответствующие текстовые элементы считываются один за другим оператором КЕА(л А3 (Х) и затем печатаются с использованием оператора ).РЗЧ15(ТАЗ (Х). При этом Х представляет собой номер текстового элемента и пробегает значения 1...5, в результате печатаются все текстовые элементы из файла данных.