Каждая строка должна начинаться с номера-строки. Целые числа, представляющиеномера-строк, должны быть больше нуля; ведущие нули в числе, представляющем номер-строки, игнорируются. Операторы выполняются поочередно в соответствии с возрастанием номеров-строк.
Определение конца-строки зависит от реализации. В качестве койца- строки может использоваться символ возврата каретки или символ возврата каретки, после которого идет символ перевода строки, или конец физической записи.
Строка программы, соответствующей стандарту, может содержать до 72 символов. Признак конца-строки не входит в это число .символов.
Оператор-конца не только указывает на физический конец тела программы, но и должен завершать выполнение программы.' 2*
3.2.5. Примечания
Средства редактирования должны допускать ввод строк программы в любом порядке, а также допускать ввод строк с одинаковыми номерами и строк, содержащих только номер строки. Эти средства должны выполнять сортировку строк программы в надлежащем порядке; в случае дублирования номеров строк должна сохраняться строка, введенная последней. Допускаются реализации, удаляющие строки, содержащие только номер-строки.
3.3. Константы
'3.3.1. Общее описание
Константы могут быть числовыми и текстовыми.
Числовая константа — это число в десятичной системе счисления. Существуют четыре основных формата представления числовых констант:
представление с неявно заданной sd ... d точкой
представление с явно заданной точ- sd ... drd ... d кой без задания порядка
представление с явно заданной точ- sd ... drd ... dEsd .. . d кой с заданным порядком
представление с неявно заданной sd ... dEsd .. . d точкой с заданным порядком, где d - десятичная цифра; г — знак-точка; s — знак- плюс или знак-минус; Е - буква Е, показатель порядка.
Текстовая константа — это последовательность символов, заключенная в кавычках.
3.2. Синтаксис
числовая-константа = знак? число
знак = плюс | минус
число = мантисса порядок?
, 4) мантисса = (целое точка?) | (целое? дробная-часть) 5) целое = цифра цифра *
дробная-часть = точка целое
порядок = Е знак? целое
текстовая-константа = текст-в-кавычках
3.3. Примеры
1) -21
IEI0
5E-I
.4E+I 500 I .255
”XYZ”
”Х—ЗВ2”
’’ІЕІО”
Семантика
Значением числовой константы является число, представленное этой константой. Буква Е указывает ’’степень числа 10”; при отсутствии знака после Е подразумевается плюс. Пробелы в числовых константах запрещены.
■ В программе допускаются числовые константы с любым количеством цифр, хотя в конкретных реализациях значения числовых констант округляются до точности, определенной реализацией, но не менее шести значащих десятичных цифр. '
Порядок числовой константы также может содержать произвольное число цифр. Если величина ненулевой числовой константы выходит за пределы диапазона,’определенного реализацией, фиксирууется исключительная ситуация. Минимальный диапазон для числовых констант должен быть в пределах от IE—38 до IE+38. Величины констант мецыпе машинной точности должны заменяться нулем. Если величина констант больше машинного максимуму, то должно диагностироваться переполнение.
Значением текстовой константы является вся последовательность символов между кавычками, включая пробелы. Длина текстовой константы, т.е. число символов между кавычками, ограничена только длиной строки.
Исключения
Вычисление числовой константы вызывает переполнение. Ошибка не является неустранимой, должна существовать восстановительная процедура, заменяющая результат машинным максимумом с определенным знаком, и выдающая соответствующее диагностическое сообщение, после чего вьиисления должны продолжаться.
Примечания
Возможно переполнение текстовой переменной, если программа пытается присвоить этой переменной текстовую константу длиной, превышающей максимальную длину текста, определяемую реализацией (см. также п. 3.4.4.).
Реализация должна выдавать сообщение о потере точности в константах, значения которых меньше машинного минимума; вычисления после выдачи сообщения должны продолжаться.
Переменные
Общее описание
Переменные в Бейсике связаны с числовыми или с текстовыми значениями. Числовые переменные могут быть либо простыми переменными, либо ссылками на элементы одно- или двумерного массива, такие ссылки называются индексированными переменными.
ПросТая-числовая-переменная обозначается буквой, за которой может следовать цифра.
Индексированное чи^л.звые-переменные состоят из одной буквы, за которой следует одно а г/ два арифметических выражения, заключенные в круглые скобки.
Для обозначения текстовой-переменной служит буква, за которой следует знак денежной единицы.
Язык Бейсик не требует явных описаний типов переменных. Знак денежной единицы указывает на текстовую переменную, а индекс отличает индексированную переменную от простой-числовой переменной.
Синтаксис
переменная = числовая-переменная | текстовая-переменная
числовая-переменная = простая-числовая-переменная | элемент- числового-массива
простая-числовая-переменная = буква цифра?
элемент-числового-массива = идентификатор-числового-массива индекс
идентификатор-числового-массива = буква
индекс = круглая-скобка-левая арифметическое-выражение (запятая арифметическое-выражение) ? круглая-скобка-правая
текстовая-переменная — буква знак-денежной-единицы
Примеры
X
А5
V(3)
W(X,X+Y/2)
Sit
Семантика
В каждый момент выполнения программы числовой-переменной соответствует единственное числовое значение, а текстовой-переменной - единственное текстовое значение. Значение, соответствующее переменной, может изменяться при выполнении операторов программы. Длина текста, соответствующего текстовой-переменной, может изменяться в процессе выполнения программы от нуля символов (нулевая или пустая текстовая-переменная) до максимального количества символов, допускаемого реализацией. Максимально допустимая длина текстовой- переменной определяется реализацией. При этом реализация должна обеспечить длину не менее 18 символов.
Простые-числовые-переменные и текстовые-переменные объявляются неявно при их первом появлении в программе.
Индексированная переменная ссылается на элемент одномерного или двумерного массива, выбранного по значению индекса (значениям индексов). Значение каждого индекса округляется до ближайшего целого. Индексированные переменные объявляются явно в операторе-объяв- ления-массива. Если индексированные переменные не были явно объявлены в операторе-объявления-массива, то они должны объявляться неявно при их первом появлении в программе. В этом случае при отсутствии оператора-объявления-нижней-границы индексы принимают значения в диапазоне от нуля до десяти включительно. Выражения, представляющие индексы, должны принимать значения из соответствующего диапазона.
Числовая-переменная, идентификатор которой совпадает (за исключением знака-денежной-единицы) с идентификатором текстовой-пере- менной, никак с ней не связана.
Начальные значения, присваиваемые переменным, должны определяться реализацией.
Исключения
Значения индекса выходит за границы явно или неявно объявленного диапазона (неустранимая ошибка).
ЗА.6. Примечания
Так как начальные значения, присваиваемые переменным по умолчанию, не специфицируются в настоящем стандарте, а, значит, могут, определяться конкретной реализацией, то для того, чтобы программа была переносимой, необходимо каждой переменной в программе явно присвоить значение перед вычислением выражения, в которое входит эта переменная.
Значения переменных, если это не оговорено явно, до выполнения присваивания считаются неопределенными. Тогда при попытке доступа к значению переменной до того, как значение будет явно присвоено, будет зафиксирована искоючительная ситуация.
Выражения
Общее описание
Выражения могут быть либо арифметическими-выражениями, либо текстовыми-выражениями. Арифметические-выражения образуются из переменных, констант и обращений к функциям при помощи операций сложения, вычитания, умножения, деления и возведения в степень.
Текстовые-выражения составляются либо из текстовых переменных, либо из текстовых констант.
Синтаксис
выражение = арифметическое-выражение | текстовое-выражение
арифметическое-выражение = знак? терм (знак терм) *
терм = сомножитель (знак-умножения сомножитель) *
сомножитель = первичный (стрелка-вверх первичный) *
знак-умножения = звездочка дробная-черта
первичный = числовая-переменная | число | обращение-к-число- вой-функции I круглая-скобка-левая арифметическое-выражение круглая -скобка-правая
обращение-к-числовой-функции = имя-числовой-функции список- аргументов?
имя-числовой-функции = функция-определенная-пользователем | встроенная-числОвая функция
список-аргументов = круглая-скобка-левая аргумент круглая- скобка-права
яаргумент = арифметическое-выражение
текстовое-выражение = текстовая-переменная I текстовая- константа
Примеры
2) 3*Х—Ул2
А(1)+А(2)+А(3)
. —X/Y
4) 2Л(—X)
6) SQR(XA2+YA2)
Семантика
Формирование и вычисление арифметических-выражений производится по обычным алгебраическим правилам. Символы стрелка- вверх (Л), звездочка (*), дробная черта(/), плюс (+) и минус (-) представляют операции возведения в степень, умножения, деления, сложения и вычитания соответственно. Если скобки не меняют порядка вычислений, то операции возведения в степень выполняются первыми, затем выполняются операции умножения и деления и, наконец, операции сложения и вычитания. При отсутствии скобок операции одного старшинства выполняются слева направо.
А—В—С интерпретируются как (А—В)—С;
АЛВЛС как (АЛВ)ЛС;
А/В/С как (А/В)/С и
-АлВкак — (АЛВ).
Если при вычислении арифметического выражения происходит потеря точности, то результат операции, допустившей потерю точности, должен заменяться’ нулем.
0J0 по определению равно I.
При вычислении выражения учитываются свойства ассоциативности и коммутативности операций.
При обращении к функции число аргументов должно совпадать с числом параметров - нуль или один), заданных в описании функций.
Обращение-к-функции - это запись вызова ранее определенного алгоритма, в который вместо параметра, заданного в описании функции, подставляется значение аргумента.
Все функции, к которым происходит обращение в выражении, должны быть либо встроены в реализацию, либо описаны при помощи оператора-определениятфункции. Результатом вычисления функции, полученным при выполнении ранее описанного алгоритма, является чис- ловое-выражение. Оно замещает обращение-к-функции в выражении.
Значением текс^ового-выражения является значение текстовой- переменной или текстовой-константы, которая образует текстовое-выражение.
Исключения
Вычисление выражения приводит к делению на нуль. Восстановительная процедура должна заменять результат операции машинным максимумом со знаком делимого, выдавать диагностическое сообщение и продолжать вычисления.
Вычисление выражения приводит к переполнению. Восстановительная процедура должна заменять результат операции машинным максимумом с алгебраически правильным знаком и выдавать сообщение, после чего вычисления должны продолжаться.
Выполнение операции возведения в степень приводит к возведению отрицательного числа в нецелую степень; выполнение операции возведения в степень приводит к возведению нуля в отрицательную степень. Восстановительная процедура должна заменять результат вычисления положительным машинным максимумом и продолжать вычисления.
Примечания
Точность вычисления выражений зависит от реализации, но результат должен иметь не менее 6 значащих цифр.
Метод вычисления степени числа может зависеть от того, является ли показатель степени целым числом или нет. Если показатель степени целое число, то возведение в степень можно заменить многократным умножением, если же показатель степени дробное число, то вычисление степени рекомендуется выполнять при помощи встроенных функций LOG и ЕХР (см. п. 3.6.).
В с т р о е н н ы е-ф у н к ц и и
Общее описание
Ранее описанные алгоритмы для вычисления наиболее широко используемых числовых функций введены в реализацию и поддерживаются реализацией.
Синтаксис
Встроенная функция = ABS | ATN | COS | EXP | INTI LOG |RND|SGN| -SINISQRITAN
Семантика
Значения встроенных-функций и число аргументов каждой функции описаны в табл. 1. Во всех функция X обозначает арифметическое-выражение.
Таблица 1
Функция |
Значение функции |
ABS (X) |
Абсолютное значение X |
ATN(X) |
Арктангенс X в радианах, т.е. угол, тангенс которого равен X. Диапазоном функции является 0 < ATN(X) < (pi/2), при этом pi является отношением длины окружности круга к его диаметру |
COS(X) |
Косинус X, где X измеряется в радианах |
ЕХР(Х) |
Экспонента X, т.е. значение основания натурального логарифма (е = 2.718(28. . ,), возведенное в степень X; если ЕХР(Х) меньше |
|
машинного минимума, то ее значение заменяется нулем |
INT(X) |
Наибольшее целое, не превышающее X"; например, INT (1.3) = 1 и INT(—1.3)=-2 |
LOG(X) 1 3-Г265 |
Натуральный логарифм X; X должен быть больше нуля |