Й.Янсен Курс цифровой электроники. Том 4. Микрокомпьютеры (1987) (1092084), страница 55
Текст из файла (страница 55)
Как уже отмечалось выше, применение различных циклов в комбинации с внутренними циклами обеспечивает возможность построения «вложенных» структур. Число вложенных циклов, которое можно использовать в рамках Бейсика, ограничивается восемью уровнями. В результате с помощью операторов РОК... ...МЕХТ и РО.. 1)МТ!1. можно «вложить» друг в друга определенное число циклов. При превышении допустимого числа вложенных циклов Бейсик обеспечивает диагностическое сообщение об ошибке, которое печатается принтером или появляется на экране дис плея. Что касается сообщения об ошибках в случае операторов перехода или ветвления, то система печатает соответствующее сообщение, если такой оператор состоит, например, из двух слов, одно из которых было опущено.
Это замечание относится к таким операторам, как РОК...)чЕХТ и РО.. ЛЗМТ11.. Кроме того, сообщение об ошибке появляется и в том случае, когда в программе до оператора КЕТ()КХ не используется соответствующий оператор ПОЯСОВ. 6.5. Ввод данных В языке Бейсик предусмотрена возможность ввода новых переменных с помощью оператора 1ЫР()Т во время выполнения программы.
Этот оператор помещается в определенной строке программы и после него записываются одна или несколько переменных, которые затем обрабатываются в основной программе. Как известно, программа начинает выполняться после команды К1)К и останавливается, встретив оператор 1ЫРШ. Система сообщает об этом, печатая в следующей строке знак вопроса (?), после чего с помощью клавиатуры требуется ввести запрашиваемые переменные.
Если речь идет о вводе большого числа переменных, то следует использовать оператор РК11чТ и напечатать информационное сообщение, которое позволит избежать ошибок при вводе переменных. Применение оператора 1МР()Т иллюстрирует следующий пример: (йЕЖ 1О РК1ИТ „Х, У". 20 1ХР1)Т Х ЗО 1ИР13Т У 40 Х = (Х+У) в (Х вЂ” У) 50 РК)ХТ Х 60 ЕХР К1)И Глава а х,у ?4 9 Оператор РК!МТ „Х, Уа указывает на то, что требуется ввести Х и 1'. Выполнение программы останавливается при реализации оператора строки 20 и печатается вопросительный знак. С клавиатуры вводится цифра 5 и нажимается клавиша КЕТУРИ, после чего ожидается появление следующего вопросительного знака. Далее с клавиатуры вводится цифра 4 и снова нажимается клавиша КЕТ13ЯХ, после чего программа выполняется до тех пор, пока не будет напечатан результат (2=-9).
Относительно ввода текста после оператора 1КРЬТ следует отметить следующее: а) после 1ХР11Т текст вводится с клавиатуры только один раз; б) за текстом всегда должна следовать переменная, которой позже с помощью клавиатуры присваивается какое-либо конкретное значение; в) текст, заключенный в кавычки, должен всегда предшествовать соответствующей переменной. Если одновременно с текстом вводятся и данные, то для этой цели используется оператор БЕАР, с помощью которого можно считывать данные из файла или блока данных.
Файл данных, указываемый в начале строки оператором РЛТА, может быть помещен в разных местах программы. Интерпретатор может собрать разрозненные данные в один файл. В целях удобства все данные, разделенные запятыми, можно ввести после оператора РЛТА. Так как это делается в конце программы, то место файла данных уже известно, поэтому в него можно легко внести соответствующие изменения. В листинге программы отмечаются соответствующие переменные через А, В, С... и т.
д. и тем самым устанавливается связь с оператором КЕАР, Более подробное обозначение переменных при вводе данных с помощью оператора РАТА можно осуществить и позднее. Программа присвоит адреса и свяжет их с переменными, которые вводятся оператором КЕАР. Применение операторов ЙЕАР н РАТА показано в следующей программе: 1чЕ% 10 КЕАР Х 20 РЕАР У 30 1 ЕТ л.=Х+У 40 РК1М „Х+У="; Х ззт Яввгки ирограиггирования высокого уровня — Бейсик 50 РАТА 5,10 60 Е1нР КОМ Х+У=15 С помощью операторов КЕАР извлекаются числа 5 и 10 нз файла данных и эти значения присваиваются переменным Х и У.
В строке 30 вычисляется Х, после чего в строке 40 дается команда напечатать «Х+У=» в виде текста и Х вЂ” в числовой форме. В строке 50 находится файл данных, состоящий из двух чисел, 5 и 1О. Если файл данных требуется использовать повторно еще где-нибудь в программе, то для этой цели служит оператор КЕЗТОКЕ, располагаемый в начале соответствующей части программы. При этом управление данными восстанавливается, так что при считывании программа снова попадает в начало файла данных. В действительности прн этом указатель данных просто сбрасывается в нуль. Пример: 1н ЕЮ 10 КЕАР Х 20 КЕЛР г' 30 РК11н'Т Х, У 40 РАТА 50, 100 50 КЕЗТОКЕ 60 КЕАР В 70 КЕАР А 80 РК!МТ А, В 90 Е1нР КПЧ 100 50 50 100 В строках 10 и 20 числа 50 и 100 из файла данных присваиваются переменным Х и У соответственно и выводятся на печать оператором РК151Т (строка 30).
В строке 50 указатель данных сбрасывается в нуль оператором КЕЗТОКЕ и происходит присваивание новых числовых значений. В строке 60 эта операция реализуется, присваивая В=50 и А=100 из файла данных. Заметьте: переменная В появляется после оператора КЕЯТОКЕ первой и ей присваивается первое числовое значение из файла, т.
е. 50. Затем в строке 70 числовое значение 100 присваивается второй переменной, т. е. А. Интересным оператором является также 5%АР, с помощью которого можно поменять значения, присвоенные двум разным переменным. В случае операции ЯШАР Х, У переменные Х и У Глава в могут иметь как числовые, так и символические значения. Операции с переменными в форме строк символов будут рассмотрены в следующих разделах.
Этим переменным присваиваются группы символов, например образующих некоторый связный текст. Символические переменные отличаются от числовых символом доллара, который помещается после соответствующей переменной. В файле данных группы символов, которые образуют строку (текст), заключаются в кавычки. Пример применения оператора 5%АР: ИЕ% 1О Х=5 20 7=10 30 РК15)Т Х, У 40 ЗЮАР Х, У 50 РК1МТ Х, У 60 Х$ =„ОБЕЗЬЯНА" 70 У$ =„ОРЕХ" 80 РЯ1МТ Х$, У$ 90 5%АР Х$, У$ 100 РИКТ Х$, У$ 110 ЕМП К1)М 5 1О 10 5 ОБЕЗЬЯНА ОРЕХ ОРЕХ ОБЕЗЬЯНА Прямой ввод данных и переменных возможен также с помощью оператора 1.ЕТ, например 1.ЕТ А=10.
После этого оператора может следовать и какое-либо выражение, например ЬЕТ А=С+В. Здесь оператор ЬЕТ можно интерпретировать как «пусть А равно...». Это означает, что выражение справа от знака равенства может быть также и текстом, как следует из процедур обработки строк символов (см. разд.
6.9). 6.6. Вывод данных на экран дисплея н при помощи принтера Оператор РК1МТ позволяет вывести на экран дисплея илн печать программу, введенную с клавиатуры, в частности комментарии и результаты обработки в виде текста и числовых данных. Вывод на дисплей производится оператором РК1ХТ, вывод на печать — оператором ЬРК1НТ.
Следует отметить, что во многих системах видеодисплей имеет вид телевизионного приемника. Различие между операторами РК1ИТ и ЬРК1ХТ ззв Языки ирограямировакия высокого уровня — Бейсик связано с применением команды 1.15Т. При выводе текста соответствующие символы необходимо заключить в кавычки.
Эти символы затем печатаются принтером или высвечиваются на экране дисплея. С помощью оператора РИ)чТ можно также вывести на печать результат численной обработки или числовое значение какой-либо переменной. При этом не используются кавычки и программируется, например РК1)к)Т 3+8, или же в случае какого-либо числа или переменной РК1ИТ 34 или РК1МТ В соответственно.
Если после РЖЕТ не указаны никакие другие операнды, то выполняются только операции «перевода строки» и «возврат каретки». Пример: 'г) ЕЮ 10 РК11чТ „ВАЫС" 20 РК1МТ „2Х7" 30 РИ)к)Т 257, 2»7 40 Ег))г К1ЛЧ ВА51С 2Х7 257 14 Текст выражений, например в строках 10 и 20, заключается в кавычки и печатается без всякой обработки в требуемом месте программы. Если же убрать кавычки, как это сделано в строке 30, то на выходе появится число 257 н результат вычисления 2и7. Если в программе какая-либо переменная, например Х, использована без кавычек, то на выходе будет напечатано только числовое значение Х.
Тексты, помещенные в последовательно расположенных строках с предшествующим оператором РАНТ и заканчивающиеся точкой с запятой (;), при выполнении программы печатаются на одной строке. Если соответствующие строки заканчиваются запятой (,), то печать будет выполнена также на одной строке. Однако обычно тексты разбиваются на зоны по 15 символов в каждой, и их окончание указывается точкой с запятой. Можно представить себе также и ситуацию, когда соответствующие тексты, находящиеся после оператора РК1ХТ, вводятся в одной строке. Если эти тексты разделяются запятыми, то будет произведена распечатка по частям, когда как при разделении с помощью точки с запятой соответствующие тексты будут объединены.
Оператор РИ)чТ, находящийся в пронумерованной строке, после которого следует какое-либо выражение, число или пе- З4О Глава б ременная, сам по себе ничего напечатать не может. Для реализации выдачи на печать необходимо выполнить несколько операций, которые образуют довольно простую процедуру. После оператора РК1ХТ 1ч' помещается оператор ЕЬП), затем с клавиатуры вводится команда К11Х и нажимается клавиша КЕТ()КХ.
Если ввести оператор РК1ХТ И без указания номера строки и нажать клавишу КЕТ(1КХ, то произойдет то же самое, т. е. соответствующее число, переменная или выражение будут отпечатаны на выходе. Для печати текстов в табличной форме Бейсик располагает оператором ТАВ. После РК1ЫТ ТАВ в скобках указывается позиция первой буквы текста, считая от начала строки, а также приводится текст, переменная или число, которые печатаются в таблице.
Для иллюстрации действия оператора ТАВ можно привести следующий пример: ХЕ% 1О КЕАО А3 20 РАТА „КОФЕ" 30 1.ЕТ А=7 40 1.ЕТ В=15 50 РК!МТ ТАВ (1) А3; 60 РК!МТ ТАВ (10) А; 70 РК!ХТ ТАВ (20) В 80 ЕИР К() И КОФЕ 7 15 Здесь А3 является так называемой текстовой переменной, с помощью которой в файле данных указывается текст „КОФЕ". Этот текст вводится в файл данных оператором РАТА. Переменным А и В оператор (.ЕТ присваивает определенные числовые значения. При выполнении программы распечатка происходит в табличной форме, так как после оператора РК)ХТ указан оператор ТАВ. Команда 1.15Т предназначена для вывода на печать полного текста программы или какой-либо ее части в порядке следования номеров строк. Во время действия команды ).15Т программа не выполняется.