OPEN режим, # номер-файла, имя-файла, длина-текста

  1. Синтаксис

  1. оператор-открытия-файла = OPEN кавычки режим кавычки запя­тая номер номер-файла запятая имя-файла запятая длина-текста

  2. режим = R

  3. длина-текста = целое

8.2 Л.3. Примеры

1) OPEN ”R”,#I, ’’FILE”, 32

  1. Семан ти ка

При выполнении оператора OPEN для заданного файла назначается буфер ввода/вывода.

Длина-текста - целое выражение, задающее длину текста для файла с произвольным методом доступа. Максимально'возможная длина-текста, а также длина-текста по умолчанию (т.е. длина, принимается в том слу­чае, когда она явно не задана в операторе) определяется реализацией.

  1. Примечания

При работе с файлом с произвольным методом доступа, один раз от­крыв файл, в него можно записывать и из него можно считывать инфор мацию.

Информация записывается текстами фиксированной длины, указан ной в операторе.

  1. В ы д е л е н и е области для переменных

    1. Общее описание

Оператор-выделения-области выделяет в буфере файла с последова­тельным доступом области для переменных.

Синтаксическая форма оператора имеет вид:

FIELD номер-файла, размер-области AS текстовая-переменная...

  1. Син таксис

  1. оператор-выделения-области = FIELD номер-файла запятая раз- мер-поля AS текстовая-переменная (запятая размер-поля AS тексто­вая-переменная) *

  2. размер-поля = целое

  1. Примеры

  1. FIELD # 1,20 as N $ '

  1. Семантика

Размер поля - это количество байтов, выделяемое для данной переменной. Общее число байтов, выделяемое оператором-выделения-

области для всех переменных, не должно превосходить длину записи, заданную при открытии файла.

Этот оператор должен быть выполнен до операторов чтения-из-фай- ла и записи-в-файл.

  1. Примечания

Идентификаторы текстовых-переменных, указанные в операторе- выделения-области, нельзя использовать в левой части оператора-прис­ваивания, а также в качестве переменных в операторе-ввода.

  1. Оператор-чтения-текста

    1. Общее описание

Этот оператор читает текст из файла с произвольным доступом в буфер. Синтаксическая форма оператора имеет вид:

GET номер-файла, номер-текста

  1. Синтаксис

  1. оператор-чтения-текста = GET номер-файла (запятая номер-тек­ста) ?

  2. номер-текста = арифметическое-выражение

  1. Примеры

  1. GET #2,371

  1. Семантика

Этот оператор читает в буфер текст из файла с данным номером.

Если номер-текста опущен, то читается текст со следующим номе­ром. Наибольший возможный номер-текста определяется реализацией.

  1. Оператор-записи-текста

    1. Общее описание

Этот оператор записывает в файл текст из буфера. Синтаксическая форма оператора имеет вид:

PUT номер-файла, номер-текста

  1. Синтаксис

Оператор-записи-текста = PUT номер-файла (номер-текста)?

  1. А.3. Примеры

PUT #4,20

  1. Семантика

Этот оператор помещает текст из буфера в файл. Если номер текста опущен, то текст записывается со следующим по порядку номером (пос­ле предыдущего PUT). Максимальный номер текста определяется реали­зацией.

  1. Пер есы л к а данных в буфер

    1. Общее описание

Операторы-пересылки-данных-в-буфер используются для пересыл­ки данных в буфер ф^йла с произвольным методом доступа (для под­готовки к выполнению оператора-записи-текста). Синтаксическая форма этих операторов следующая:

LSET текстовая-переменная-текстовое-выражение

RSET текстовая-переменная-текстовое-выражение

  1. Синтаксис

  1. пересылка-данных-в-буфере-с-выравниванием-влево = LSET тек- стовая-переменная знак-равенства текстовое-выражение

  2. пересылка-данных-в-буфере-с-выравниванием-вправо = RSET тек- стовая-переменная знак-равенства текстовое-выражение

  1. Примеры

  1. LSET V£= NN&+ ’’LIST”

  1. Семантика

Если текстовое выражение требует меньше байтов, чем было отведе­но для текстовой переменной в операторе-выделения-области, то LSET пересылает выражение в левую часть буфера текста, заполняя правую пробелами, a RSET — в правую часть буфера текста, заполняя левую про­белами. Если же длина текста превышает длину буфера, то самые правые символы теряются. Числа перед пересылкой должны быть преобразо­ваны в текст.

  1. Примечания

Если при выполнении операторов пересылки буфер не был пуст (ранее не была произведена запись в файл), то старое содержимое бу­фера теряется.

Идентификаторы текстовых переменных в операторах пересылки должны совпадать с идентификаторами текстовых переменных в опера­торе-выделения-области.

8.2:6. Функции-преобразования-данных.

8.2.6.1. Общее описание

Так как в файлы с произвольным методом доступа можно запи­сывать только текстовую информацию, то для преобразования чисел в тексты и наоборот в реализации должны существовать специальные функции. «

8;2.'6.2. Синтаксис

Функции-преобразования = MKIДЇ MKS ДI MKD Д ICVI|CVS [CVD|

  1. Семан ти ка

Значения функций-преобразования приведены в табл. 5.


П

Таблица 5


Функция

l.T'-LH.


Значение функции '


CVI (X$) cvs (xC) CVD (хД) MKlQ(N%) MKSg(X) MKDg (Y #)

реобразует текст в целое число

Преобразует текст в число одинарной точности

Преобразует текст в число удвоенной точности

Преобразует целое число в текст

Преобразует число одинарной точности в текст

Преобразует число ■удвоенной точности в текст

  1. Примечания

Размер текста для каждого типа чисел определяется реализацией.ПРИЛОЖЕНИЕ 1 Справочное

МЕТОД СИНТАКСИЧЕСКОЙ СПЕЦИФИКАЦИИ

Синтаксис; будучи набором синтаксических правил, определяет синтаксичео кие объекты различных типов, такие как программа или выражение, и определяет, какие строки символов являются объектами этих типов.

В синтаксисе прописные буквы, цифры и слова, написанные строчными бук­вами (возможно, объединенные дефисом), используются как ’’метаимена”, т,е. как имена синтаксических объектов. Подавляющее большинство этих метаимен опре­деляется при помощи грамматических правил в терминах других метаимен. Длч того, чтобы такой ■ процесс был конечным, некоторые метаимена определены как базовые, или "терминальные”. Грамматические правила для терминальных метаимен не включены в синтаксис. Все терминальные метаимена, за исключением конструкций, определяемых реализацией, введены в начале и описаны в п. 3.1. Следует отметить, в частности, что все прописные буквы и цифры являются тер­минальными метаименами, которые определяют их самих.

Кроме того, конструкции, зависящие от реализации, не являются уникаль ными синтаксическими объектами, но каждое использование такой конструкции определяется для каждой реализации заранее заданным образом. В некоторых слу­чаях в примечаниях соответствующих подразделов приводятся указания по описа­нию таких объектов.

Метод синтаксической спецификации использует некоторые специальные СИХ/; волы в качестве синтаксических операторов:

1)’ = — читается, ”по определению есть”;

  1. * — указывает, что объект, стоящий перед ней, может повторяться произ­вольное число раз (в том числе и ни разу);

  2. ? - указывает, что объект, стоящий перед ним, может присутствовать или отсутствовать;

  3. ) I - указывает, что определение справедливо для каждого из объектов, разделенных данным символом;

  4. ( ) - указывают на объединение группы объектов в один для символов, описанных в (1) —(3);

  5. пробел — используется в синтаксисе для отделения одного объекта от дру­гого.

Если в описании используется несколько синтаксических операторов, то ? и * имеют более высокий приоритет, чем 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.

ИНФОРМАЦИОННЫЕ ДАННЫЕ

  1. . РАЗРАБОТАН И ВНЕСЕН Академией наук СССР

С.А. Христочевский (руководитель темы), канд. физ .-мат. наук;

М.Л. Гуткин; НА. Кучу pa; В.А. Ермолов; А.Б.Либеров; АЛ. Алек­сандров

  1. УТВЕРЖДЕН И ВВЕДЕН В ДЕЙСТВИЕ Постановлением Государст­венного комитета СССР по стандартам от 26.07.88 № 2760

  2. Срок первой проверки - 1992 г.; периодичность проверки — 3 года.

  3. Стандарт полностью включает международный стандарт ИСО 6373-84 (Е)

  4. ВВЕДЕН ВПЕРВЫЕ

  5. ССЫЛОЧНЫЕ НОРМАТИВНО-ТЕХНИЧЕСКИЕ ДОКУМЕНТЫ

Обозначение НТД, на который дана Номео пункта

ссылка и 12СОДЕРЖАНИЕ

  1. Основные положения 1

  2. Структура описания языка 3

  3. Описание ядра 4

    1. Символы и тексты . 4

    2. Программы 5

    3. Константы •

    4. Переменные 8

    5. Выражения Ю

    6. Встроенные-функции 12

    7. Функции, определенные пользователем 13

    8. Оператор-присваивания 14

    9. Операторы управления ! 15

    10. Операторы цикла 12

    11. Оператор-вывода 19

    12. Оператор-ввода 22

    13. Хранение и рассылка данных в программе 24

    14. Объявления массивов 26

    15. Оператор-примечаний . 27

    16. Запуск-генератора-псевдослучайных-чисел 27

  4. Модуль расширения основных средств 28

    1. Уровень 1 28

      1. Символы и тексты 28

      2. Программы - . . . 28

      3. Константы . 29

      4. Переменные 30

      5. Выражения 31

      6. Встроенные функции 33

      7. Функции, определенные пользователем 35

      8. 'Оператор-присваивания 35

      9. Операторы управления 36

      10. Оператор-форматированного-вывода . ... . 37

      11. Оператор-вывода-на-печатающее-устройство . 38

      12. Оператор-ввода 39

      13. Оператор-ввода-текста 39

      14. Объявление массивов 39

      15. . Задание типов переменных _■ 40

      16. Оператор-замены-текста 40

      17. Оператор-записи-в-оперативную-память 41

      18. Встроенные средства отладки 41

    2. Уровень 2 43

      1. Программы 43

      2. Константы 43

      3. Выражения 43

      4. Операторы управления 43

      5. Цикл-пока 44

  5. Модуль графических средств 45

    1. Уровень 1 . 45

      1. Выбор режима работы 45

      2. Оператор-установки-цвета 46

      3. Оператор-установки-цвета-точки 47

      4. Изображение отрезков и прямоугольников 47

      5. Изображение окружностей, дуг и эллипсов 48

      6. Окраска области сплошным цветом 49

      7. Функция-определения-цвета-точки 50

    2. Уровень 2 50

      1. Оператор-графических-операций 50

  6. Модуль интерпретатора 52

    1. Команда-инициализации . 52

    2. Вывод текста программы 52

    3. Команда-запу ска-программы 53

    4. Удаление строк программы 54

    5. Возобновление выполнения программы 54

    6. Загрузка программы с магнитного диска 54

    7. Запись программы на магнитный диск 55

    8. Вывод каталога диска 55

    9. Управление накопителем на магнитной ленте 56

    10. Загрузка программы с магнитной ленты 56

    11. Запись программы на магнитную ленту 56

  7. Модуль работы с магнитными лентами 57

    1. Оператор-открытия-файла 57

    2. Запись данных в файл 57

    3. Оператор-чтения-с-магнитной-ленты 58

    4. Функция-признака-конца-файла 58

    5. Оператор-закрытия-файла 59

  8. Модуль работы с магнитными дисками 59

    1. Уровень 1 59

      1. Оператор-открытия-файла 59

      2. Оператор-закрытия-файла 60

      3. Операторы записи-данных-в-файл и формагированной-записи- в-файл 60

      4. Операторы чтения-о-магнитного-диска и чтения-текста-с-маг- нитного-диска 61

      5. Функция-признака-конца-файла 61

    2. Уровень 2 62

      1. Оператор-открытия-файла 62

      2. Выделение области для переменных 62