OPEN режим, # номер-файла, имя-файла, длина-текста
Синтаксис
оператор-открытия-файла = OPEN кавычки режим кавычки запятая номер номер-файла запятая имя-файла запятая длина-текста
режим = R
длина-текста = целое
8.2 Л.3. Примеры
1) OPEN ”R”,#I, ’’FILE”, 32
Семан ти ка
При выполнении оператора OPEN для заданного файла назначается буфер ввода/вывода.
Длина-текста - целое выражение, задающее длину текста для файла с произвольным методом доступа. Максимально'возможная длина-текста, а также длина-текста по умолчанию (т.е. длина, принимается в том случае, когда она явно не задана в операторе) определяется реализацией.
Примечания
При работе с файлом с произвольным методом доступа, один раз открыв файл, в него можно записывать и из него можно считывать инфор мацию.
Информация записывается текстами фиксированной длины, указан ной в операторе.
В ы д е л е н и е области для переменных
Общее описание
Оператор-выделения-области выделяет в буфере файла с последовательным доступом области для переменных.
Синтаксическая форма оператора имеет вид:
FIELD номер-файла, размер-области AS текстовая-переменная...
Син таксис
оператор-выделения-области = FIELD номер-файла запятая раз- мер-поля AS текстовая-переменная (запятая размер-поля AS текстовая-переменная) *
размер-поля = целое
Примеры
FIELD # 1,20 as N $ '
Семантика
Размер поля - это количество байтов, выделяемое для данной переменной. Общее число байтов, выделяемое оператором-выделения-
области для всех переменных, не должно превосходить длину записи, заданную при открытии файла.
Этот оператор должен быть выполнен до операторов чтения-из-фай- ла и записи-в-файл.
Примечания
Идентификаторы текстовых-переменных, указанные в операторе- выделения-области, нельзя использовать в левой части оператора-присваивания, а также в качестве переменных в операторе-ввода.
Оператор-чтения-текста
Общее описание
Этот оператор читает текст из файла с произвольным доступом в буфер. Синтаксическая форма оператора имеет вид:
GET номер-файла, номер-текста
Синтаксис
оператор-чтения-текста = GET номер-файла (запятая номер-текста) ?
номер-текста = арифметическое-выражение
Примеры
GET #2,371
Семантика
Этот оператор читает в буфер текст из файла с данным номером.
Если номер-текста опущен, то читается текст со следующим номером. Наибольший возможный номер-текста определяется реализацией.
Оператор-записи-текста
Общее описание
Этот оператор записывает в файл текст из буфера. Синтаксическая форма оператора имеет вид:
PUT номер-файла, номер-текста
Синтаксис
Оператор-записи-текста = PUT номер-файла (номер-текста)?
А.3. Примеры
PUT #4,20
Семантика
Этот оператор помещает текст из буфера в файл. Если номер текста опущен, то текст записывается со следующим по порядку номером (после предыдущего PUT). Максимальный номер текста определяется реализацией.
Пер есы л к а данных в буфер
Общее описание
Операторы-пересылки-данных-в-буфер используются для пересылки данных в буфер ф^йла с произвольным методом доступа (для подготовки к выполнению оператора-записи-текста). Синтаксическая форма этих операторов следующая:
LSET текстовая-переменная-текстовое-выражение
RSET текстовая-переменная-текстовое-выражение
Синтаксис
пересылка-данных-в-буфере-с-выравниванием-влево = LSET тек- стовая-переменная знак-равенства текстовое-выражение
пересылка-данных-в-буфере-с-выравниванием-вправо = RSET тек- стовая-переменная знак-равенства текстовое-выражение
Примеры
LSET V£= NN&+ ’’LIST”
Семантика
Если текстовое выражение требует меньше байтов, чем было отведено для текстовой переменной в операторе-выделения-области, то LSET пересылает выражение в левую часть буфера текста, заполняя правую пробелами, a RSET — в правую часть буфера текста, заполняя левую пробелами. Если же длина текста превышает длину буфера, то самые правые символы теряются. Числа перед пересылкой должны быть преобразованы в текст.
Примечания
Если при выполнении операторов пересылки буфер не был пуст (ранее не была произведена запись в файл), то старое содержимое буфера теряется.
Идентификаторы текстовых переменных в операторах пересылки должны совпадать с идентификаторами текстовых переменных в операторе-выделения-области.
8.2:6. Функции-преобразования-данных.
8.2.6.1. Общее описание
Так как в файлы с произвольным методом доступа можно записывать только текстовую информацию, то для преобразования чисел в тексты и наоборот в реализации должны существовать специальные функции. «
8;2.'6.2. Синтаксис
Функции-преобразования = MKIДЇ MKS ДI MKD Д ICVI|CVS [CVD|
Семан ти ка
Значения функций-преобразования приведены в табл. 5.
П
Таблица 5
Функция
l.T'-LH.
Значение функции '
CVI (X$) cvs (xC) CVD (хД) MKlQ(N%) MKSg(X) MKDg (Y #)
реобразует текст в целое числоПреобразует текст в число одинарной точности
Преобразует текст в число удвоенной точности
Преобразует целое число в текст
Преобразует число одинарной точности в текст
Преобразует число ■удвоенной точности в текст
Примечания
Размер текста для каждого типа чисел определяется реализацией.ПРИЛОЖЕНИЕ 1 Справочное
МЕТОД СИНТАКСИЧЕСКОЙ СПЕЦИФИКАЦИИ
Синтаксис; будучи набором синтаксических правил, определяет синтаксичео кие объекты различных типов, такие как программа или выражение, и определяет, какие строки символов являются объектами этих типов.
В синтаксисе прописные буквы, цифры и слова, написанные строчными буквами (возможно, объединенные дефисом), используются как ’’метаимена”, т,е. как имена синтаксических объектов. Подавляющее большинство этих метаимен определяется при помощи грамматических правил в терминах других метаимен. Длч того, чтобы такой ■ процесс был конечным, некоторые метаимена определены как базовые, или "терминальные”. Грамматические правила для терминальных метаимен не включены в синтаксис. Все терминальные метаимена, за исключением конструкций, определяемых реализацией, введены в начале и описаны в п. 3.1. Следует отметить, в частности, что все прописные буквы и цифры являются терминальными метаименами, которые определяют их самих.
Кроме того, конструкции, зависящие от реализации, не являются уникаль ными синтаксическими объектами, но каждое использование такой конструкции определяется для каждой реализации заранее заданным образом. В некоторых случаях в примечаниях соответствующих подразделов приводятся указания по описанию таких объектов.
Метод синтаксической спецификации использует некоторые специальные СИХ/; волы в качестве синтаксических операторов:
1)’ = — читается, ”по определению есть”;
* — указывает, что объект, стоящий перед ней, может повторяться произвольное число раз (в том числе и ни разу);
? - указывает, что объект, стоящий перед ним, может присутствовать или отсутствовать;
) I - указывает, что определение справедливо для каждого из объектов, разделенных данным символом;
( ) - указывают на объединение группы объектов в один для символов, описанных в (1) —(3);
пробел — используется в синтаксисе для отделения одного объекта от другого.
Если в описании используется несколько синтаксических операторов, то ? и * имеют более высокий приоритет, чем I. •
Пример
В п. 3:9 видим следующее: оператор-вызова-подпрограммы = GO пробел * SUB номер-строки.
Это означает, что оператор-вызова-подпрограммы состоит из букв G и О, за которыми следует пробел, *, букв S, U и В номера-стфоки. Количество пробелов в соответствие с (1) неограничено.
Что такое номер-строки? В п. 3.2 читаем:
номер строки ' цифра цифра? цифра? цифра?
Это означает, что номер-строки является цифрой, за которой могут следовать еще от одной до трех цифр.
Что такое цифра?В п. 3.1 читаем:
цифра .= О|Ц2|3|4бЧ6|7|8|9
Это означает, что цифрой может быть любая из перечисленных арабских цифр.
Ввиду того, что цифры являются терминальными метаименами, т.е. не появляются ни в каком определении слева, разбор синтаксиса закончен.
ПРИЛОЖЕНИЕ 2 Обязательное
ТЕРМИНЫ И ИХ ПОЯСНЕНИЯ
Конец-строки - символ или индикатор, указывающий на завершение строки. Наиболее часто в качестве конца-строки используются символы ’’возврат каре , или ’’возврат каретки” и ’’перевод строки”.
Ошибка - неправильный синтаксис в строке, в результате чего эта строка не может являться частью программы.
Исключение - ситуация, возникающая при выполнении программы, если неверны исходные данные или неверны вычисления или результаты вне диапазонов, предоставляемых ресурсами системы. Если при этом выполнение программы прекращается, то говорят, что данная ситуация привела к неустранимой ошибке.
Идентификатор - набор символов, используемых для идентификации переменной или функции.
Ключевое слово - слова, используемые для идентификации операторов, компонентов операторов или других элементов языка программирования.
Строка - последовательность символов, заканчивающаяся концом-строки.
Машинный минимум - минимальная положительная величина (отличная от нуля), которая может быть обрабтана реализацией Бейсика.
Машинный максимум — положительное или отрицательное значение максимального числа, которое может быть обрабтано данной реализацией Бейсика.
Переполнение — по отношению к арифметическим операциям возникновение условия, когда попытка выполнить действие приводит к результату, превышающему по абсолютной величине машинный максимум.
По отношению к текстовым операциям возникновение условия, когда попытка выполнить действие приводит к результату, содержащему большее количество символов, чем это допускается языковым процессором.
Зона вывода - непрерывная последовательность знакомест в строке вывода, которая может содержать элемент вывода.
Округление - процесс получения числа меньшей точности" из числа большей точности с учетом значения опущенной части числа.
Усечение - процесс получения числа меньшей точности путем Отбрасывания ненужных младших цифр числа большей точности.
Потеря точности — возникновение ситуации, когда в результате попытки вьь полнения операций вырабатывается результат, отличный от нуля, но меньший по абсолютной величине машинного минимума.
Графической курсор - в графическом режиме позиция на экране, в которую в данный момент должен осуществляться вывод графической информации.
ПРИЛОЖЕНИЕ 3 Справочное
ТАБЛИЦА ВЫПОЛНЕНИЯ ЛОГИЧЕСКИХ ОПЕРАЦИЙ
X |
Y |
XAND Y |
XOR Y |
XXOR Y |
X EQU Y |
XIMPY |
0 |
0 |
0 |
0 |
0 |
I |
I |
0 |
I |
0 |
I |
I |
0 |
I |
I |
0 |
0 |
I |
I |
0 |
0 |
I |
I |
I |
I |
0 |
I |
I |
Операция NOT выполняется по правилам: если X = I, то N ОТ X = 0 и, если X = 0, то N ОТ X = I.
ИНФОРМАЦИОННЫЕ ДАННЫЕ
. РАЗРАБОТАН И ВНЕСЕН Академией наук СССР
С.А. Христочевский (руководитель темы), канд. физ .-мат. наук;
М.Л. Гуткин; НА. Кучу pa; В.А. Ермолов; А.Б.Либеров; АЛ. Александров
УТВЕРЖДЕН И ВВЕДЕН В ДЕЙСТВИЕ Постановлением Государственного комитета СССР по стандартам от 26.07.88 № 2760
Срок первой проверки - 1992 г.; периодичность проверки — 3 года.
Стандарт полностью включает международный стандарт ИСО 6373-84 (Е)
ВВЕДЕН ВПЕРВЫЕ
ССЫЛОЧНЫЕ НОРМАТИВНО-ТЕХНИЧЕСКИЕ ДОКУМЕНТЫ
Обозначение НТД, на который дана Номео пункта
ссылка и 12СОДЕРЖАНИЕ
Основные положения 1
Структура описания языка 3
Описание ядра 4
Символы и тексты . 4
Программы 5
Константы •
Переменные 8
Выражения Ю
Встроенные-функции 12
Функции, определенные пользователем 13
Оператор-присваивания 14
Операторы управления ! 15
Операторы цикла 12
Оператор-вывода 19
Оператор-ввода 22
Хранение и рассылка данных в программе 24
Объявления массивов 26
Оператор-примечаний . 27
Запуск-генератора-псевдослучайных-чисел 27
Модуль расширения основных средств 28
Уровень 1 28
Символы и тексты 28
Программы - . . . 28
Константы . 29
Переменные 30
Выражения 31
Встроенные функции 33
Функции, определенные пользователем 35
'Оператор-присваивания 35
Операторы управления 36
Оператор-форматированного-вывода . ... . 37
Оператор-вывода-на-печатающее-устройство . 38
Оператор-ввода 39
Оператор-ввода-текста 39
Объявление массивов 39
. Задание типов переменных _■ 40
Оператор-замены-текста 40
Оператор-записи-в-оперативную-память 41
Встроенные средства отладки 41
Уровень 2 43
Программы 43
Константы 43
Выражения 43
Операторы управления 43
Цикл-пока 44
Модуль графических средств 45
Уровень 1 . 45
Выбор режима работы 45
Оператор-установки-цвета 46
Оператор-установки-цвета-точки 47
Изображение отрезков и прямоугольников 47
Изображение окружностей, дуг и эллипсов 48
Окраска области сплошным цветом 49
Функция-определения-цвета-точки 50
Уровень 2 50
Оператор-графических-операций 50
Модуль интерпретатора 52
Команда-инициализации . 52
Вывод текста программы 52
Команда-запу ска-программы 53
Удаление строк программы 54
Возобновление выполнения программы 54
Загрузка программы с магнитного диска 54
Запись программы на магнитный диск 55
Вывод каталога диска 55
Управление накопителем на магнитной ленте 56
Загрузка программы с магнитной ленты 56
Запись программы на магнитную ленту 56
Модуль работы с магнитными лентами 57
Оператор-открытия-файла 57
Запись данных в файл 57
Оператор-чтения-с-магнитной-ленты 58
Функция-признака-конца-файла 58
Оператор-закрытия-файла 59
Модуль работы с магнитными дисками 59
Уровень 1 59
Оператор-открытия-файла 59
Оператор-закрытия-файла 60
Операторы записи-данных-в-файл и формагированной-записи- в-файл 60
Операторы чтения-о-магнитного-диска и чтения-текста-с-маг- нитного-диска 61
Функция-признака-конца-файла 61
Уровень 2 62
Оператор-открытия-файла 62
Выделение области для переменных 62