13) оператор-вычисляемого-вызова-подпрограммы = ON арифметическое-выражение GO пробел * SUB номер-строки (запятая номер- строки)*
4Л.9.3. Примеры
2) IF А#< BttANDiX+5< 10 THEN 500 ELSE STOP
IF X OR Y THEN 200 ELSE 300
Семантика
Если значение выражения в операторе-условного-перехода - ’’истина” то выполнение программы будет продолжено с номера-строки, идущего после слова THEN. Если после ключевого слова THEN стоит последовательность операторов, то после их выполнения будет выполняться строка, идушдя после строки с оператором-условного-перехода. Если значение выражения — ’’ложь” и оператор содержит ключевое еловое ELSE, то управление будет передано строке с указанным номером- строки. Если после слова ELSE стоит последовательность операторов, то после их выполнения будет выполняться строка, идущая после опе- тратора-условного-перехода.
’’Ложь” должна иметь в качестве внутреннего представления нуль, а ’’истина” должна иметь в качестве внутреннего представления число, отличное от нуля.
При сравнении текстовых-переменных меньшей считается более короткая переменная. Если длина сравниваемых текстовых переменных одинакова, то сравниваются числа, полученные из кодов символов этих переменных. Сравнение ведется посимвольно, начиная с самого левого символа. Меньшее число соответствует меньшей переменной.
Выражение в операторе-вычисляемого-вызова-подпрограммы преобразуется в целое число, которое затем используется для выбора номера- строки из списка'в операторе-вычисляемого-вызова-подпрограммы (но- мера-строк в списке нумеруются слева направо, начиная с I). Потом вызывается подпрограмма с выбранным номером строки.
Исключения
Целое, полученное при вычислении арифметического-вйражения в операторах-вычисляемого-безусловного-перехода и вычисляёмого- вызова-под-программы, меньше единицы ил» больше количества элементов в списке номеров-строк. Ошибка не Является неустранимой. Должен выполняться переход к следующей по порядку строке.
• 4 Л.9.6. Примечания
Если оператор-условного-перехода используется для проверки на равенство двух арифметических-выражений, дающих вещественный результат, то следует учитывать, что вычисления проводятся с определенной точностью. Поэтому вместо проверки на равенство следует сравнивать абсолютное значение разности этих выражений с машинным минимумом, т.е. вместо записи
IF COS (А) = 0.5 THEN 340- следует использовать запись
IF ABS (COS (А) - 0.5) < 0.00 ... 01 THEN 340
Оператор-условного-перехода должен быть последним оператором в строке.
Оператор-форматированного-вы вода
-1 г Общее описание
Оператор-форматированного-вывода предназначен для генерации форматированного вывода.
Общая синтаксическая форма оператора-форматированного-выво- да имеет вид:
PRINT USING стр; элемент р элемент р . . . элемент
где каждый элемент является либо выражением, либо пробелом, р — знак пунктуации (запятая или точка с запятой), а стр — это текстовая-константа или текстовая-переменная, управляющая форматом вывода.
Синтаксис
Оператор-форматированного-вывода = PRINT пробел USING текс- товая-константа I текстовая-переменная точка-с-запятой список-печати
Примеры
PRINT USING,, # #1 # # # А, В
Семантика
Оператор-форматированного-вывода используется для организации форматированного вывода. Управление форматом-вывода осуществляется при помощи специальных символов управления форматированием. Символы форматирования для вывода числовых значений приведены в табл. 4.
Таблица 4
Д
Символ
ействиеНомер задает обязательно заполняемую позицию каждой цифры. Если выводимое число имеет меньше цифр, то слева оно дополняется пробелами
Плюс указывает, что перед выводимым числом должен явно стоять его знак: плюс или минус
Минус в конце формата указывает, что для выводимых отрицательных чисел знак минус должен быть в конце числа
Точка отделяет дробную часть выврдимого числа от целой части Выводимые числа при необходимости округляются до точности, определяемой форматом вывода
При выводе текста используются два символа: восклицательный знак (!) указывает, что из данного текста выводится только первый символ; (я пробелов) указывает, что из текста выводятся только первые п + 2 символа.
Исключения
Выводимое число имеет больше цифр в целой части числа, чем задано в формате вывода. Ошибка не является неустранимой. Должен выполняться полный вывод числа; перед числом вывод символа процент (%)
О пер атор-выво да-на-печатающее-устрой- с т в о
Синтаксис и семантика оператора-вывода-на-печатающее-устройство полностью совпадают с синтаксисом и семантикой оператора-вывода, за исключением того, что вместо ключевого слова PRiNT используется ключевое слово LPRINT и вывод осуществляется не на терминах, а на печатающее устройство.
О п е р а т о р - в в о д а
Общее описание
Оператор-ввода дает возможность вводить элементы данных в режиме диалога, где элементом данных может быть как числовое, так и текстовое выражение. Общая синтаксическая форма оператора-ввода следующая:
INPUT подсказка; переменная,. .. .переменная
где подсказка — это текстовая-константа.
Синтаксис
оператор-ввода = INPUT (подсказка;) ? список-ввода
подсказка = текстовая-константа
4.1 Л2.3. Примеры
1) INPUT ’’Введение значения для А и N”; А, N
. Семантика
Подсказка позволяет выводить информацию об ожидаемых вводимых данных.
О п е р а т о р - в в о д а . т е к с т а
Общее описание
Оператор-ввода-текста позволяет вводить данные с терминала, игнорируя все управляющие символы, кроме конца-строки.
Общая синтаксическая форма оператора-ввода-текста следующая:
LINE INPUT (подсказка;) ? тексте вая-перем енная
Синтаксис
Оператор-ввода-текста = LINE пробел INPUT (подсказка;) ? тексто- вая-переменная
Примеры
LINE INPUT ’’Введите ответ”; V&
Семантика
Текстовой-переменной присваиваются все вводймые данные до тех пор, пока не будет превышена допустимая длина текста, определяемая реализацией, или пока не будет ^введен конец-строки.
О б ъ я в л е н и е массивов
Общее описание
Оператор-обьявления-массивов резервирует память под многомерные массивы.
Общая синтаксическая форма ч оператора-объявления-массива следующая:
DIM объявление,. 1. , объявление где каждое объявление имеет вид: имя-переменной (целое, ..,, целое) 4.1.14.2. Синтаксис
объявление-массива = имя-числовогр-массива | имя-текстового- массива круглая-скобка-левая-границы круглая-скобка-правая
границы = целое (запятая целое) *
Примеры
1) DIM А1% (10,3,2)
DIM ВД(5,II)
Семантика
Массивы могут быть текстовыми (элементы массива — текстовые- переменные) и числовыми (элементы массива — числовые-переменные). Числовые массивы могут иметь спецификатор типа, т.е. быть целыми, с одинарной точностью и с удвоенной точностью.
Максимально возможное количество измерений (индексов) должно быть не менее четырех (см. п. 4.1.4.).
Искл ючения
Вычисленное значение индекса превышает указанное в операторе- объявления-массивов (неустранимая ошибка).
3 ад ан и е типов переменных
Общее описание
Оператор-задания-типов-переменных позволяет задать тип переменных в зависимости от первой буквы имени.
Общая синтаксическая форма оператора следующая:
DEF тип 61-62,... ,бк-б1
где тип — это SNG, DBL, STR или INT, а бк—61 — диапазон букв.
Синтаксис
оператор-задания-типов-переменных = DEFnin буква-типа минус буква-типа (запятая буква-типа минус буква-типа) *
тип = INT|SGNIDBLISTR
буква-типа = прописная-буква-латинская
Примеры
DEFINT А-С, М-Р, X- Z
Сем ан ти ка
Оператор-задания-типов-переменных указывает, что все переменные, идентификаторы которых начинаются с одной из букв заданного диапазона, являются переменными указанного типа.
При указании диапазона букв буква, стоящая слева Ьт знака минус, в алфавите, должна стоять раньше буквы, стоящей справа от знака минус.
Спецификатор типа имеет более высокий приоритет, чем оператор- задания-типов-переменных.
Оператор -за мены- текста
Общее описание
Оператор-замены-текста используется для замены части текста на другой текст.
Общая синтаксическая форма оператора следующая:
М1Оф(хД^п, т) = уДГ
Синтаксис
оператор-замецы-текста = МПЭДкруглая-скобка-левая текстовая- переменная запятая начальная-позиция (запятая количество)? круглая скобка-правая знак-равенства текстовое-выражение
начальная-позиция = целое
количество = целое
Примеры
1) МГОД(хП2,5) =у#
Семантика
Символы текстовой-переменной, стоящей слева от знака равенства, начиная с н-й позиции, заменяются символами из текстовой-переменной, стоящей справа от знака равенства.
Если задано количество, то заменяется указанное количество символов, иначе используется весь текст. Длина текстовой переменной, стоящей слева от знака равенства, не изменяется. Лишние символы текстовой-переменной, стоящей справа от знака равенства, опускаются.
4 Л Л6.5. Исключения
Начальная-позиция или количество, или их сумма превышает длину текста, определенную реализацией (неустранимая ошибка).
Оператор-записи-в-оперативную-память
Общее описание
Оператор-записи-в-оперативную-память предназначен для записи целого числа в оперативную память. Общая синтаксическая форма опе- ратора-записи-в-оперативную-память имеет вид:
POKE I, J
Синтаксис
оператор-записи-в-оперативную-дамять = РОКЕ адрес, данное
адрес = целое
данное - целое
Примеры
РОКЕ, А1%, В%
Семантика
Значение данного записывается по указанному адресу.
Исключения
Значение данного превышает максимальное число, допускаемое реализацией (неустранимая ошибка).
Значение адреса находится вне диапазонов адресов, допускаемых реализацией (неустранимая ошибка).
Примечания
Оператор-записи-в-оперативную-память является дополнением функции-peek (см. п. 4.1.6). Он также может затруднять переносимость программ. '
В с т р о е н н ы е средства ^отладки
Общее описание
Встроенные средства отладки позволяют обрабатывать некоторые ошибочные ситуации, а также выводить на терминал номера выполняемых строк программы.
Переменная-ERR содержит код ошибки.
Переменная-ERL содержит Номер-строки, в которой произошла ошибка.
Оператор-обраббтки-ошибок
ON ERROR СОТОномер-строки
вызывает подпрограмму обработки ошибок.
Оператор-выхода-из-подпрограммы-обработки-ошибок
RESUME аргумент
осуществляет возврат из подпрограммы.
Операторы-включения и выключения-трассировки включают и вык лючают режим трассировки, т.е. режим вывода на терминал номеров выполняемых программных строк
Синтаксис
оператор-обработки-ошибок = ON пробел ERROR пробел GO пробел* ТОномер-строки
оператор-выхода-из-подпрограммы-обработки-ошибок = RESUME нуль номер-строки NEXT
оператор-включения-трассировки = TRON
оператор-выключения-трассировки = TROFF
переменная-ERR = ERR
переменная-ERL = ERL
Примеры
ON ERROR GOTO 100
IF ERL = 120 THEN STOP
Семан тика
Переменная-ERR содержит код ошибки. Список кодов ошибок определяется реализацией.
Переменная-ERL содержит номер строки, в которой произошла ошибка.
Идентификаторы ERR и ERL являются зарезервированными и не могут использоваться в качестве имен-переменных в левой части оператора- присваивания.
Если в программе используется оператор-обработки-ошибок, то при возникновении любой ошибочной ситуации должна вызываться подпрограмма с указанным номером строки.
f Возврат из подпрограммы обработки ошибок может осуществляться только при помощи оператора-возврата-из-подпрограммы-обработки- ошибок. При использовании формата RESUME 0 управление снова передается оператору, выполнение которого привела к ошибке.При использовании формата RESUME NEXT управление передается оператору, выполняемому вслед за ошибочным.
При использовании формата RESUME номер-строки управление передается строке с заданным номером.
После выполнения оператора-включения-трассировки на терм ’ал должны поочередно выводиться номера всех выполняемых строк. Вывод строк прекращается после выполнения оператора-выключения трассировки.