Примеры
DATA 3.I4I59, PI, 5E-I0,
READ X, У, Z
READ X(I), А(3)
RESTORE
Семантика
Данные из всей совокупности операторов-хранения-данных собираются в единую последовательность данных. Порядок, в котором данные текстуально появляются в операторах-хранения-данных, определяет их порядок в последовательности данных.
При выполнении оператора-хранения-данных никаких действий не производится, происходит переход на следующую строку.
Оператор-рассылки-данных присваивает значения переменным из списка-переменных в порядке, организованном оператором-хранения- данных. С последовательйбстью данных связан специальный указатель, который при запуске программы указывает на первую заданную-вели- чину в последовательности данных. При выполнении очередного опера- тора-рассылки-данных каждой переменной из списка-переменных последовательно присваивается значение заданной-величины, на которую показывает указатель, а указатель при этом передвигается на следующую з аданную- в еличину.
Оператор-восстановления-указателя-рассылки возвращает указатель на начало последовательности, так что при выполнении следующего оператора-рассылки-данных данные будут считываться, начиная с первой заданной-величины из' последовательности;
Тип заданной-величины в последовательности данных должен соответствовать типу переменной, которой присваивается эта величина. Числовые переменные требуют присваивания текста-не-в-кавычках, которые являются числовыми-константами, а текстовые-переменные требуют присваивания им текста-в-кавычках или текста-не-в-кавычках. Текст-не-в-кавычках, который является представлением числа, может быть присвоен текстовой-переменной или числовой переменной при помощи оператора-рассылки-данных.
Индексированные выражения из списка-переменных вычисляются после того, как предшествующим переменным (т.е. стоящим левее их) присвоены соответствующие значения.
Исключения
Список-переменных в операторе-рассылки-данных требует, большее число данных, чем осталось в списке, заданном оператором-хранения- данных (неустранимая ошибка).
Попытка присвоить числовой-переменной текст-в-кавычках или текст-не-в-ковычках, которая не является представлением числовой константы (неустранимая ошибка).
Вычисление числовой-заданной-величины приводит к переполнению. Ошибка не является неустранимой, восстановительная процедура должна заменять результат машинным максимумом с соответствующим знаком, вычисления должны продолжаться.
Присваивание заданной-величины текстовой-переменной приводит к переполнению текстовой переменной. Возникает неустранимая ошибка.
Примечания
Ошибки в списке-данных могут генерировать исключительные ситуации во время выполнения операторов рассылки-данных-и восстанов- ления-указателя-рассылки.
Реализация должна выдавать сообщение о переполнении как об исключительной ситуации, вычисления должны продолжаться.
Если вычисление числовой-заданной-величины приводит к потере точности, то результат должен заменяться нулем.
О б ъ я в л е н и я массивов
Общее описание
Оператор-обьявления-массива резервирует память под одномерный или двумерный массив. Оператор-обьявления-нижней-границы определяет нижнюю границу для всех индексов массива. Использование оператора-объявления-нижней-границы дает возможность объявить в качестве нижней границы индексов массива нуль или единицу. Если нет объявления верхней границы индексов массива, по умолчанию они полагается равной 10. Таким образом, резервируется память для 10 или 'П элементов в одномерном случае и 100 или 121 элемента в двумерном случае в зависимости от установленной нижней границы. Опе- ратор-объявления-массива может объявлять массивы с верхней грани цей индексов, отличной от десяти.
Общая синтаксическая форма оператора-объявления-массива следующая:
,DIM объявление,.. ., объявление где каждое объявление имеет вид: буква (целое)
или
буква (целое, целое)
Общая . синтаксическая. форма оператора-объявления-нижней-гра- ницы следующая:
OPTION BASE n
где n — либо 0, либо I.
Синтаксис
оператор-объявления-массива = DIM объявление-массива (запятая объявление-массива) *
объявление-массива = имя-числового-массива круглая-скобка- левая границы круглая-скобка-правая
границы = целое (запятая целое) ?
оператор-объявления-нижней-границы = OPTION BASE (0| I)
Примеры
DIM A (6), В (10,10)
OPTION BASE I
Семантика
Каждое объявление-массива в операторе-объявления-массива объявляет его размерность. При указании одной границы массив будет одномерным, а при указании двух границ — двумерным.
Кроме того, границы специфицируют максимальные значения для индексных выражений массива.
Объявление массива, если оно присутствует в программе, должно находиться в строке с меньшим номером, чем первое обращение к элементам этого массива. Массивы, не объявленные в операторе-объявления-массива, объявляются неявно одномерными или двумерными, в зависимости от числа индексных выражений. Максимальные значения индексов по умолчанию полагаются равными 10 (см. 3.4).
Оператор-объявления-нижней-границы объявляет минимальное значение для индексов массива; при его отсутствии в программе минимальное значение по умолчанию полагается равным нулю. Если опера- тор-объявления-нижней-границы в качестве нижней границы значений массива объявляет единицу, то оператор-объявления-массива не может объявлять в качестве верхней границы нуль.
Программа может содержать только один оператор-объявления- нижней-границы.
При выполнении оператора-объявления-массива или дператора-обь- явления-нижней-границы никаких действий не прризводится, происходит переход на следующую строку.
Каждый массив в программе можно объявлять только один раз.
О п е р а т о р-п р им еч ан и й
Общее описание
Оператор-примечаний позволяет документировать программу.
Синтаксис
Оператор-примечаний = REM текст-примечаний
Примеры
REM ОКОНЧАТЕЛЬНАЯ ПРОВЕРКА
Семантика
При выполнении оператора-примечаний никаких действий не производится, происходит переход к следующей строке.
3 а пу*с к-г е н ератора-псевдослучайных-чи- с е л
Общее описание
Оператор-запуска-генератора-псевдослучайных-чисел вырабатывает определенную реализацией последовательность псевдослучайных чисел, являющихся значениями RND-функции, создавая во время каждого выполнения данной программы различные (и непредсказуемые) пос- л едовательно сти.Синтаксис
Оператор-запуска-генератора псевдослучайных-чисел = RANDOMIZE
Примеры '
RANDOMIZE
Семантика
Выполнение оператора-запуска-генератора-псевдослучайных-чисел вырабатывает новую начальную точку для списка псевдослучайных чисел, используемую функцией RND.
Примечания
Если в реализации невозможно обеспечить доступ к устройствам, вырабатывающим случайные данные (например, к таймеру, работающему в реальном масштабе времени), то оператор-запуска-генератора-псев- дослучайных-чисел надлежит реализовать с использованием диалога с пользователем.
4. МОДУЛЬ РАСШИРЕНИЯ ОСНОВНЫХ СРЕДСТВ
Этот модуль состоит из двух уровней и содержит описание дополнительных возможностей языка Бейсик, не вошедших в ядро настоящего стандарта. При этом описываются только те возможности, реализация которых не ’требует включения в состав ЭВМ каких-либо специальных аппаратных средств.
Данный модуль содержит описание только тех средств языка, которые либо не описаны в ядре, либо расширены по сравнению с ядром. При этом пункты, подпункты и перечисления, содержание которых совпадает с описанием, приведенным в ядре, опущены.
Уровень 1
С и м в о л ы и тексты
Общее описание
Набор символов дополнительно включает строчные буквы латинского и русского алфавитов.
Синтаксис
5) символ-текста-в-кавычках = строчная-буква-латинская | строч- цая-бу кв а-русск ая
строчная-буква-латинская = a|b|c|d|e|f|g|h|i|jfk|l|m|o|p|q|r| sfjt|u|v|w|x|y|'z
строчная-буква-русская = а|б|в|г|д|е|ё|ж|з|и|й|к|л|м|н|о|п| р|с|т|у|ф.|х|ц| ч||ш| щ|ъ |ы| ь| э|ю| я
Семантика
Все буквы представляют собой множество прописных и строчных букв латинского и русского алфавитов.
Примечания
Все строчные буквы латинского и русского алфавитов могут использоваться только в примечаниях и в качестве констант (см. п. 4.1.3.).
Программы
Общее описание
Расширение основных средств допускает размещение в одной строке нескольких операторов. Кроме того, расширен список допустимых операторов.
Синтаксис
. 3) строка-с-оператором = номер-строки пробел * оператор (пробел * двоеточие пробел * оператор) * конец-строки
оператор = оператор-определения функции I оператор-определе- ния-типа-переменной | оператор-описания-массива | оператор-условного- перехода І оператор-ввода | оператор-присваивания I оператор-ввода- текста I оператор-вывода-строки-на-печать | оператор-выделения-под- стрбки I оператор-обработки-ошибок | оператор-вычисляемого-вызова- подпрограммы | оператор-записи-в-оперативную-память | оператор-фор- матированного-вывода | оператор-выхода-из-подпрограммы-обработки- ошибок I оператор-восстановления-указателя-рассылки | оператор-вклю- чения-трассировки | оператор-выключения-трассировки
4 Л,2-3. Примеры
ПО LET А = 5 : PRINT А : STOP
Сёмантика
Строки программ выполняются последовательно в соответствии с номерами строк. Операторы, расположенные в одной строке, выполняются по порядку слева направо.
Максимально допустимая длина строк в программах, удовлетворяющих уровню 1, должна быть не менее 255 символов, включая указатель конца-строки.
Примечания
После некоторых операторов не допускается наличие других операторов, отделенных двоеточием (см. пп. 3.15,4.1.9).
К о н с т а н т ы
Общее описание
Дополнительно допускаются следующие типы числовых констант:
представление с явно заданной sd . . . drd. . . dDsd .. . d точкой с заданным порядком
представление с неявно заданной sd . . . dDsd . . . d точкой с заданным порядком
представление в виде &Hh ... h шестнадцатеричного числа
Здесь D — явный символ D, Н — явный символ Н, a h — десятичная цифра или одна из прописных букв А, В, С, D, Е или F.
В конце числовой константы с неявно заданной точкой или с явно заданной точкой без задания порядка может стоять спецификатор типа, указывающий, что данная константа является целой, либо вещественной с одинарной точностью, либо вещественной с удвоенной точностью.
Синтаксис
4) мантисса = (целое тип?) | (целое точка тип?) | (целое дробная- часть тип?) I шестнадцатеричное-значениепорядок = (Е знак? целое) | (D знак? целое)
тип = процент I восклицательный-знак | номер
шестнадцатеричное-значение =&Н шестнадцатеричная-цифра шес- тнадцатеричная-цифра *
шестандцатеричная-цифра = цифра |A|B|C|D|E|t
4 Л 3.5. Примеры
’ 3) 5.7 #
6%
7! •
&Н2В7
Семантика
Числовая константа может быть целым числом, либо числом с оди- тарной точностью, лиоо числом с удвоенной точностью.
Числовая константа с одинарной точностью - это вещественное число, содержащее в записи не более семи цифр, или содержащее порядок с буквой Е, или заканчивающееся символом восклицательный знак (!), или не содержащее указателя типа.
Числовая константа с'удвоенной точностью — это вещественное число, содержащее в записи более семи цифр, или содержащее порядок с буквой D, или заканчивающееся символом номер (N).
Целая константа - это целое число, заканчивающееся символом процент (%).
Шестнадцатеричные цифры представляются цифрами от 0 до 9, а также буквами, причем А — соответствует 10.В — 11,С — 12, D— 13, Е — 14 иЕ—15.
Шестнадцатеричные константы должны рассматриваться как кон-’ станты целого типа.
Диапазон представления чисел зависит от реализации. Диапазон для целых чисел должен быть не менее чем от — 32768 до+32/67.
Допустимая длина текстовой константы зависит от реализации и должна быть не менее 255 символов. .
Примечания
Тип константы по умолчанию определяется реализацией.
4.1.4. Переменные
Общее описание
Переменные в Бейсике связаны с числовыми или с текстовыми значениями. Числовые переменные могут быть либо простыми переменными, либо ссылками на элементы массива, такие ссылки называются индексированными переменными.
Идентификаторы простых переменных могут состоять из букв, цифр и начинаются обязательно с буквы.