Товары в корзине: 0 шт Оформить заказ
Стр. 1
 

73 страницы

578.00 ₽

Купить официальный бумажный документ с голограммой и синими печатями. подробнее

Официально распространяем нормативную документацию с 1999 года. Пробиваем чеки, платим налоги, принимаем к оплате все законные формы платежей без дополнительных процентов. Наши клиенты защищены Законом. ООО "ЦНТИ Нормоконтроль".

Наши цены ниже, чем в других местах, потому что мы работаем напрямую с поставщиками документов.

Способы доставки

  • Срочная курьерская доставка (1-3 дня)
  • Курьерская доставка (7 дней)
  • Самовывоз из московского офиса
  • Почта РФ

Устанавливает: 1) синтаксис программ, написанных на языке Бейсик; 2) форматы и точность данных, а также диапазон представления чисел для данных, поступающих на вход процессора обработки данных, управляемого программой, написанной на языке Бейсик; 3) форматы и точность данных, а также диапазон представления чисел, получаемых в результате выполнения процессором обработки данных программы, написанной на языке Бейсик; 4) семантические правила для интерпретации смысла программ, написанных на языке Бейсик; 5) ошибки и исключительные ситуации, которые должны быть обнаружены, а также способ, при помощи которого эти ошибки и исключительные ситуации должны быть обработаны.

Настоящий стандарт не устанавливает: 1) механизм, при помощи которого программы, написанные на языке Бейсик, преобразуются для использования процессором обработки данных; 2) средства, при помощи которых выполняются программы, написанные на языке Бейсик; 3) состав и форму документации на реализации языке Бейсик и программы, написанные на языке Бейсик

Показать даты введения Admin

Страница 1

ГОСУДАРСТВЕННЫЙ СТАНДАРТ СОЮЗА ССР

ЯЗЫК ПРОГРАММИРОВАНИЯ БЕЙСИК

ГОСТ 27787-88 Издание официальное

16 p. 40 к. БЗ &—91


КОМИТЕТ СТАНДАРТИЗАЦИИ И МЕТРОЛОГИИ СССР Москва

Страница 2

ГОСУДАРСТВЕННЫЙ СТАНДАРТ СОЮЗА ССР

ЯЗЫК ПРОГРАММИРОВАНИЯ БЕЙСИК ГОСТ 27787-88

Издание официальное

МОСКВА 1992

Страница 3

УДК 6Я 1.3.06:006.15 4    Груши    (185

ГОСУДАРСТВЕННЫЙ СТАНДАРТ СОЮЗА ССР

ЯЗЫК ПРОГРАММИРОВАНИЯ БЕЙСИК

ГОСТ 27787-88

Programming language Ваис

ОКСГУ 4002

Срок деистам с 01.07.89 до 01.07.94

Нестоящий стандарт устанавливает:

1)    синтаксис программ, написанных на языке Бейсик;

2)    форматы и точность данных, а также диапазон представления чисел для данных, поступающих на вход процессора обработки данных, управляемого программой, написанной ка языке Бейсик;

3)    форматы и точности данных, а также диапазон представления чиоел, получаемых в результате выполнения процессором обработки данных программы, написанной на языке Бейсик;

4)    семантические правила для интерпретации смысла программ, написанных на языке Ьейекк;

5)    ошибки и исключительные ситуации, которые должны быть обнаружены, а также способ, при помощи которого эти ошибки н исключи-тельные ситуации должны быть обработаны.

Настоящий стандарт не устанавливает:

1)    механизм, при помощи которого программы, написанные ка языке Бейсик, преобразуются для использования процессором обработки данных;

2)    средства, при помоши которых выполняются программы, написанные на языке Бейсик;

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

1. ОСНОВНЫЕ ПОЛОЖЕНИЯ

1.1. Для обееяечения переносимости программ, написанных на языке Бейсик, стандарт строится по концепции ’’Ядро плюс модули".

Ядро содержит описание операторов и функций, обязательных к реализации ка всех ЭВМ, имеющих в составе программного обеспече-ния язык Бейсик, независимо от их архитектуры н комплектации.

Из/ими* официально*

Ф Издательство стандартов, 1988 ® Издательство стандартов, 1992. Настоящий стандарт не может быть полностью кгтм частично юспроииеден, тиражирован к распространен без разрешения Госстандарт» СССР

Страница 4

ГОСТ 27787-88 С. 2

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

Каждый модуль содержит один или два уровня. Во всех случаях уровни с меньшим номером (нижние) являются собственными подмножествами уровней с большим номером (верхних) внутри того же модуля.

1.2.    В стандарте определены следующие способы конструирования допустимых подмножеств языка Бейсик:

1)    полный язык Бейсик, состоящий из ядра и высших уровней модулей;

2)    подмножества языка Бейсик - любые комбинации ядра и уровней модулей, отличные от полного языка Бейсик;

3)    минимальное подмножество должно включать ядро языка Бейсик.

1.3.    Каждая реализация должна устанавливать обеспечиваемое ею подмножество. Для выбранного подмножества реализация должна воспринимать все элементы языка.

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

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

1.4.    Программа удовлетворяет стандарту только, если:

1)    каждый оператор, содержащийся в программе, является синтаксически правильным образом, оператора, специфицированного настоящим стандартом;

2)    каждый оператор имеет только то значение, которое приведено в настоящем стандарте;

3)    общая совокупность операторов образует пример Допустимый программы, имеющей только то значение, которое приведено в настоящем стандарте.

1.5.    Реализация соответствует настоящему стандарту только, если:

1)    она допускает и обрабатывает программы, соответствующие настоящему стандарту;

2)    она интерпретирует ошибки и исключительные ситуации в соответствии со спецификациями настоящего стандарта;

3)    .ее интерпретация семантики каждого оператора, входящего в состав программы, удовлетворяющей стандарту, соответствует спецификации из настоящего стандарта;

4)    ее интерпретация семантики, удовлетворяющей стандарту прог- , раммы в целом, соответствует спецификации из настоящего стандарта;

Страница 5

С 3 ГОСТ 27787-88

5)    она допускает ввод, обработку и вывод чисел с точностью не меньшей и в диапазоне не меньшим, чем указано в настоящем стандарте;

6)    она сопровождается руководством, в котором однозначно определены действия, предпринимаемые в ответ на обращение к средствам, которые в настоящем стандарте назнваны "неопределенными" или "зависящими от реализации”.

1.6.    Ряд элементов языка рассчитан на определенные устройства оборудования, функционирование которых должна-обеспечить реализация. Реализация оговаривает необходимую минимальную конфигурацию оборудования и специфические компоненты оборудования, функционирование которых она обеспечивает.

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

1.7.    Реализации, удовлетворяющие настоящему стандарту, могут допускать выполнение программ, написанных ка расширенном языке, не требуя вывода сообщений о всех конструкциях, не соответствующих настоящему стандарту. Однако каждый оператор или другой элемент программы, описание которого приведено в реализованном подмножестве настоящего стандарта, не удовлетворяющий описанным здесь синтаксическим правилам, должен вызывать сообщение об ошибке.

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

1.8.    Некоторые исключительные ситуации (где это указано) могут обрабатываться в соответствии с процедурами, описанными в настоящем стандарте; если таковая процедура отсутствует илй не может быть реализована из-за аппаратных ограничений или ограничений, налагаемых операционной средой, то соответствующая исключительная ситуация должна вызывать завершение программы.

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

2. СТРУКТУРА ОПИСАНИЯ ЯЗЫКА

Описание каждой конструкции языка построено следующим образом.

1)    Общее описание. Содержит краткое описание средств Бейсика,

которые должны обрабатываться, и указывает общую синтаксическую форму для этих средств. ”    •

2)    Синтаксис. Синтаксис описан при помощи обозначения в виде формы Бэкуса-Наура, детали которой приведены в приложении 1. Несколько слов, составляющих в синтаксисе лексическую единицу, соединены знаком дефис (-).

Страница 6

ГОСТ 27787-88 С. 4

3)    Примеры. Краткий список правильных примеров, получаемых при помоши некоторых грамматических правил, представленных в синтаксисе. Нумерация примеров соответствует нумерации грамматических правил и не*будет последовательной, если примеры иллюстрируют не все правила.

4)    Семантика. Семантические правила служат двум целям. Во-первых, они исключают некоторые конструкции, которые допустимы синтаксисом, но по смыслу не удовлетворяют описанию. Во-вторых, они придают смысл упоминаемым конструкциям.

5)    Исключения. Описываются исключения, возникающие в том случае, когда система, реализующая транслятор с языка Бейсик, обнаруживает, что программа не может быть выполнена или не исполняется в соответствии с настоящим описанием.

6)    Примечания. Здесь содержатся замечания по некоторым особенностям самого описания и требования по реализации языкового Бейсик-процессора для конкретной операционной поддержки.

В приложении 2 приведены пояснения основных терминов, используемых в настоящем стандарте.

3. ОПИСАНИЕ ЯДРА

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

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

Набор символов языка Бейсик является подмножеством символов, приведенных в ГОСТ 27465-87. Текст - это последовательность символов, которая используется в программе на языке Бейсик в качестве примечаний (см. п. 3.15), текстовых констант (см. п. 3.3.) или данных (см. п. 3.13.).

3.1.2 .Синтаксис

1)    пропнсиая-буква-латинская « A|B|C|D|E|F|G|H|I|J|K|L1M| N|0|P|Q|R|S|T|U|V|W|X|Y|Z

2)    прописная-буква-русская = А|Б|В|Г|Д|Е|Е|Ж13|И[Й|К|Л|М| Н]0|П|Р|С|Т|У|Ф|Х!Ц|Ч|Ш|Ш1Ъ|Ы|ЫЭ|Ю|Я

3)    цифра = 0| 112|3|4|5|6|7|8|9

4)    символ-текста = кавычки символ*текста-»-кавычках

5)    символ-текста-в кавычках ■ восклицательный знак|номер| знак-денежной-единицы I процент | коммерческое-И | апостроф! круглая-скобка-левая| круглая-скобка-правая| звездочка| запятая | дро0ная-черта I обрат-ная-дробиая-черта|двоегочие| точка-с-эапятой-с-эапятой| меньше | равно | больше | вопросительный-знак | подчеркивание | стрелка-вверх | символ- тек-ста-не-в-кавычках (графическое изображение этих символов по ГОСТ 27465-87)

6)    символ-текста-не-в-кавычках = пробел |простой-символ-текста'

7)    простой-символ-текста » знак-плюсIзнак-минус|точка!цифра| прописная-буква-лагинская J прописная-буква-русская

2-1245

Страница 7

С 5 ГОСТ 27787-88

8)    примечания = символ-текста ♦

9)    гексг-вкавычках = кавычки символ-текста-в-кавычках. ♦ кавычки

10)    текст-нс-в-кавычках = простой-символ-текста|простой-символ-текста символ-текст-не-в-кавкчках ♦ простой-символ-текста

3.1-3- Примеры

8)    В ’’ПРИМЕЧАНИЯХ” МОЖНО ИСПОЛЬЗОВАТЬ ЛЮБОЙ СИМВОЛ (!.*? = и тл.)

9)    ”В ТЕКСТЕ В КАВЫЧКАХ МОЖНО ИСПОЛЬЗОВАТЬ ЗАПЯТЫЕ, ПРОБЕЛЫ'

10)    ALFA+5

3.1.4.    Семантика

Буквы могут бьпь прописными буквами латинского или русского алфавита.

Все остальные символы-текста - это любые символы.

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

Различные типы символов и текста, описанные в синтаксисе, соответствуют различным видам использования текста в Бейсик-программе. Примечания могут использоваться в операторах примечаний (см. п. 3.1S.). Тскст-в-кавычках может использоваться в качестве текстовых-констант (см. п. 3.3.). Текст-бсз-кавычск может использоваться наряду с тсксгом-в-кавычках в качестве элементов данных (см. п. 3.13); текст-без-кавы-чек не может начинаться или заканчиваться пробелами.

3.2. Программы

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

Программа на языке Бейсик представляет собой последовательность строк, причем последняя строка программы - это строка, содержащая оператор-конца. Каждая строка программы должна содержать служебное слово. Каждая строка должна иметь уникальный номер-строки, который служит меткой оператора, расположенного в этой строке.

3.2.2.    Синтаксис

1)    программа * блок • последняя-сгрока

2)    блок « строка-с-оператором|цикл-с-шагом

3)    строка-с-оператором в номер-строки оператора конец-строки

4)    номер-строки *» цифра цифра? цифра? цифра?

5)    конец-строки - определяется реализацией

' 6) последияя-строка я номер-строки оператор-конца-конец-строки

7)    оператор-конца = END

8)    оператор = оператор-хранения-данных | операторюпределения-фун-кции | оперзтор-опнсания-мзссива J оператор-вызова-ноддрограммы | оператор-безусловного-лерехода J оператор-условного перехода J опера-тор-ввода | оператор-присваивания | оператор-вычисляемого-перехода | оператор-вывода I одератор-запуска-гснератора-псевдослучайных-чисел I операюр-рассылки-дзнных | операторч1римечаний | оператор-восстанов-лення-указагеля-рассылки | опсратор-возарата-из-подпрограммы | олера-тор-останова | оператор-обьявлеиия-нижней-границы

Страница 8

ГОСТ 2778’-88 С. 6

9) строка = стро<я-^ оператором последняя сп* >ч

Синтаксические описаиия операторов и одкла-с-шагом приведены ниже в соответствующих подразделах.

3.2.3.    Примеры

6) 999 END

3.2.4.    Семантика

Программа, написанная на языке Бейсик, состоит из последовательности строк, расположенных в порядке возрастания номеров-строк. Строка с максимальным номером должна быть последией-сгрокой. Строки программы выполняются поочередно, начиная с первой по порядку, до тех пор, пока:

1)    не будет задано некоторое действие, определяемое оператором-управления или блоком-цикпа;

2)    не произойдет неустранимая ошибка;

3)    не выполнится оператор-конца.

Относительно пробелов существует специальное соглашение. За исключением случаев, перечисленных ниже, пробелы могут встречаться в любом мосте программы, не влияя на ее выполнение.

Проблемы недопустимы:

1)    в начале строки;

2)    внутри служебного слова;

3)    внутри слова TAB в вызове-табуляции;

4)    внутри числовой-константы;

5)    внутри номера-строки;

6)    внутри функции или внутри идентификатора;

7)    внутри операций отношений, состоящих из нескольких символов.

Пробелы в тексте-в-кавычках и в текстс-бсз-кавычек являются значащими.

До и после каждого служебного слова должен стоять хотя бы один пробел (после служебного слова вместо пробела .может стоять конец-строки).

Каждая строка должна начинаться с номера-строки. Целые числа, представляющие номера-строк, должны быть больше нуля; ведущие нули в числе, представляющем номер-строки, игнорируются. Операторы выполняются поочередно в соответствии с возрастанием номеров-строк.

Определение конца-строки зависит от реализации. В качестве конца-строки может использовался символ возврата каретки или символ возврата капстки, после которого идет символ перевода строки, или конец физической записи.

Строка программы, соответствующей стандарту, может содержать до 72 символов. Признак конца-строки не входит в это число,символов.

Оператор-конца не только указывает на физический конец тела программы, но и должен завершать выполнение программы.

г*

Страница 9

С. 7 ГОСТ 27787-ЯЯ

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

Средства редактирования должны допускать ввод строк программы в любом порядке, а также допускать ввод строк с одинаковыми номерами и строк, содержащих только номер строки. Эти средства должны выполнять сортировку строк программы в надлежащем порядке; в случае дублирования номеров строк должна сохраняться строка, введенная последней. Допускаются реализации, удаляющие строки, содержащие только номер-строки.

3.3. Константы

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

Константы могут быть числовыми и текстовыми.

Числовая константа •• это число в десятичной системе счисления. Существуют четыре основных формата представления числовых констант:

1)    представление с неявно заданной sd ... d точкой

2)    представление с явно заданной точ- sd ... drd ... d кой без задания порядка

3)    представление с явно заданной точ- sd ... drd ... dEsd ... d кой с заданным порядком

4)    представление с неявно заданной sd ... dEsd ... d точкой с заданным порядком, где d - десятичная цифра; г - знак-точка; s - знак-

плюс или знак-минус; Е - буква Е, показатель порядка.

Текстовая константа - это последовательность символов, заключенная в кавычках.

3.3.2.    Синтаксис

1)    числовая-константа = знак"? число

2)    знак = плюс | минус

3)    число - мантисса порядок?

4)    мантисса * (целое точка ?) I (целое? дробная-часгъ)

5)    целое = цифра цифра »

6)    дробная-чаегь «= точка целое

7)    порядок = F. знак? целое

8)    текстовая-константа = текст-в-кавычках

3.3.3.    Примеры

1) -21

1И0

5Е-1

.4F.+I

500

I

.255

Страница 10

ГОСТ 27787-88 С. 8

8) ”XYZ"

"X- ЗВ2"

”IEIO’’

3.3.4    Семантика

Значением числовой константы является число, представленное этой константой. Буква Е указывает ’’степень числа 10”; при отсутствии знака после Е подразумевается плюс. Пробелы в числовых константах запрещены.

■ В программе допускаются числовые константы с любым количеством цифр, хотя в конкретных реализациях значения числовых констант округляются до точности, определенной реализацией, но не менее шести значащих десятичных цифр.

Порядок числовой константы также может содержать произвольное число цифр. Если величина ненулевой числовой константы выходит за пределы диапазона,'определенного реализацией, фиксирууется исключительная ситуация. Минимальный диапазон для числовых констант должен быть в пределах от 1Е-38 до IE+38. Величины констант меньше машинной точности должны заменяться нулем. Если величина констант больше машинного максимуму, то должно диагностироваться переполнение.

Значением текстовой константы является вся последовательность символов между кавычками, включая пробелы. Длина текстовой константы, число символов между кавычками, ограничена только длиной строки.

3.3.5    .Исключения

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

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

Возможно переполнение текстовой переменной, если программа пытается присвоить этой переменкой текстовую константу длиной, пре-выиаюшей максимальную длину текста, определяемую реализацией (см. также п. 3.4.4.).

Реализация должна выдавать сообщение о потере точности в константах, значения которых меньше машинного минимума; вычисления после выдачи сообщения должны продолжаться.

3.4. Переменные

3,4.1. Общее описание

Переменные в Вейсике связаны с числовыми или с текстовыми значениями. Числовые переменные могут быть либо простыми переменными, либо ссылками на элементы одно- или двумерного массива, такие ссыпки называются индексированными переменными.

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

Страница 11

С- 9 ГОСТ 27787-88

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

Для обозначения гскстовой-псременной служит буква, за которой следует знак денежной единицы.

Язык Бейсик не требует явнмл описаний типов переменных. Знак денежной единицы указывает на текстовую переменную, а индекс отличает индексированную переменную от проетой-чнеловой переменной.

3.4.2.    Синтаксис

1)    переменная =* числовая-переменная | текстовая-переменная

2)    числовая-переменная = простая-числоваяпеременная | злемент-чнслового-массива

3)    простая-числовая-псрсмснная = буква цифра0

4)    элемент-числового-массива = ндснтификатор-числового-массива индекс

5)    ндентификатор-чисювого-массива = буква

6)    индекс = круглая-скобка-левая арифметнческое-выражение (запятая арифметическое-выраженне)? крутлая-скобка-правая

7)    текстовая-переменная = буква энак-денежной-едииицы

3.4.3.    Примеры

3)    X А5

4)    V(3)

W(X,X+Y/2)

7) SO

3.4.4.    Семантика

В каждый момент выполнения программы чнеловой-переменной соответствует единственное числовое значение, а текстовой-неременной — единственное текстовое значение. Значение, соответствующее переменной, может изменяться при выполнении операторов программы. Длина текста, соответствующего тскстовой-перемснной, может изменяться в процессе выполнения программы от нуля символов (нулевая или пустая текстовая-переменная) до максимального количества символов, допускаемого реализацией. Максимально допустимая длина текстовой-переменной определяется реализацией. При этом реализация должна обеспечить длину не менее 18 символов.

Простые-числовые-переменные и текстовые-персменные объявляются неявно при их первом появлении в программе.

Индексированная переменная ссылается на элемент одномерного или двумерного массива, выбранного по значению индекса (значениям индексов). Значение каждого индекса округляется до ближайшего целого. Индексированные переменные объявляются явно в операторе-объявления-массива. Если индексированные переменные не были явно объявлены в операторе-объявления-массива, то они должны объявляться неявно при их первом появлении в программе. В этом случае при отсутствии

Страница 12

ГОСТ 27787-ЯЯ С. 10

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

Числоваяпеременная, идентификатор которой совпадает (за исключением знака-денежной-единицы) с идентификатором гекстовой-исре-менной, никак с ней не связана.

Начальные значения, присваиваемые переменным, должны определяться реализацией.

3.4.5.    Исключения

Значения индекса выходит за границы явно или неявно объявленного диапазона (неустранимая ошибка).

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

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

Значения переменных, если это не оговорено явно, до выполнения присваивания считаются неопределенными. Тогда при попытке доступа к значению переменной до того, как значение будет явно присвоено, будет зафиксирована искокяительная ситуация.

3.5. Выражения

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

Выражения могут был» либо арифмегическими-выражениями. либо текстовыми-выражениями. Арифме1ические-выражения образуются из переменных, констант и обращений к функциям при помощи операций сложения, вычитания, умножения, деления и возведения в степень.

Текстовые-выражения составляются либо из текстовых переменных, либо из текстовых констант.

3.5.2.    Синтаксис

1)    выражение = арнфмегическое-выражсние | текстовое-выражение

2)    арифметическое-выражение = знак? терм (знак терм)*

3)    терм = сомножитель (знак-умножения сомножитель)*

4)    сомножитель * первичный (стрелка-вверх первичный)*

5)    знак-умножения = звездочка дробная-черта

6)    первичный = числовая-переменная | число I обращение-к-число-вой-функции I круглая-скобка-левая арнфмегическое-выражение круглая -скобка-правая

7)    обрашсние-к-числовой-функции = имя-числовой-функции список-аргументов?

8)    имя-числовой'функции * функция-определенная-польэоватслем! встроенная-числовая функция

9)    список-аргументов ■ круглая-скобка-левая аргумент круглая-скобка-правая

Страница 13

С II ГОСТ 27787-88

10)    аргумент = арифмегическое-выражсннс

11)    текстовое-выражение = текстовая-переменная I текстовая-константа

3.$3. Примеры

2) 3*Х~ YA2 А(1)+А(2)+А(3)

-X/Y

4) 2Л(-Х)

6) SOR(XA2+YA2)

3.5.4. Семантика

Формирование и вычисление арифмстичсских-выражений производится по обычным алгебраическим правилам. Символы стрелка-вверх (Л), звездочка (•), дробная чсрта(/), плюс (■*■) и минус ( ) представляют операции возведения в степень, умножения, деления, сложения и вычитания соответственно. Если скобки не меняют порядка вычислений. то операции возведения в степень выполняются первыми, затем выполняются операции умножения и деления и, наконец, операции сложения и вычитания. При отсутствии скобок операции одного старшинства выполняются слева направо

А-В—С интерпретируются как (А-В)-С;

А*ВЧ: как (ААВ)ЛС;

А/В/Скак (А/В)/Сн

АВ как - (АЛВ).

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

0J0 по определению равно 1.

При вычислении выражения учитываются свойства ассоциативности и коммутативности операций.

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

Обращение-к-функции - это запись вызова ранее определенного алгоритма, в который вместо параметра, заданного 6 описании функции, подставляется значение аргумента.

Все функции, к которым происходит обращение в выражении, должны быть либо встроены в реализацию, либо описаны при помощи операторз-определения-функцни- Результатом вычисления функции, полученным при выполнении ранее описанного алгоритма, является чис-ловое-выражение. Оно замещает обрашекие-к-функции в выражении.

Значением тскстового-выражения является значение текстовой-переменной или текстовой-константы, которая образует текстовое-выражение.

3.5.5 .Исключения

Вычисление выражения приводит к делению на нуль. Восстановительная процедура должна заменять результат операции машинным

Страница 14

ГОСТ 27787-88 с. 12

максимумом со знаком делимого, выдавать диагностчч<»ск'ое сообщение и продолжал, вычисления.

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

Выполнение операции возведения в степень приводит к возведению отрицательного числа в нецелую степень; выполнение операции возведения в степень приводит к возведению нуля в отрицательную степень. Восстановительная процедура должна заменять результат вычисления положительным машинным максимумом и продолжать вычисления.

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

Точность вычисления выражений зависит от реализации, но pe3ynv тат должен иметь не менее 6 значащих цифр.

Метод вычисления степени числа может зависеть от того, является ли показатель степени целым числом или нет. Если показатель степени целое число, то возведение в степень можно заменить многократным умножением, если же показатель степени дробное число, то вычисление степени рекомендуется выполнять при помощи встроенных функций LOG и ЕХР (см. п. 3.6.).

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

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

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

3.6.2.    Синтаксис

Встроенная функция - ABS|ATN|COS|EXP|INT|LOGIRND|SGN| •SIN|SQR|TAN

3.6.3.    Семантика

Значения вегроенкых-функций и число аргументов каждой функции описаны в табл. 1. Во всех функция X обозначает аркфметическое-выра-

жение.

Таблица 1

Функция

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

ABS(X)

Абсолютное значение X

ATN(X)

Арктангенс X 8 радианах, т.е. угол, тангенс которого рааен X. Диапазоном функции является 0 < ATN(X) < <р1/2). при этом pi является отношением длины окружности круга к его ли»метру

COS(X)

Косинус X, гае X намеряется а радианах

ЕХР(Х)

Экспонента X, т.е. значение основания натурального логарифма (е = 2.71828. . .), возведенное в степень X; если ЕХР(Х) меныве машинного минимума, то ее значение заменяется нулем

INT(X)

Наибольшее целое, не превышающее X; например, IKT (1.3) ■ 1 и I NT (-1.3) * - 2

LOC(X)

Натуральный логарифм X; X должен быть больше нуля

3-I26S

Страница 15

С 13 ГОСТ 27787-88

Продолжение табл. I

Функции

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

RND

Следующее псевдослучайное число во встроенной-^-реалижшшо по

следовательности псевдослучайных чисел, равномерно распределен

ных в диапазоне 0 < RND < 1 (см. также а. 3.16)

SCiN(X)

Алгебраический "знак" X: -I, если X <0; 0, если X - 0 и *1, ваш

X >0

SIN tX)

Синус X, где X измеряется в радианах

SQU(X)

Неогриипсльнос значение квадратного корня их X; X должен быть

неотрицательным

TAN(X)

Тангенс X. где X иэмеряегся в радианах

3.6.4.    Исключения

Значение аргумента функции LOG равно нулю или отрицательное (неустранимая ошибка).

Значение аргумента функции SQR отрицательное (неустранимая ошибка).

Величина функции экспоненты или тангенса больше машинного максимума (значение функции должно заменяться машинным максимумом; вычисления продолжаются).

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

Функция RND в отсутствии оператора-зануска-генератора-псевдо-случайных-чисел должна генерировать одинаковую последовательность псевдослучайных чисел во время каждого выполнения программы. Это требование выбрано с той целью, чтобы программы, использующие псевдослучайные числа, выполнялись каждый раз с одним результатом.

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

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

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

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

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

Обив я синтаксическая форма оператора-опрсдслених-функций следу юоа я

DEF FNx = выражение

или

DBF FNx (параметр) = выражение

где х это одна буква, а параметр - простая-числовая-переменная.

3.7.2.    Синтаксис

Страница 16

гест т/787-88 С. 14

1)    операторопределения-функции - DLF опрелелясмэя-числовэя-функция список-парамс1ров'? знгк-равенства арифмстичсскос-выражение

2)    определяемая-числовая-функция = FN буква

3)    спиоок-парамегров - круглая-скобка-левая параметр круглая-скобка-правая

4)    параметр = просгая-числовая-переменная

3.7.3.    Примеры

1) DEFFNF(x) = хл4-1 DbFFNA(x) =Л*Х*В DEFFNP = 3.14159

3.7.4.    Семантика

Определение функции специфицирует способ вычисления функции в ]ерминах значения выражения, включающего параметр, если он есть в списке параметров и, возможно, другие переменные или константы. Если в определении функции отсутствует список-пара метров, то обращения к функции не должны содержать список-аргументов. Если определение функции содержит список-параметров, то обращения к функции должны содержать список-аргументов В этом случае вычисляется выражение в списке-аргументов, и его значение присваивается параметру из списка параметров в определении функции. Затем вычисляется выражение в определении функции, его значение присваивается функции и является значением функции.

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

Определение функции должно находиться в строке с меньшим номером. чем первое обращение к этой функции.

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

Определение функции может ссылаться на другие уже определенные функции, но не может ссылаться на текущее определение функции. В программе функции может ссылаться на другие уже определенные функции. В программе функция может быть определена не более одного раза.

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

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

Оператор-присваивания предназначен для присваивания значения выражения переменной Общая синтаксическая форма следующая:

LET переменная - выражение

3е

Страница 17

С 15 ГОСТ 27787-88-

3.8.2.    Синтаксис

1)    оператор-присваивания = арифметический-оператор-присваивания текстовый-оператор-присваивания

2)    арифметический-оператор-присвзивзния LET числовая-леремен-пая знак-равенствз арифметичсское-выражение

3» икстовый-оператор-присваиванкя = LET гекстовая-переменнзя знак-равенствз текстовое-выражение

3.8.3.    Примеры

2)    LET Р - 314159

LET Д(х, 3) = SIN(Y)*Y+1

3)    let аД- "abc-let ад- BJ2

3.8.4.    Семантика

Вычисляется вырзжение (см. п. 3.5) и его значение присваивается переменной, находящейся слева от знака равенства.

3 8.5. Исключения

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

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

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

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

Оператор-безусловкого-лерехода.

GO ТО номер-строки

допускает безусловную передачу управления.

Оператор-условнот о-лерехоаа.

IF выр! ожошение выр2 THEN иомер-сгроки

где "вьтрГ и ’'вырг” - выражения, "отношение" - это операция отношения. Этот оператор позволяет выполнять условную передачу управ-лен ия-

Оператор-вызова-подирограммы и оператор-возврата-кз-подпрограм-

мы

GOSUB номер-строки

RETURN ,

позволяют вызывать подпрограммы.

Оператор-вычисляемого-перехода

ON выражение СОТО номер строки.....номер-строки позволяет

передать управление строке с выбранным номером.

Оператор-останова

STOP

завершает выполнение программы.

3.9.2 Синтаксис

Страница 18

ГОСТ 277S7-88C. 16

Синтаксис определяете* следующим образом:

1)    оператор-безусловного-перехода * GO пробел» ТО номер-строки

2)    оператор-условно! о-перехода = IF выраженисчмношениЯ THEN номср-строки

3)    выражение отношения = (аркфметическое-выражение отношение арифметическое выражение) | (текстовос-выражеиие отношение-эквивалентности текстовое выражение)

4)    отношение = отношение-эквивалентности | меньше | больше I нс-меиьше | не-больше

5)    отношение эквивалентности = знак-рзвенсгва | змак-неравенана

6)    не-меньше «* больше знак-равенства

7)    не-больше » меньше знак-равенства

8)    не-равно = меньше больше

9)    оператор-выэова-подлротраммы =» GO пробел* SUB номер-строки

10)    онератор-возврата-из-подпротраммы = RETURN

11)    опсратор-вычисляемого-иерехода = ON арифметическое-выраже-ние СО пробел» ТО номер-строки (запятая номер-строки)»

12)    оператор-останова - STOP

3.9.3.    Примеры

1)    СО ТО 999 GOTO 999

2)    IF X > Y+83 THEN 200

9) GO SUB 100

GOSUB 100

11)    ON L + 10 GO ГО 300.400. 500

12)    STOP

3.9.4.    Семантика

Оиератор^еэусловного-перехода указывает, чго выполнение программы должно быть продолжено со строки, указанной в номере-строки.

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

Отношение не-больше обозначается О. Аналогично отношение неменьше обозначается >=. Отношение не-равно обозначается О.

Два текста считаются эквивалентными тогда и только тогда, когда они имеют одинаковую длину и содержат одинаковые последовательности символов.

Выполнение онератора-вызова-лодпрограммы и оператора-возврата-иэ-оодпрограммы может быть описано в терминах стека номеров-строк (но может быть выполнено и по-другому).

Перед выполнением первого оператора-вызова-подпрограммы в программе стек является пустым. Во время выполнения очередного операто-

Страница 19

С. 17 ГОСТ 27787-

ра вызооз поцпрограммы номср-сгроки. в котором расположен опера-тор-вызова-подпрограммы, гылгшается в вершину стека, после чего выполнение программы продолжается со строки, объявленной в операторе-вызова-подпрограммы.

При выполнении каждого оператора-возврата-иэ-подпрограммы из вершины стека извлекается номер строки, после чего программа выполняется со строки, следующей за строкой с данным номером,

Не обязательно, чтобы перед окончанием программы было выполнено одинаковое количество операторои-ъ1*.лова-»одпрограммы и опера-торсв-возврата-из-подпрограммы.

Выражение в онсраторс-вычисляемого-исрехода вычисляется н округляется до ближайшего целого. Это значение затем используется для выбора номера-строки из списка в опсраторс-вычисляемого-асрехода (номера-строк а списке нумеруются слева направо, начиная с 1). Выполнение программы продолжается со строки с выбранным номером-стро-

КИ.

Все номера-строк в операторах управления должны ссылаться на конкретные строки в программе.

Оператор-останова вызывает окончание программы.

3.9.5. Исключения

Попытка выполнения оператора-возврата-из-подпрограммы без выполнения до него соответствующего оператора-вызова-подпрограммы (неустранимая ошибка).

Целое, полученное в выражении в операторе-вычисляемого-перехода, меньше единицы иди больше числа элементов в списке номеров-строк (неустранимая ошибка).

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

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

Оператор-начада цикла и операторконца-цикла служат для создания циклов. Общая синтаксическая форма операторов начала-цикла и конца-цикла следующая:

FOR v = начальное-значение ТО конечное-значение STF.P шаг NF.XT v

где v - простая-числовая-переменная, а начальное-значение, конечное-значение и шаг суть арифметические-выражения; указание STF.P шаг является необязательным.

3.10.2.    Синтаксис

1)    цикл-с-шагом = строка-цикла тело-цикла

2)    тело-цикла и блок* строка-конца-цикла

3)    с трока-цикла • номер-строки оператор-начала-цикла конец-стро-

ки

4)    строка-конца-цикла = номер-строки оператор-конца-цикла конец-строки

5)    оператор-начала-цикла ■ FOR управляюшая-переменная равно на-чальное-значснис ТО конечное значение (STEP приращение)?

Страница 20

ГОСТ 27787-88 С. 18

6)    управляюшая-переменная = просгая-числовая-переменная

7)    начальное-значенне = арифметическое-выражение

8)    консчное-значснис = арнфмегичсское-выражение

9)    шаг * арифмстическое-выражснис

Ю) операгор-конца-цикла ~ NEXT управляюшая-переменная 3.10.3 .Примеры 1) 100 FOR I = ITOIO

... другие блоки или строки 200 NEXT I 5) FORI = А ТО В STEP-I Ю) NEXT С7 3.10.4. Семантика

Опсратор-начала-цикла и оператор-конца-цикла описываются совместно. Физическая последовательность операторов, включающая опера-тор-начала-цикла и все последующие операторы вплоть до первого опера-тора-конца-иикла с той же управляющей переменной, называется цик-лом-с-шагом. Цкклы-с-шагом могут быть физически вложенными, т.е.* цккл-с-ивгом может содержать в себе другой циклч>-шагом, но они не могут перссскагься, т.е, цикл-с-шагом, который содержит опера тор-начал а-цикла или оператор-конца-цикла, должен содержать весь цикл-с-шагом, начинающийся или. соответственно, кончающийся этим оператором.

Физически вложенные операторы не могут иметь одну и ту же управляю щу ю-пере менн у ю.

При отсутствии указания STEP в операгоре-начала-цикла приращение 1Ю умолчанию принимается равным +1.

В терминах других операторов можно описать действие оператора-начала-цикла и оператора-конш-цикла следующим образом;

FOR = начальное-зиачеиие ТО конечиое-зкачение STEP шаг (блок) NEXT

эквивалентно

LET ownl = консчнос-значенис

LET own 2 - uial-

LET v * начальное значение

строка I IF (v-ownI)*SGN(own2) > 0 THEN строка 2 (блок)

LET v = v+own2 GOTO сгрока I .строка 2 REM

Здесь v — любая простая-числовая-переменная, ownl и own2 - переменные, связанные с конкретным циклом-с-шагом и недоступные программисту; строка1 и строка 2 - номера-строк, связанные с конкретным циклом-с-шагом н не доступные программисгу. Переменные ownl и own2 отличаются от аналогичных переменных, связанных с другими цикла ми-с-шагом.

Страница 21

С. 19 ГОСТ 277*7-88

Программа може( передавать управление внутрь тела-цикла только при помоши оператора-возврата нз-подпрограммы (см. п. 3.9)

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

Исли в цикле есть приближенные вычисления (например, действия с десятичными дробями в двоичной машине), то цикл будет выполняться в диапазоне граничных значений машинной арифметики. Никаких требований на приближенный результат конечной проверки не накладывается. Нужно заметить, что в большинстве ординарных ситуаций, когда реализованный метод вычислений усекает, а н». округляет результат, конструкции вида

FOR х = 0 ТО! STEP 0.1

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

FORx ■* 1 ТО 0 STRP 0.1 не будет работать, как ожидается.

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

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

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

3. ] 1.1. Общее описание

Оператор-вывода предназначен для вывода данных.

Обив я синтаксическая форма оператора-вывода имеет вид;

PRINT элемент р элемент р ... р элемент

где каждый элемент является либо выражением, либо вызовом-табулятора, либо пробелом, а знак пунктуации (р) является либо запятой, либо точкой с запятой.

3.11.2. Синтаксис

1)    оператор-вывода * PRINT список-вывода

2)    список-вывода = (элемент-вывода разделитель-вывода)* элемент-вывода.

3)    элемент-вывода - выражение вызов табулятора

4)    вызов-табулятора = TAB круглая-скобка-левая арифметическое-выражение круглая-скобка-правзя

5)    разделитель-вывода = запятая точка-с-запятой

3.11.3 .Примеры

1) PRINT X PRJNT X,Y PRINT X. Y. Z PRINT ,,, X

Страница 22

»-кт?:»а7 88г. ?о

PRINT

PRINT "X EQUALS'*. 10

PRINT X:* (Y*Z)/2

PRINT TAB(IO); A; "IS DONE”.

3.11.4. Семантика

Выполнение оператора-вывода создаст строку символов для передз-чи на внешнее устройство. Эта строка символов определяется в результате последовательной обработки каждого эл смен га-вы вода и разделителя-вывода в списке-вывода.

При вычислении арифметических-вмрзжений создастся арока символов, содержащая в начале либо пробел, если число положительное, либо знак-минус, если число отришпелыюе. Далее следует десятичное представление абсолютного значения числа, завершающееся пробелом. Положительное десятичное представление числа совпадает с описанием числовых-констант (см. п. 3.3) и используется следующим образом.

В каждой реализации должны быть определены 2 параметра' d — максимальное количество выводимых значащих десятичных цифр числа; с - минимальное количество выводимых цифр порядка числа (см. п. 3.3.1). Значение d должно быть не менее шести, а значение с не менее двух.

Число, точно представимое целым (d или меньшим) количеством десятичных цифр, выводится в формате представления с неявно заданной точкой без указания порядка

Все остальные числа выводятся либо в формате представления с явно заданной точкой без задания порядка, либо с явно заданной точкой и с заданным порядком.

Если точность чисел, которые могут быть представлены с d или меньшим количеством цифр без задания порядка, не меньше точности в случае представления этих чисел в формате с заданным порядком, они должны выврдиты'я без задания порядка. Например, если d = 6, то 10л(-6) должно выводиться как 0.000001.

Числа, представленные в формате с явно заданной точкой без задания порядка, должны выводиться не менее чем с d десятичными значащими цифрами и точкой; последующие нули в дробной части могут быть опушены. В представлении числа, меньшего единицы, должны отсутствовать цифры левее точки. Эта форма требует не менее d+З символов, включая знак, точку и замыкающий пробел.

Числа, представленные с явно заданной точкой и заданным порядком. должны выводиться в формате:

"значение” Е s ’’порядок”

где s знак плюс или минус, величина ^значения” находится а диапазоне от единицы до десяти и представлена не менее d цифрами точности. а ’’порядок” содержит от одной до е цифр

В дробной части ’’значения” замыкающие Нули, могут быть опущены. так же как ведущие нули в ''порядке”. Точка распечатывается как 4-U6S    \

Страница 23

С. 21 ГОП 27787- 88

часть "значения", поэтому выводимое число всего будет содержать dt-e+5 символов (знак мантиссы, точка, Е, знак порядка и замыкающий пробел).

При обработке тексговых-выра*ений генерируется сор1ветствую-ший текст. При обработке раздели гели ючка-с-запятой генерируется текст нулевой длины.

Обработка вызова-табуляции или разделителя "эапягая" зависит от ранее сгенерированной строки символов текущего или предыдущего о лера юра-вывода. ’Текущая строка" (возможно пустая) - это строка символов. ci енерированная после последнего выведенного конца-строки. "Размер поля" - это число символов, включая символ конца-строки. которые могут быть выведены на одной строке. "Размер поля" определяется реализацией "Указатель позиции" текущей строки - это номер позиции для очередного выводимого в этой строке символа; позиции вывода нумеруются последовательно слева направо, начиная с единицы.

Каждая строка вывода разделена на фиксированное число зон вывода. Число зон и длина каждой зоны определяется реализацией. Все зоны вывода, кроме, возможно, последней в строке, должны иметь одинаковую длину. Эта длина должна быть не менее чем d*d 6 символов Это нужно, во-первых, для того, чтобы разместить числа, представленные с явно заданной точкой и заданным порядком, и, во-вторых, для перевода механизма вывода с помощью разделителя запятая на следующую зону вывода, как будет описано ниже.

Назначение вызова-табулятора состоит в том, что указатель позиции текущей строки устанавливается на ранее специфицированное значение для вывода следующего элемента-вывода. Для этого аргумент вызова-табуляиии вычисляется и округляется до ближайшего целого N. При N < I возникает исключительная ситуация. Пели N больше, чем размер поля М, то N преобразуется по формуле

N = M*!NT ( (N—1)/М>

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

Обработка разделителя-вывода "запятая" зависит ох ’’указателя позиции". Если данная позиция не находится в последней зоне вывода в строке и не превышает размеры поля, го генерируется один или более пробелов до установления указателя позиции на начало новой зоны вывода в строке. Если "указатель позиции" находился в последней зоне вывода, то генерируется конец строки. Наконец, если "указатель позиции’ превышает размер поля (как, например, при обработке последнего элемента-вывода, гочно заполняющего строку), то генерируется конец-строки, а первая зона вывода в следующей строке заполняется пробелами.

Страница 24

XT 27787-8H с. 22

Всякий раз, когда "указатель позиции" больше единицы, з обработка следующего элемента-вывода потребуем расширения более чем на одну позицию, перед генерацией символов элемента-вывода будет выведен конси-строкн.

Всякий раз, когда при генерации символа во время обработки элемента-вывода "указатель позиции" превысит размер поля более чем на одну позицию, перед этим символом будет выведен конец-строки, "указатель позиции” будет вновь установлен на единицу.

По завершении обработки списка-вывода, если этот список вывода не кончается разделителем-вывода, генерируется последний конец-строки; в противном случае этот последний конец-строки не вырабатывается.

3.11.5.    Исключения

Вычисление вызова-табулятора генерирует значение меньше единицы (ошибка не является неустранимой, восстановительная процедура должна заменять значение аргумента единицей, после чего выполнение программы должно продолжаться).

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

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

При пустом списке-вывода генерируется конец-строки, формирующий текущую строку вывода. Если в этой строке нет никаких символов, выводится строка из пробелов.

Строка вывода на терминале обычно делится на 5 зон по 15 позиций в каждой.

Строка символов, полученная при выводе значения арифметического-выражения, должна содержать в конце один пробел. В случае, если этот пробел вызывает установку значения указателя позиции, пре-' вышающего размер поля, реализация может не выводить этот пробел.

3.12. Оператор-ввода

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

Оператор-ввода позволяет пользователю взаимодействовать с программой в процессе се выполнения, т.е. присваивать значения переменным программы в режиме диалога или в пакетном режиме. Операгор-ввода дает возможность вводить элементы данных, где элементом • данных может быть как числовое, так и текстовое выражение. Обшзя синтаксическая форма оператора-ввода следующая:

INPIJT переменная,..., переменная

3.12.2.    СЪнтаксис

1)    оператор-ввода ■ INPUT список-перемекных

2)    список-переменных = переменная (запятая переменная)*

3)    подсказка-ввода - определяется реализацией

4)    ответ-вводу = список-ввода конец-сгроки

Страница 25

С. 2 » ГОСТ 277Я7-88

5)    список-ввода = заполненкая-заданная-величина (запятая запоя* ч еяная-зздакная-величина) *

6)    заполненная-заданнля-величина - пробел * заданная-величина про-

бел *

7)    заданная-величина = текст-в-кавычках текст-не-в-кавычках

3.12.3.    Примеры

1) INPUT х

INPUT х. АД. У (2)

5) 2, SMITH, -3 25,0,-15

7) 3.14159

3.12.4.    Семантика

После того, как при выполнении программы будет получен ответ-вводу, оператор-ввода, присваивает переменным из списка-переменных значения, полученные по порядку из ответа-вводу.

Программа запрашивает у пользователя необходимые данные при помощи подсказки-вводу. Выполнение программы приостанавливается до получение ответа-вводу.

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

Вычисление индексированных-выражений в списке-переменных производится после присваивания значений переменным, предшествующим этим выражениям (г.е. стоящим левее этих выражений) в списке-переменных.

Присваиванием значений из ответа-вводу не может производиться до тех пор, пока не будут сделаны следующие проверки:

1)    тип каждой заданной-величины должен соответствовать тип)1 переменной;

2)    число заданных-величин должно быть равно числу переменных в списке-переменных;

3)    каждая из заданных-величин должна находиться в допустимом для нее диапазоне.

3.12Л. Исключения

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

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

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

Страница 26

ГОСТ 27787-88 С. 24

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

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

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

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

Рекомендуется, чтобы подсказка-вводу состояла из знака вопроса и одного пробела.

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

Если для присваивания текстовой-персменной вводится текст-не-в-кавычках, то ведущий и завершающий пробелы должны игнорироваться (см. п. 3.1). Если вводится текст-в-кавычках, то пробелы являются значацими (см.я. 3.3).

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

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

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

ПАТА заданная-величина,..., заданная-величина

где каждая заданная-величина - либо текст-но-в-кавычках (который может быть представлением числовой-константы), либо текст-в-кавычках.

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

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

READ переменная,..., переменная • RESTORE

3.13.2.    Синтаксис

1)    оператор-хранения-данных = DATA список-данных

2)    список-данных = заданная-величина (запятая заданная-величи-

на)»

3)    оператор-рассылки-данных = READ список-переменных

Страница 27

С. 25 ГОСТ 27787—Я8

4) оператор-восстановления-указателя-рассылки = RESTORE

3.13.3.    Примеры

I) DATA 3.I4I59, PI,5Б-10,

3)    READX.Y.Z READ Х(1), А(3)

4)    RESTORE

3.13.4.    Семантика

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

При выполнении операторэ-хранения-данных никаких действий не производится, происходит переход на следующую строку.

Оператор-рассылки-даннмх присваивает значения переменным из списка-псременныж в порядке, организованном оператором-хранения-данных. С последовательностью данных связан специальный указатель, который при запуске программы указывает на первую заданную-величину в последовательности данных. При выполнении очередного опера-тора-рассылки-данных каждой переменной из списка-персменных последовательно присваивается значение задакной-величины, на которую показывает указатель, а указатель при этом передвигается на следующую заданную-величину.

Оператор восстановления-указа геля-рассылки возвращает указатель на начало последовательности, так что при выполнении следующего оператора-рассылки-данных данные будут считываться, начиная с первой заданной-всличины из' последовательности:

Тип заданной-'величнны в последовательности данных должен соответствовать типу переменной, которой присваивается эта величина. Числовые переменные требуют присваивания текста-не-в-кавычках, которые являются числовыми-констаитами, а текстовые-переменные требуют присваивания им текста-в-кавычках или текста-не-в-кавычках. Текст-не-в-кавычках, который является представлением числа, может быть присвоен текстовой-перемекной или числовой переменной при помощи оператора-рассылки-данных.

Индексированные выражения из списка-перемениых вычисляются после того, как предшествующим переменным (т.е. стоящим левее их) присвоены соответствующие значения.

3.13.5.    Исключения

Список-переменных в опера горе-рассылки-данных требует большее число данных, чем осталось в списке, заданном оператором-хранения-даннмх (неустранимая ошибка).

Попытка присвоить числовой-переменной гекст-а-кавычках или текст-не-в-ковычках, которая не является представлением числовой константы (.неустранимая ошибка).

Страница 28

I OCI I77«7-88f. lb

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

Присваивание эаланной-велнчины текстовой-переменной приводит к переполнению текстовой переменной. Возникает неустранимая ошибка.

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

Ошибки в ашск о данных могут генерировать исключительные ситуации во время выполнения операторов рассылки-данных и восстанов-ления-указагеля-рассылки.

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

Если вычисление числовом-задз иной-величины приводит к потере точности, то результат должен заменяться нулем,

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

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

Опсратор-объявлсния'масснвз резервирует память под одномерный или двумерный массиз. Опсратор-объявлсния-нижней-траницы определяет нижнюю границу для всех индексов массива. Использование оператора-объявления-нижней-границы даст возможность объявить в качестве нижней границы индексов массива нуль или единицу. Нели нет объявления верхней границы индексов массива, по умолчанию они полагается равной 10. Таким образом, резервируется память для 10 или И элементов в одномерном случаен НЮ или 121 элемента в дву. мерном случае в зависимости от установленной нижней границы. Опс-ратор-объявления-массивз может объявлять массивы с верхней границей индексов, отличной от десяти.

Общая синтаксическая форма операюра-объявления-массива следующая

.DIM объявление,., . , объявление где каждое объявление имеет вид: буква (целое)

нли

буква (целое, целое)

Общая синтаксическая форма оператора-объявлення-нижней-гра-ницы следующая:

OPTION BASE n где n - либо 0, либо I.

3.14.2.    Синтаксис

1)    оператор-объявления-массива = DIM объявление-массива (запятая объявление-массива)*

2)    объявление-массива = нмя-чнслового-массива круглая-скобка-левая границы круглая-скобка-правая

3)    границы ■> целое (запятая целое)?

Страница 29

С. 27 ГОСТ 27787-88

4) олсраторч.иъявления-иижией-граиииы ■* OPTION BASb (Oil)

3.14.3.    Примеры

I) DIM A(6), В(10,10)

4) OPTION BASE I

3.14.4.    Семантика

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

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

Объявление массива, если оно присутствует в программе, должно находиться в строке с меныиим номером, чем первое обращение к элементам эюго массива. Массивы, не объявленные в операторе-объявле-ния-массива, объявляются неявно одномерными или двумерными, в зависимости от числа индексных выражений. Максимальные значения индексов по умолчанию полагаются равными 10 (см. 3.4),

Оперэтор-объявлсния-нижнсй-границы объявляет минимальное значение для индексов массива; при его отсутствии в программе минимальное значение по умолчанию полагается равным нулю. Если опера-тор-объявления-нижней-границы в качестве нижней границы значений массива объявляет елкншгу, то опсратор-объявления-массива не может объявлять в качестве верхней границы нуль.

Программа может содержать только один оператор-объявления-нижней-границы.

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

Каждый массив в программе можно объявлять только один раз.

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

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

Оператор-примечаний позволяет документировать программу.

3.15.2.    Синтаксис

Оператор-примечаний = REM тскст-примечанмй

3.15.3./7/)мл<еры

REM ОКОНЧАТЕЛЬНАЯ ПРОВЕРКА

3.15.4.    Семантика

При выполнении оператора-примечаний никаких действий не производится, происходит переход к следующей строке.

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

сел

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

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

Страница 30

ГО'Г i7'S»- 8“C. 28

3.16.2.    Синтаксиг

Оператор-зэпуска-гснсратора псевдослучайных-чисел *» RANDOMIZE

3.16.3.    Примеры '

RANDOMIZE

3.16.4.    Семантика

Выполнение оператора-запуска-гснераторз-исевдослучанных-чиссл вырабатывает новую начальную точку для списка псевдослучайных чисел, используемую функцией RND.

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

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

4. МОДУЛЬ РАСШИРЕНИЯ ОСНОВНЫХ СРЕДСТВ

Этот модуль состоит из двух уровней и содержит описание дополнительных возможностей языка Бейсик, не вошедших в ядро настоящего стандарта. При этом описывзются только те возможности, реализация которых не 'требует включения в состав ЭВМ каких-либо специальных аппаратных средств.

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

4.1.    Уровень I

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

4.1.1Л. Общее описание

Набор символов дополнительно включает строчные буквы латинского и русского алфавитов.

4.1.1.2.    Синтаксис

5) символтексга-в-кавычках * сгрочная-буквалатинская | строч-ная-буква-русская

11)    строчная-буква-латинская = a|b|c|d|e|f|g|h|ifj1k|I|m|o|p|q|r| *|jt|u|v|w|x|yfz

12)    строчная-буква-русская = а|б|в|г|д|с1ё|ж|з|и|й|к|л|м|н|о|н| р|с|т|у|ф.|х|ц|чрш|щ|ъ|ы|ь|э|ю|я

4.1.U.    Семантика

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

АЛЛ А. Примечания

Все строчные буквы латинского и русского алфавитов могут использоваться только в примечаниях и в качестве констант (см. п. 4.1.З.).

4.1.2.    Программы 5-<9(5

Страница 31

С 29 ГОСТ 27787-88

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

Расширение основных средств допускает размещение в одной строке нескольких операторов. Кроме того, расширен список допустимых операторов.

4.1.2.2.    Синтаксис

3)    сгрока-с-оператором = номер-строки пробел * оператор (пробел * двоеточие пробел « оператор) * коне»ьстроки

4)    оператор = оператор-определения функции I операгор-опрсдсле-ния-тина-нерсменной | оперзтор-описания-массива | оператор-условного-перехода | оператор-ввода I оператор-присваивания I оператор-ввода-текста ) оператор-вывода-строки-на-печать ) оператор-выделения-под-строки | оператор-обработки-ошибок | оператор-вычисляемого-вызова-подпрограммы I оператор-записи-в-оперативную-память | оператор-фор-матироваиного-вывода | оператор-выхода-из подпрограммы-обработкн-ошнбок | онератор-восстановлсния-указателя-рассылки | оператор-вклю-чения-трассировки | оператор-выключения-трассировки

4.1.2.3.    Примеры

3)    НО LET А » 5 : PRINTА : STOP

4.1.2.4.    Семантика

Строки программ выполняются последовательно в соответствии с номерами строк. Операторы, расположенные в одной строке, выполняются «о порядку слева направо.

Максимально допустимая длина строк в программах, удовлетворяющих уровню 1, должна быть не менее 255 символов, включая указатель конца-строки.

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

После некоторых операторов не допускается наличие других операторов, отделенных двоеточием (см. пп. 3.15,4.1.9).

4.1.3.Константы

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

Дополнительно допускаются следующие типы числовых констант:

5)    представление с явно заданной sd . .. drd. .. dl>sd... d точкой с заданным порядком

6)    представление с неявно заданной sd ... dDsd ... d точкой с заданным порядком

7)    представление в виде &Hh ... h шестнадцатеричного числа

Здесь D — явный символ D, Н - явный символ Н, a h - десятичная

цифра или одна из прописных букв А, В, С, D, F. или F.

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

4.13.2.    Синтаксис

4)    мантисса = (целое тип?) | (целое точка тип?) | (целое дробная-часть тип?) I шесжадцатеричное-значение

Страница 32

ГОСТ 27787-88 С. 30

7) порядок - (К знак? целое) | (D знак? целое)

9)    тип = процент | восклииательный-знак I номер

10)    шестнадцатеричное-значени*. => &Н 1иестнадиатсричная-цифра шее-тадцатеричная-цифра ♦

11)    шестандцатеричная-цифра = цифра |A|Blt|L)|fc|l-

4.1    Зл. Примеры ' 3) 5.7 #

6%

7! *

10) &Н2В7

4.1    J.4. Семантика

Числовая константа может быть целым числом, либо числом с оди-1арной точностью, лиоо числом с удвоенной точностью.

Числовая константа с одинарной точностью - это вещественное число, содержащее в записи не более семи цифр, или содержащее порядок с буквой Е, или

заканчивающееся символом восклицательный знак (!), или не содержащее указателя типа.

Числовая константа с'улвоснной точностью - это вещественное число, содержащее в записи более семи цифр, или содержащее порядок с буквой D, или заканчивающееся символом номер (N).

Целая константа - это целое число, заканчивающееся символом процент (%).

Шестнадцатеричные цифры представляются цифрами от 0 до 9, а также буквами, причем А - соответствует 10.В- 11.С- 12, D-13.E-14 hF- 15.

Шестнадцатеричные константы должны рассматриваться как кон“ стангы целого типа.

Диапазон представления чисел зависит от реализации. Диапазон для целых чисел должен быть не менее чем oi - 32768 до +32 /67

Допустимая длина текстовой константы зависит от реализации и должна быть не менее 255 символов. .

4.13JS. Примечания

Тип константы по умолчанию определяется реализацией.

4.1.4. Переменные 4.1.4.1. Общее описание

Переменные в Бейсике связаны с числовыми или с текстовыми значениями. Числовые переменные могут быть либо простыми переменными, либо ссылками на элементы мзссива, такие ссылки называются индексированными переменными.

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

Идентификаторы индексированных переменных могут состоять из букв, цифр и арифметических выражений, заключенных в круглые $•

Страница 33

С. 31 ГОСТ 27787-88

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

Идентификаторы переменных могут заканчиваться спецификатором типа.

4 1.4.2. Синтаксис

3)    простая-числоиая-неременная = букча (буква I цифра) • тип?

4)    злемснт-числового-массива =» нце)пификагор-числового-массива список-индексов

5)    идентификатор-числовогомассива = буква (буква I цифра)* тип?

6)    список-индексов - круглая-скобка-левая арифметическое-выра-жение (запятая арифмежческое-выражение)- круглая-скобка-правая

7)    текстовая-перемеиная ■ буква (буква | цифра)* знак-деиежной-единицы

8)    буква « прописиая-буква-латинская I прописная-букна-русская

9)    олемеит-текстового-массива * иаентификатор-текстового-масси-ва список-индексов

10)    илентификатор-текстовогомассива * буква (буква!цифра)* знак-денежной-един ицы

4.1.4.3 .Примеры

3)    А2С WC7 #

4)    Ш (I.J+3)

9) ОД(К)

4.1.4.4. Семантика

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

Длина текстовой переменной может изменяться от 0 (пустая текстовая переменная) до максимальной длины, зависящей от реализации. Максимально допустимая длина текстовой переменной аолжна быть не менее 255 символов.

Индексированные переменные ссылаются на элементы массивов. Максимальное количество индексов, допускаемое реализацией, должно быть не менее 4 (см. также п. 4.1.15).

Две переменные, имеющие одинаковые идентификаторы, но разные типы, должны рассматриваться как разные переменные.

4.1.5. Выражения

4.1.5 Л. Общее описание

. Выражения могут бьга. либо арифмстическими-выраженнями, либо текетовыми-выражениями. Аркфмстнческис-выражения образуются из переменных, констант и обращений к функциям при помощи операций сложения, вычитания, умножения, деления, деления нацело, вычисления остатка от деления нацело, возведения в степень, а также логических операции AND, OR, NOT.

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

Страница 34

ГОСТ 27787-88 С 32

4.1.5.2. Синтаксис

5) знак-умножения * звездочка I дробная-черта I обратная-дробная-черта I MOD

!0) аргумент = арифметическое-вмражение (занятая арифметнчсс-кое-выраженис)*

11)    тскстовос-выражсмне = текстовый*элемен1 (конкатенация текстовый- элемент) *

12)    тскстовый-элемент = текоовая-переменная I текстовая-функ-ция I эл емент-те кетового-массива.

13)    логичсское-выражение = арифметическое-выражение логическая-операция арифметическое-выраженне (логичеекзя-операция арифме-тическос-выражение)*.

14)    логическая-опсрация = AND|OR|NOT

15)    конкатенация ■ знак-плюс

16)    текстовая-функция = текстовая-функция-опрсделснная-пользова-телем I всфоенная-тексговая-функ ция

4.1.53. Примеры

11)    А1Д*ЫД

12)    CHR Д(&Н20)

CWI.J) '

13)    (1+5) AND (С-2)

4.1 .S.4. Семантика

Обратиая-лробная-черта обозначает деление нацело. Перед выполнением деления нацело операнды округляются. После выполнения деления дробная часть частного отбрасывается.

MOD обозначает вычисление остатка от деления нацело (деление по модулю). Перед делением операнды приводятся к целому значению. Правила приведения к целому-значению определяются рех1изацией.

Приоритет арифметических операций:

1)    возведение в степень;

2)    деление, умножение:

3)    деление нацело;

4)    вычисление остатка от деления нацело;

5)    сложение, вычитание.

Все реализации при вычислении арифметических выражений должны обеспечивать следующие правила преобразования типов:

1)    если числовая константа одного, типа присваивается числовой переменной другого типа, то константа автоматически преобразуется и становится того же типа,что и переменная;

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

3)    логические операции выполняются только над целыми операндами, поэтому "все операнды приводятся к целому типу;

Страница 35

С 3J ГОСТ 27787-88

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

Логические операции выполняются по правилам, приведенным в приложении 3.

Конкатенация текстов - это слияние двух текстов. Результатом конкатенации двух текстов является текст, состоящий из текста, стоящего слева от знака-плюс, дополненного текстом, стоящим справа от знака-плюс.

4.1.5 .5. Иск. I ючения

При конкатенации текстов длина результирующего текста превышает максимальную длину текста, допускаемую реализацией (неустранимая ошибка).

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

Логические операции выполняются поразрядно над машинными представлениями целых чисел. Эти представления определяются реализацией. Тип результата - целое число.

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

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

В расширенной версии языка Бейсик раецшрен набор числовых функций и, кроме того, дополнительно реализованы текстовые функции. Функции, преобразующие коды в текстовые представления, считаются текстовыми, а преобразующие тексты в коды — числовыми.

4.1.6.2.    Синтаксис

1)    вегроенная-функция = встроснная-тскстовзя-функция! встроенная-числовая-функция

2)    встроенная-числовая-функция = CSKUN|FIX|1NSTR|L£N|LP0SI PEEKIPOSIRNDIVAL

3)    встроенная-текстовая-функция = С HR 0 (HEX JINKEY | INPLTOI LEFTqi MlDffl R1СНТД1SPACEfcfl STRQl STRING Д

4.1.63. Семантика

Значения встроенных-функций и чисто аргументов каждой функции описаны в табл. 2 и 3. Для всех функций X обозначает произвольное арифметическое выражение, I и J — арифметические выражения, дающие целые результаты, ХДи Y£J- гексговые-выражсния.

В табл. 2 приведены встроснные-числовые-функции, описание которых отсутствует в п. 3.6. -

Таблица 2

Функция

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

CSRI.IN

ЫХ(Х)

INSTR (I, Ха Yff)

Возвращает иомер строки, а которой находится курсор Преобразует X в цело* путем отбрасывания дробно* части Возьраишег номер позиции первого вхождения текста YQ в тексте X С? . 1, - необязательный параметр, задающий начало отсчета для

поиска

Страница 36

ГОСТ 27787-88 С. 34

Т а 6 л к и * 2

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

Функция

LEN(Xfl)

LPOS

РЕЕК(1)

RNIXX)

VALOCfl)

Воззрашает x'i и к у гекстовоЯ переменной X 0 . т.с. количество содержащихся в ней символов

Возвращает номер позиции (колонки) печатающего узла печатающего устройства

Возвращает значение ячейки оперативной памяти с адресом L Возвращаемое значение - целое число

Если X отсутствует или если X > 0, то функция возвращает очередное сгенерированное случайное число. Если X ■ О, тю возвращается последнее сгенерированное случайное число. Если X < 0, то генерация случайных чисел запускается заново

Возвращает числовое значение текста ХД! Рели первый символ текста XQотличен от ♦, или цифры, то возвращается О

В табл. 3 приведены встроенныв-тскстовыс-функцин.

Таблица 3

Функция

Действие

Страница 37

С. 35 ГОСТ 27787-88

4.1.6.5.    Исключи..uh

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

Если в текстовых функциях от целого аргумента аргумент превышает максимально допустимое значение кода символа, го возникает ошибка. Ошибка не является неустран,to;'.. Должна производиться замена значения аргумента на максимально допустимое значение кода, выводился диагностическое сообщение и вычисления должны продолжаться. Если аргумент отрицателен, то возникает неустранимая ошибка.

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

Функция РЕЕК является аппаратно зависимой, и поэтому ее использование может затруднить переносимость программ. Однако эта функция крайне широко используется в подавляющем большинстве версий языка Бейсик, поэтому она включена в стандарт. • .

Стандарт не устанавливает ограничения на размер адресуемой ячейки оперативной памяти ЭВДО.

Функция INKEY Д возвращает символ, уже находившийся к моменту ее выполнения во внутреннем буфере ввода, определяемого реализацией. Если к моменту выполнения функции в буфере ничего нет, то возвращается пустой текст.

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

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

Общая синтаксическая форма операторов для определения функций

следую поя:

DEF FNx = выражение

или

DEF FNx (параметры) ■ выражение,

где х - это последовательность букв и цифр, начинающаяся с буквы, а параметры - это список простых-числовых-перемснных, разделенных запятыми.

4.1.7.2.    Синтаксис

1)    оператор-определения-функции х DEF определяемая-текстовая-функция список-параметров?знак-равенства текстовое-выражение

2)    определяемая-числовая функция в FN буква«цифра*

3)    список-параметров - круглая-скобка-левая параметр (запятая параметр)* круглая-скобка-правая

4)    опредсляемая-текстовая-функция = FN буква*цифра символ-де-нежной-еднницы

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

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

Оператор-присваивания предназначен для присваивания значения выражения переменной. Общая синтаксическая форма следующая:

Страница 38

ГОСТ 27787-88 С. 36

LET переменная = выражение или переменная = выражение

4.1.8.2. Синтаксис

2)    зркфметичсский-олсратор-присваквания = LET? числовая-нере-меннал знак-равенства зрифмегнческое-выражение

3)    гекстовый-оператор-присваивания = LF.T? текстовая-переменная знак-равенства гекстовое-выражение

4.1 ЯЛ. Примеры

2)    ALFA а 5*Х — 3

3)    B1Q- аЦ+ CHR (56)

4.1.8.4.    Семантика

Ключевое oiodo LF.T можно опускать. В остальном оператор-присваивания совпадает с описанным в п. 3.8.

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

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

Оператор-условного-перехода.

IF вмр! отношение выр2 THEN номер-строки или список операторов ELSE номер сгроки или список операторов.

Здесь "вырГ и ”выр2” - выражения, "отношение” - это операция-отношения.

Этот оператор позволяет в зависимости от результатов отношения осуществляться условную передачу управления или выполнять группу операторов. Оператор-условного-перехода должен быть последним операторов в строке (см. п. 4.12).

Оператор-вычислясмого-вызова-подпро граммы

ON выражение COSUB номер-строки, номерстроки,.....номер

строки.

Этот оператор позволяет вызвать подпрограмму с заданным но* ром.

4. |9.2. Синтаксис

2)    оператор-условного перехода = IF арифметическое-выражение выражение-отношения THEN номер-строки I оператор (пробел • двоеточие пробел • оператор) * (ELSE номер-строки | оператор (пробел * двоеточие пробел * оператор) •)) ?

3)    выражение-отношения *» (выражение отношение выражение) (логическая-операция выражение отношение выражение)*

13) оператор-вычисляемого-вызова-подпрограммы = ON арифме-тическое-выражение jGO пробел • SUB номер-строки (запятая номер-строки) *

4.1.93. Примеры

2) IF AJK BtJANE>X+5< Ю ThEN S00 ELSE STOP IF X OR Y THEN 200 ELSE 300

4.1.9.4.    Семантика

Еслч значение выражения в операторе-условного-перехода - "истина” то выполнение программы будет продолжено с номера-строки,

Страница 39

С. 37 ГОСТ 27787-88

идущего после слова THEN. Нели после ключевого слова THEN стоит юследоватсльность операторов, то после их выполнения будет выполняться строка, идущая после строки с олератором-условного-перехода. Если значение выражения - ’’ложь" и оператор содержит ключевое еловое ELSE, то управление будет передано строке с указанным номером-строки. Если после слова ELSE стоит последовательность операторов, то после их выполнения будет выполняться строка, идущая после опе-тра тора-у словиог о-и ерехода.

“Ложь" должна иметь в качестве внутреннего представления нуль, а ’’истина” должна иметь в качестве внутреннего представления число, отличное от нуля.

При сравнении текстовых-переменных меньшей считается более короткая переменная. Если длина сравниваемых текстовых переменных одинакова, то сравниваются числа, полученные из кодов символов этих переменных. Сравнение ведется посимвольно, начиная с самого левого символа. Меньшее число соответствует меньшей переменной.

Выражение в операторе-вычисляемого-вызова-подпротраммы преоб-разуется в целое число, которое затем используется для выбора номера-строки из списка'в операторе-вычисляемого-выэова-подпрограммы (номера-строк в списке нумеруются слева направо, начиная с I). Потом вызывается подпрограмма с выбранным номером строки.

4.1.9.5. Исключения

Целое, полученное при вычислении арифметичсского-выражения в операторах-вычисляемого-безусловного-перехода и вычисляемого-вызова-под-программы, меньше единицы или больше количества элементов в списке номеров-строк. Ошибка не является неустранимой. Должен выполняться переход к следующей по порядку строке.

• А Л.9.6. Примечания

Если оператор-условного-перехода используется для проверки на равенство двух арифметическнх-выражений, дающих вещественный результат, то следует учитывать, что вычисления проводятся с определенной точностью. Поэтому вместо проверки на равенство следует сравнивать абсолютное значение разности этих выражений с машинным минимумом, т.в. вместо записи IF COS (А) « O.S THEN 340 следует использовать запись

IF ABS (COS(А) - 0.5) <0.00 ... 01 THEN 340 Оператор-условного-перехода должен быть последним оператором в строке.

4.1.10. Оператор-фор магнрованного-вывода 4.1.10.1т Общее описание

Оператор-форматированного-вывода предназначен для генерации форматированного вывода.

Обив я синтаксическая форма оператора форматированного-выво-да имеет вид:

Страница 40

ГОСТ 27787-84 С 38

PRINT USING сгр; элемент р элемент р ... элемент

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

4.1.10.2.    Синтаксис

Оператор-форматированного-вывода = PRINT пробел USING гекс-товая-константа I текстовая-персменная ючка-озапятой список-печати

4.1.10.3.    Примеры

PRINT USING,, ##1 ###“; А, В

4.1.10.4.    Семантика

Оиератор-форматированного-вывода используется для организации форматированного вывода. Управление форматом* вывода осуществляется при помощи специальных символов управления форматированием. Символы форматирования для вывода числовых значений приведены в табл. 4.

Таблица 4

Действие

Символ

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

Плюс указывает, что перед выводимым числом должен явно стоять его знак: iujoc или минус

Минус в конце формата указывает, что для выводимых отрииа тельных чисел знак минус должен быть и кож* числа Точка отделяет лробиую часть выводимого числа от целой чаегч Выводимые числа при необходимое!* округляются до точности, определяемой форматом вывода

При выводе текста используются два символа: восклицательный знак (!) указывает, что из данного текста аыводится только первый символ; (л пробелов) указывает, что из текста выводятся только первые п ♦ 2 символа.

4.1.10.5. Исключения

Выводимое число имеет больше цифр в целой части числа, чем задано в формате вывода. Ошибка не является неустранимой. Должен выполняться полный вывод числа; перед числом вывод символа процент (%)

4.1.11, Оператор-вывода-на-печатаюшее-устрой-ст в о

Синтаксис и семантика опсратооа-выводз-на-нечатаюшее-устройсгвс полностью совпадают с синтаксисом и семантикой оиенагора-выводз, за исключением того, что вместо ключевого слова PRINT используется

Страница 41

С 39 ГОСТ 27787-8Я

ключевое слово LPRINT и вывод осуществляется не на терминах, а на i-гчатаюшсе устройство.

4.1.12.    О п ер а то р - в во д а

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

Оператор-ввода ааег возможность вводить элементы данных в режиме диалога, гае элементом данных может быть как числовое, так и текстовое выражение. Общая синтаксическая форма операгора-ввода следующая    ,

INPUT подсказка; переменная.....переменная

где подсказка - это текстовая-константа.

4.1.12.2.    Синтаксис

1)    оператор-ввода = INPUT (подсказка*.)? список-ввода

2)    подсказка = текстовая-константа 4 Л.12 Л. Примеры

1)    INPUT "Введение значения для Л и N”; А. N 4.1.12.4. Семантика

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

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

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

Оператор ввода-текста позволяет вводить данные с терминала, игнорируя все управляющие символы, кроме конца-строки.

Общая синтаксическая форма оператора-ввода-текста следующая: LINE INPUT (подсказка;)? текстовая-персменная

4.1.13.2.    Синтаксис

Оператор-ввода-текста = LINE пробел INPUT (подсказка;)? тексто-вая-перемеиная

4.1.13.3.    Примеры

LINE INPUT "Введите ответ”; VQ

4.1.13.4.    Семантика

Тексте вой-переменной присваиваются все вводимые данные до iex пор, пока не будет превышена допустимая длина текста, определяемая реализацией, или пока не будет ^введен конец-сгроки.

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

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

Опсраторобъявленкя-массивов резервирует память под многомерные массивы.

Общая синтаксическая форма о пера тора объявления-массива сле-цуюивя:

DIM объявление,.... объявление где каждое объявление имеет вид:

имя-переменной (целое,:.., целое)

4.1.14.2.    Син таксис

2)    объявление-массива - имя-числовогр-массива I имя-тексгового-массива крутлая-скобка-лезая-границы круглая-скобка-правая

Страница 42

ГОСТ 27787-88 С. 40

3) границы = целое (запятая целое)*

4.1.14.3.    Примеры

1) DIM А1Я (10,3,2)

DIM В0(5, II)

4.1.14.4.    Семантика

Массивы могут быть текстовыми (элементы массива • тексговые-переменные) и числовыми (элементы массива - числовые-переменные). Числовые массивы MOiyr иметь спецификатор типа, т.е. быть целыми, с одинарной точностью и с удвоенной точностью.

Максимально возможное количество измерений (индексов) должно быть не менее четырех (см. п. 4.1.4.).

4.1.14.5.    Исключения

Вычисленное значение индекса превышает указанное в операторе-объявления-массивов (неустранимаяошибка).

4.1.15.    Задание типов переменных

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

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

Обивя синтаксическая форма оператора следующая:

DEF тип 61-62.....бк-б1

где тип - это SNG, DBL, STR или INT, а бк—<51 диапазон букв.

4.1.15.2.    Синтаксис

1)    операгор-эадания-тилов-переменных = DEFnm буква-типа минус буква-типа (запятая буква-типа минус буква-типа) •

2)    тип ■ INT|SGN|DBLISTR

3)    буква-тши = пропнсная-буква-латииская

4.1.15 3. Примеры

1) DEFINT А С, М-Р, Х-ч7-

4.1.15.4. Семантика

Оператор-эадання-гипов-переменных указывает, что все переменные, идентификаторы которых начинаются с одной из букв заданного диапазона, являются переменными указанного типа.

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

Спецификатор типа имеет более высокий приоритет, чем оператор-зад ання-типов-переменных.

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

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

Оператор-замены-текста используется для замены части текста на другой текст.

Обивя синтаксическая форма оператора следующая:

MlDO(x£f.‘n,m) =УДГ

4.1.16.2.    Синтаксис

Страница 43

С. 41 ГОСТ 27737

1)    оператор-замены-текста • МШ£круглая-скобка-лерчя текстомя-псрсмсмная занятая начальная-позиция (запятая количество)? крутя'' скобка-правая знак-равенства текстовое-выражение

2)    начальная-позиция = целое

3)    количество целое

4.1.16.3.    Примеры

1) МП)Д(х02^) = уЯ

4.1.16.4.    Семантика

Символы текстовой-переменной. стоящей слева от знака равенства, начиная с л-й позиции, заменяются символами из текстовой-переменной, стоящей справа от знака равенства.

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

4.1.16.5.    Исключения

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

4.1.17.    Оператор-эаписи-в-оперативиую-память

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

Оператор-записи-в-оперативную-память предназначен для записи целого числа в оперативную память. Общая синтаксическая форма опе-ратора-записи-в-операгивную-память имеет вид:

POKE I. J

4.1.17.2.    Синтаксис

1)    оператор-записи-в-оперативную-памятъ ■ РОКЕ адрес, данное

2)    адрес = целое

3)    данное = целое

4.1.17.3.    Ярам гры

1) РОКЕ, А1%, В%

4.1.17.4.    Семантика

Значение данного записывается по указанному адресу.

4.1.17.5.    Исключения

Значение данного превышает максимальное число, допускаемое реализацией (неустранимая ошибка).

Значение адреса находится вне диапазонов адр<?сов, допускаемых реализацией (неустранимая ошибка).

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

Оператор-записи-в-оперативную-память является дополнением функции-peek (см. п. 4.1.6). Он также может затруднять переносимость программ.

4.1.18.    Встроенные средства 'отладки

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

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

Страница 44

ГОСТ 27787-8S С. 42

Переменная-ERR содержит код ошибки.

Перемскная-ERl. содержит номер-строки, в которой произошло ошибка.

Операторч>брз6отки-о шибок

ON ERROR СОТОномерчлроки вызывает подпрограмму обработки ошибок.

Оператор-выхода-из-поднрог рам мы-обработки-о шибок

RESUME аргумент осуществляет возврат из подпрограммы.

Операторы-включения и выключения-трассировки включают и вык лючают режим трассировки, т.е. режим вывода на терминал номеров выполняемых программных строк

4.1.18.2. Синтаксис

1)    оператор-обработки-ошибок = ON пробел ERROR пробел GO пробел* ТОномер-строки

2)    оиератор-выхода-из-подпрограммы-обработки-ошибок 15 RESUME нуль номер-строки NEXT

3)    оператор-включекия-трассировки ° TRON

4)    оператор-выключения-трассировки = TROFF

5)    переменная-KRR ■ ERR

6)    переменная-FRL = ERL

4.1.183. Примеры

1)    ON ERROR GOTO 100

2)    IF ERL - 120 THEN STOP

4.1.18.4. Семантика

Переменная-ERR содержит код ошибки. Список кодов ошибок определяется реализацией.

Переменная-ERL содержит номер строки, в которой произошла ошибка.

Идентификаторы ERR и ERL*&™k>tch зарезервированными и не могут испольэовэться в качестве имен-переменных в левой части оператора-присваивания.

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

, Возврат нз подпрограммы обработки ошибок может осуществляться только при помощи оператора-воэврата-из-подпрограммы-обработки-опибок. При использовании формата RESUME 0 управление снова передается оператору, выполнение которого привело к ошибке.

Страница 45

С. 43 ГОСТ 27787-«8

При использовании формата RESUME NEXT упраялени'* передаете* операюру, выполняемому вслед за ошибочным.

При использовании формата RESUME номер-строки управление передается проке с заданным номером.

Посте выполнения операюра-включення-трассировки на тер' . чг, должны поочередно выводиться номера всех выполняемых строк Вывод строк прекращается после выполнения оператора-выключечия трассировки.

4.1.18.5. Исключения

Выполнение оператора-возврата-иэ-подпрограммы-обрзботки-оши-бок без предварительного выполнения оператора-обработки-ошиСюк (неустранимая ошибка).

4.2.    Уровень 2

4.2.1.    Программы

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

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

4.2.1.2.    Синтаксис

2) блок = цикл-пока

4) оператор = оператор-управлення-прерываннсм-по-клааише | оператор-прерывания-по-клавише

4.2.    U. Примеры

4) SO KEY ON

4.2.2.    Константы

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

В качестве констант дополнительно можно использовать двоичные константы.

4.2.2.2.    Синтаксис

4) значение = двоичное значение

12)    двоичное-значенис ■ &В двоичная-цифра двоичная-цифра*

13)    двоичная-цифра = 0|1

4.2.2.4. Семантика

Двоичные числа должны рассматриваться как целые цисла.

4.2.3. Выражения

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

В выражениях дополнительно можно использовать логические операции XOR, IMP и EQU.

4.2.3.2.    Синтаксис

14)    логнческая-опсрация я XORIIMPIEQU

4.2.3.3.    Семантика

Логические операции выполняются по правилам, приведенным в приложении 3.

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

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

Страница 46

ГОСТ 27787-88 С. 44

К описанным выше операторам управления добавлены операторы-управления прерыванием-по-клавише и прерывзния-по-клавише.

Операюр-уиравления-прерыванисм-по-клавише.

KEY (n) ON i OFF I STOP

Этот оператор разрешает или запрещает обращение к подпрограмме при возникновении прерывания от нажатия функциональной клави-ши с указанным номером или вызывает останов выполняемой npoi рам-мы.

Оператор-прерывания-по-клавише.

ON KEY GOSUB номер-строки

Этот оператор позволяет вызвать одну из подпрограммы обработки прерываний в зависимости от номера нажатой функциональной клавиши, если ранее прерывание для функциональной клавиши с данным номером было разрешено оператором-управлейия-прерывания-по клавише.

4.2Л.2. Синтаксис

14)    оператор-управления-прсрыванием-по-клавише = KEY круглая-скобка-лсвая целое круглая-скобка-правая ONIOFFISTOP

15)    оператор-прермоаиия-по клавише * ON KEY COSDB номер-строки (запятая номер строки)*

4.2.4.3.    Примеры

14)    KEY (3) ON

15)    ON KEY GOSL’B 300,400,500

4.2.4.4.    Семантика

Оператор-управленияпрерыванием-no-клавише разрешает (параметр ON) или запрещает (параметр OFF) прерывание при нажатии функцгп-нальной клавиши на клавиатуре терминалз или вызывает останов программы (параметр STOP).

Оператор-прерывания-по-клавише вызывает подпрограмму обработки прерывания с номером-строки. занимающей позицию, соответствующую номеру нажатой функциональной клавиши (см. п. 4.1.9.), если ранее прерывание было разрешено оператором-управления-прерыванием-по-клавише. Если же прерывание было запрещено или была нажата клавиша с номером, превышающим количество номеров-арок в операторе, то программа переходит к выполнению следующего по порядку оперзтора.

4.2.5. Цикд-пока

4.2.5.1.    Общееописамие

\Ыкл-лока служит для организации циклов, выполняющихся до тех пор, пока истинно некоторое условие.

Общая синтаксическая форма цикла-пока следующая:

WHILE выражает или отношение

блок

WEND

4.2.5.2.    Синтаксис

Страница 47

С. 45 ГОСТ 277*7-88

1)    цикл-пока = начали-цикла-шка тсло-цикла-пока

2)    тело цикла-пока = блок конеи-цикла-пока

3)    начало-цикла-пока = номер-строки опсратор-пока конеи-строки

4)    опсратор-пока м WHILE арифмстическое-выражение выражение-отношения

‘ 5) конеи-цикла-пока = номер-строки WEND

4.2.53. Примеры

1) 10 WHILE Л > О 20 А = А - 10 30 WLND

4.23.4 Семантика

Циклы-пока могут быть физически вложенными, т.е. цикл-пока может содержать в себе другой цикл-пока. Каждым конец-иикла-пока соответствует ближайшему предыдущему началу-цикла-пока.

Цикл-пока выполняется в том случае, когда значение арифметичес-кото-выражения отлично от нуля или если значение вмражения-отноше-ния есть истина. Проверка значения арнфметического-выражения или выражения отношения должна производиться до выполнения блока, содержащегося в цикле-иока.

5. МОДУЛЬ ГРАФИЧЕСКИХ СРЕДСТВ

Модуль состоит из двух уровней и уетанаа-швает требования дня графических средств языка Бейсик. Эти средства предназначены для обеспечения возможности написания программ, которые могут выводить на термина;! графическую информацию. Так как графические средства существенно зависят от аппаратуры, то их реализация требует следующих характеристик дисплея:

1)    разрешающая способность экрана - не менее 192*256 точек;

2)    количество воспроизводимых цветов для цветного дисплея не менее 4. „

Размеиюние вершины координат зависят от реализации.

Ниже в разделе будут использоваться следующие обозначения:

(X, Y) - абсолютные координаты точки. Отсчет ведется относительно вериыны координат;

STEP (X, Y) - относительные координаты точки. Огсчет ведется относительно текущего положения графического курсора;

К - номер цвета изображения .

L - номер цвета фона;

М - номер цвета границы (бордюра).

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

5.1. Уровень 1

5.1?!. Вы бор режима работы

Страница 48

ГОСТ 27787- ЯЯ С. 46

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

Режим работы - текстовый, графический или смешанный - уем-нашивается при помощи оператора-установки-режима. Синтаксическая форма этого оператора следующая:

SCRLEN I

где I - номер-режима.

5.1.1.2.    Синтаксис

1)    оператор-установки-рсжима = SCREEN номер-режима

2)    номер-режима •• целое

5.1.1.3.    Пример I) SCREEN 2

5.1.1.4.    Семантика

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

Ввод и вывод текстовой информации должны быть допустимы в текстовом и смешанном режимах. Графические операторы выполнимы только в смешанном или в графическом режиме.

5.1.1.5.    Исключения

Использование оператора в несоответствующем режиме приводит к неустранимой ошибке.

5.1.2. Оператор-установки-цвета 5.1.2.1. Общее описание

Оператор-установки-цвета устанавливает на экране цвета изображения , фона и границы (бордюра).

Общая синтаксическая форма скератора-установм* цвета еле ' щая:

COLOR К, L, М ■ 5.1.2.2. Синтаксис

1)    оператор-установки-цвета = COLOR список-параметров?

2)    список-параметров = номер-цвета? (запятая номер-цвета)* (зм,и тал номер-нвега)?

3)    номер-цвета * арифметическос-выражение 5.1.23. Примеры

1) COLOR. 7 COLOR I S.] 2Л. Семантика

Операгор-установки-цвега меняет текущие цвета на экране. Если какой-либо из параметров отсутствует, сохраняется текущее значение параметра.

Номера-цветов, порядок задания цветов в операторе и количество воспроизводимых цветов для цветного дисплея определяется реализацией.

Страница 49

С. 47 ГОСТ 27787-88

5.1.23. Исключения

Задан несуществующий номер-цвета (ошибка не явлиегся неустранимой, состояние цветов определяется реализацией).

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

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

Оиерагор-устаиовки-цвета-точки устанавливает в графическом режиме цвет точки с заданными координатами.

Общая синтаксическая форма данного операюра следующая;

PSETSTEP? (X.Y) (,К)?

5.1.3.2.    Синтаксис

1)    оператор-усгаиовки-цвета-точки = PSET список-параметров

2)    список-параметров = координаты-точки (запятая номер-цвета-изображения) ?

3)    координаты-точки = относительные-координаты абсолютные-координаты

4)    относительные-координаты = STEP абсолютные-координаты.

5)    абсолютные-координат = круглая-скобка-левая Х-координата запятая Y-координата круглая скобка-правая

6)    Х-координата = арифметическое-выражение

7)    У-координага * арифметическое-выражение

5.М3. Примеры

1) PSET (.2*УЛ2Х)

5.1.3.4.    Семантика

Оператор-установки-цвета-точки устанавливает цвет точки с данными координатами.

Координаты могут был. абсолютными (относительно вершины координат) и относительными (относительно текущего положения курсора) .

Координатами точки могут быть любые допустимые арйфметичес-кие-вырзжения. *

При отсутствии номера-изображения сохраняется текущее значение этого параметра:

5.1.33. Исключен ия

Неправильно задан номер-цвета-изображения (см. п. 5.1.2).

Координаты точки выходят за границы экрана. Ошибка не является неустранимой. Программа продолжает свою работу.

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

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

Опсратор-иэображения-отрезков-и-прямоугольников изображает в графическом режиме отрезки и прямоугольники. Общая синтаксическая форма оператора-изображения-отрезков-и-прямоугольников следующая:

LINE (STEP? (XI. YI))?- STEP? (X2.Y2) ((, К)?. BIBF)?

где STEP? (XI, YI),STEP? (X2, Y2) - координаты концов отрезка (координаты верхней левой и нижней правой точек прямоугольника в случае присутствия параметра В или BF);

Страница 50

ГОСТ 27787-88 С. 48

В - параметр,объявляющий незаполненный прямоугольник:

BI - параметр, объявляющий прямоугольник, заполненный сплошным цветом.

5.1.4.2.    Синтаксис

1)    оператор-изображения-отрезков-и-прямоугольников ■ LINE список-параметров

2)    список-параметров = коордннаты-начальной-точки знак-минус координаты-конечной-точки ((запятая номер-цвета-изобаражения)? запятая параметр-прямоугольника)?

3)    параметр-нрямоугольника = параметр-незаполненного-прямо-угольника I параметр заполненного-прямоугольника

4)    нараметр-нсзаполнснного-прямоугольника = В

5)    параметр-заполненного-прямоугольника = BF

6)    координаты-начальной-точки = координаты-точки

7)    координаты-конечной точки = координаты*точки

5.1.4.3.    Примеры

1) LINE -STEP (X,Y)

LINE -STEP (SCALE-3, SCALE-4), BF

5.1.4.4.    Семантика

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

Если в операторе объявлены координаты двух точек, они задают •концы изображаемого отрезка (или верхнюю левую и нижнюю правую точки прямоугольника в случае присутствия в операторе параметров В или BF).

Если в операторе присутствуют координаты только конечной точки. то в качестве начальной точки используется последняя объявленная в графических операторах точка.

Если в операторе отсутствует номер-цвета-изображения, используется текущее значение этого параметра.

При отсутствии параметров В или BF изображается отрезок с заданными координатами концов; иначе, параметр В объявляет незаполненный прямоугольник, а параметр BF - прямоугольник, заполненный сплошным цветом.

5.1.4.5.    Исключения

Координаты какои-либо из точек выходят за границы экрана. Ошибка не является неустранимой. Изображается видимая часть отрезка или прямоугольника.

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

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

Оператор-изображения-окружности изображает окружность или дуги заданного радиуса и с заданным центром.

Общая синтаксическая форма оператора-изображенкя-окружности следующая:

Страница 51

t. 49 ГОСТ 27787-8*

CIRCLE STEP? (X, Y>, R (, К (начальный-уюл-дуги (. конечный \ i ол-дуги (, эксцентриситет j ?)?;?)?

где R - радиус окружности или дуги; начальный-угол-дуги - тот ка начала изображения в радианах (если начальный-угол-дуги не.задан, ю он принимается рапным нулю): конечиый-угол-дуги - конечная т-" ч* изображения в радианах (если конечный-угол-луги не задан, го он равен 2*Р|); углы должны принимать значения из диапазона от -2*Р1 до +2»Р1, где 2*Р1 = 6.28318; экскентрисигет - величина в диапазоне .т {■•260 до 260.

S.1JS.2. Синтаксис

1)    оператор-изображения-окружности * CIRCLE список-параметров

ров

2)    список-параметров = координаты-точки запятая радиус (заля

■ ая номер-цвета-изображемия (запятая начальный-угол-дуги (запятая ко-■ечный-угол-дуги (запятая эксиенгрисигег) ?)?)?)?

3)    радиус = арифмстипсскос-выражснис

4)    качальный-угол-дути = арифметическое-выражение

5)    конечиый-угол-дуги = арифметичсское-выражение

6)    эксцентриситет = арифмстическоо-выражсние

5.1.5.3. Примеры

1) CIRCLE (100.100),75., -1. -0.01.1.2

5.1.5    А. Семантика

Оисратор-изображения-окружности позволяет изображать на экране окружности, дуги и эллипсы. Координаты-точки задают центр окружности на координатной плоскости. Начальный-угол-дуги и конеч-ный-угол-дути задают начальную и конечную точку изображения дуги на экране. Если эти параметры имеют отрицательные значения, это означает. что соответствующие конечные точки соединяются отрезками с центром окружности. При отсутствии этих параметров начальной точкой изображения полагается самая правая точка окружности, затем окружность рисуется по часовой стрелке от 0 до 2*Р1 рад.

Если в операторе объявлен эксцентриситет, то он специфицирует эллипс. Например, если эксцентриситет равен 2, изображается эллипс, высота которого в 2 раза больше чем ширина, полусумма ширины и высоты равна заданному радиусу.

5.1.5    J5. Исключения

Изображение окружности при заданных параметрах выходит за границы экрана. Ошибка не является неустранимой. Изображается оидимая часть окружности.

5,1.6. Окраска области сплошным цветом

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

Оператор-окрэскн-облясти заполняет область сплошным цветом, •йивя синтаксическая форма данного оператора следующая:

PANT STEP? (X, Y) (.КГ (,М)?

Страница 52

ГОСТ 27787-8» С. 50

где К номер-цвета-окраскн, а М - номер-цвета-изображения ipa-ницы области.

5.1.6.2. Синтаксис

1)    опорагор-окраски-области = PAINT список-параметров

2)    список-параметров = координаты- ючки «запятая номер-цвета-окраски)? (запятая номер-цвета-границы)?

5.1.6    3. Примеры

1) PAINT (105,22).3,5    ,

5.1.6    А. Семан ти ка

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

5.1.6.5. Исключения

Координаты заданной точки находятся вне экрана. Ошибка не является неустранимой. Программа продолжает работу.

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

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

Встроенная функция-о пред слеп ия-цвета-точки в качестве результата возвращает номер-цвета-изображения точки с заданными координатами.

5.1.7.2.    Синтаксис

Функния-опрсделсния-цвета-точки = POINT збеолютные-координа-ты-точки

5.] .7.3. Примеры

X» POINT (X0,Y0)

5.1.7.4.    Семантика

Данная функция возвращает номер-цвета-изображения указанной точки. Если в этой точке ничего не нарисовано, то возвращается номер-цвета-фона.    ,

5.1.8.5.    Исключения

Координаты точки вне экрана. Ошибка не является неустранимой. Должно выдаваться предупреждающее сообщение, после чего программа продолжает работу.

5.2.    Уровень 2

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

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

Оператор-графических-операций предназначен для построения изображений при помощи специальных операций. Общая синтаксическая форма оператора следующая:

DRAW текстовзя-константа

Страница 53

С. 51 ГОСТ 277Я7-88

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

Опсратор-графических-операций позволяв! в одном текст* задать сразу несколько действий, связанных с выводом графической инфор : laiiHii ка жран.

S.2.1.2. Синтаксис

1)    оиерэтир-графнчееккх-операций = DRAW список-графических-операцик

2)    список-графичсских-операций = (префикс)? зарезервирован-ный-енмвол параметр ((пробел)?(префикс)? зарезервированиый-сим-вол параметр)*

3)    префикс = B|N|S

4)    зарезервированный-символ = U|D|L!R|F.|FiG]H|M

5)    параметр = длина | расстояние

6)    длина = арифметическое-выражение

7)    расстояние = (знак-плюс|знак-мниус)? координата-Х запятая координата Y

5.2,1.3 .Примеры

1) DRAW "U100 R120 LI20”

DRAW "ВЕЮ”

5.2.1.4. Семантика

Список графических-посраций составляет текст длиной до 255 символов. Операции обозначаются зарезервированными символами. Для удобства чтения операции могут разделяться пробелами. Параметр длина задает количество изображаемых точек.

Ниже приведен перечень выполняемых операций:

1)    U длина - рисует вертикальную линию вверх от положения графического курсора;

2)    D длина - рисует вертикальную линию вниз от графического курсора;

3)    L длина - рисует горизонтальную линию влево от графического курсора.

4)    R длина - рисует горизонтальную линию вправо от графического курсора;

5)    В длина - рисует линию под углом 45";

6)    F длина - рисует линию пол углом 315°;

7)    G длина - рисует линию под углом 225*;

8)    II длина - рисует линию под углом 135°;

9)    М (+ или -) координата X, координата Y. Если явно задан знак (+ или -), то координаты отсчитываются от текущего положения графического курсора. В противном случае берутся координаты относительно начала координат.

Префикс В - перемещение графического курсора без рисования сле-

дз.

Страница 54

ГОСТ 27787-88 с. 52

Префикс N - перемещение графического курсора с рисованием следа и возврат графического курсора в исходное положение.

Префикс S - масштаб. Каждая длина умножается на заданный коэффициент. Масштаб может иметь значение от J до 255.

Масштабирование действует на все, что рисуется без префикса В.

5.2.1.5.    Исключения

При выполнении графических-операций изображение выходит за границы экрана. Ошибка не является неустранимой. Программа должна продолжать работу.

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

Список графических-операций может быть расширен. Допускаются также реализации, позволяющие задавать графические-операция не только текстовыми константами, но и текстовыми переменными.

6. МОДУЛЬ ИНТЕРПРЕТАТОРА

Модуль интерпретатора описывает минимальный набор команд, которые применяет пользователь в диалоге с реализацией языка Бейсик в виде интерпретирующей системы.

Реализация может допускать использование некоторых команд в качестве операторов программы, а некоторых операторов в виде команд. Система должна доггускать ввод команд как прописными так и строчными буквами.

Команды, описанные в пл. 6.6-6.8, должны бып. реализованы, если в состав ЭВМ входят магнитные диски, а команды, описанные в пп. 6.9—6.11, должны быть реализованы, если в состав ЭВМ входят магнитные ленты.

6.1.Команда-инициал«зация

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

Команда-инициализация уничтожает программу в памяти.

• 6.1.2. Синтаксис

Команда-инициализации = NEW

6.1.3 .Примеры

NEW

6.1.4. Семантика

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

6.2. Вывод текста программы , 6.2.1. Общее описание

По этой команде на экран выводится текст всей программы или ое части. Общая синтаксическая форма команды-вывода-текста следующая;

LIST номер начальной строки - номер конечной строки

Страница 55

С. 53 ГОСТ 27787-88

6.2.2. Синтаксис

1)    команда-вывода-текста с LIST (номер-начальной-строки)? (минус) ? (номср-консчной-строки) ?

2)    номер-начальной-строки = точка целое

3)    номер-конечной-строки = точка целое

6.23. Примеры

1) LIST -175

6.2.4.    Семантика

Команда-вывода-текста выводит на терминал текст программы, находящейся в данный момент в памяти ЭВМ, в соответствии с указанным диапазоном номеров строк.

Номером-строк может быть любое целое число от 0 до максимального, определяемого реализацией. Если в описании команды не указаны номера-строк, то выводится вся программа. Иначе, если задан единственный номер-сгрокк. то выводится только эта строка. Минус до или после номера-строки означает вывод всего текста до или после строки с указанным номером. Если в команде объявлены два номера-строки, разделенные знаком-минус, то выводятся строки с номерами из указанного диапазона. Если в качестве номера-строки используется точка, она объявляет текуций номер-строки, т.е. последний использованный в команде или введенный номер.

6.2.5.    Исключения

В команде-вывода-текста объявлены несуществующие строки. Ошибка не является неустранимой. Команда игнорируется.

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

Реализация может допускать использование команды-вы вола-текста о качестве оператора программы.

63. Команда-эапуска-программы

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

Команда-залуска-программы запускает программу на выполнение.

6.3.2.    Синтаксис

1)    команда-запуска-ирограммы = RUN (номер-строки имя-программы)?

2)    имя-программы ш тексговая-константа | гексговая-переменная

6.3.3.    Примеры

1) RUN

RUN 100

6.3.4.    Семантика

Команда-залуска-программы переводит программу в режим выполнения, начиная выполнение с первой строки программы.

Если задан параметр номер-строки, то выполнение программы начинается со строки с указанным номером.

Если в команде объявлена тексговая-константа или текстовая-пе-ременная, то она интерпретируется как имя файла, содержащего текст программы. Программа загружается в ЭВМ с внешнего устройства (магнитной ленты или магнитного диска) и начинает выполняться.

Страница 56

ГОСТ 27787-88 С. 54

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

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

Команда-удаления-сгрок-программы удаляет строки текста программы из памяти ЭВМ. ,

6.4.2.    Синтаксис

Комаида-улалсяия-строк-программы ■ DELETE (номер-начальной-строки) ? (минус номер-конечной-строки) ?

6.4.3.    Примеры

DELETE Ю0-.

DELETE.

DELETE - 5000

DELETE 135

6.4.4.    Семантика

Команда-удалейия-строк может удалил из памяти час» текста или всю программу. При отсутствии номсра-начальной-строки удаляются все строки от начала текста до строки с объявленным номером. При отсутствии номсра-конечной-строки удаляются все строки, начиная с указанной. Точка используется для ссылки на текущую строку.

6.4    5. Исключения

Указанный в команде номер-строки не существует. Должно выдаваться диагностическое сообщение.

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

Допускается сокращенное DEL вместо DELETE.

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

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

Команда-возобновления-выполнения-программы вызывает продолжение выполнения программы с того места, где произошел останов программы (после выполнения оператора-останова или после останова с пульта операторз).

6.5.2.    Синтаксис    •    ,

Команда-возобновление-выполнения-программы = CONT

6.5    3. Примеры

CONT

6.5.4.    Семантика

Если выполнение программы было прервано встроенным средством прерывания, (например, при помощи оператора-останова). го этой командой можно возобновить выполнение программы с той сгороны, где она была прервана.

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

Если выполнение программы было завершено выполнением опе^-тора-конца (END), то команда-возобиовления-выполнения-нрограммы игнорируется.

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

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

Страница 57

* С. $5 ГОСТ 27787-83

Командз-загрузки-программы-с-магнитного диска загружает в оперативную память ЭВМ программу, написанную на языке Бейсик и хранящуюся в файле на магнитном диске.

6.6.2.    Синтаксис

1)    команда-загрузки-программы-с-магнитного-диска = LOAD имя-программы

2)    имя-программы « текстовая-константа

6.6.3.    Примеры    •

1) LOAD "MOD2”

6.6.4.    Семантика

Команда-загрузки-программы-с-диска используется для загрузки прогрзммы, написанной на языке Бейсик и сохраненной командой-за-писи-на-магнитный-диск (см. п. 6.7) на магнитном диске. Имм програм-мы указывает имя файла, содержащего эту программу.

6.6.5.    Исключения

Файла с указанным именем ка диске «ст. Выдастся сообщение ошибке.

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

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

Команла-записи-на-магнитный-диск записывает программу из оперативно^ памяти ЭВМ в файл на магнитный диск.

6.7.2.    Синтаксис

Команда-записи-на-магнитный-диск * SAVE имя-программы

6.7.3.    Примеры

SAVE "name**

6.7.4.    Семантика

Команда-ззписи-на-магинтный-диск записывает текст программы в файл на магнитный диск. Файл получает имя, указанное в' имени-программы.

6.7.5.    Исключения

Диск переполнен. Возникает неустранимая ошибка. Система должна выводить диагностическое сообщение.

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

После выполнения команды-записи-на-магнитный-диск программа должна сохраняться в оперативной памяти ЭВМ.

Длина имени-программы определяется реализацией.

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

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

Эта команда выводит список имен файлов, хранящихся на магнитном диске.

6.8.2.    Синтаксис

Вывод-каталога-диска = FILES

6.8.3.    Примеры

FILES

6.8.4.    Семантика

Страница 58

ГОСТ 27787-Я8 С 56

Команда-вывода-каталога-диска выводит на терминал имена всех файлов, которые существуют на диске.

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

Формат вывода каталога определяется реализацией.

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

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

Эта команда включает и выключает мотор накопителя на магнитной ленте.

6.9.2.    Синтаксис

Команда управления машитофоиом = MOTOR ON | OFF

6.9.3.    Примеры MOTOR ON

6.9.4.    Семантика

Эта команда включает или выключает мотор магнитофона.

6.10.    3 а г р у з к а программы с магнитной ленты

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

Эта команда производит загрузку программы на языке Бейсик е магнитной ленты в оперативную память ЭВМ.

6.10.2.    Синтаксис

Команда-загрузки-программыс-магнитной-ленгы 3 CLOAD имя-программы?

6.10.3.    Примеры СLOAD ".2FJLE"

6.10.4.    Семантика

Команда-загруэки-программы-с-магнишой-ленты загружает программу с указанным именем с магнитной ленты.

6.10.5.    Исклтемия

Программа с указанным именем отсутствует на магнитной ленте. Система должна выводить диагностическое сообщение.

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

Длина имени файла определяется реализацией. .

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

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

Эта команда записывает текст программы, написанной на языке Бейсик и хранящейся в оперативной памяти ЭВМ, на магнитную ленту.

6.11.2.    Синтаксис

Команда-заииси-на-магнитную-лскту =CSAVE имя-программы

6.11.3.    Примеры CSAVE ”1001"

6.11.4.    Семантика

Производится запись текста программы на магнитную ленту в файл с заданным именем.

6.11.5.    Исключения

На магнитной ленте нет места. Ошибка не является неустранимой.

Страница 59

С. 57 ГОСТ 27787- 8#

Программа должна сохраняться в памяти ЭВМ. Система должна выводить диагностическое сообщение.

7. МОДУЛЬ РАБОТЫ С МАГНИТНЫМИ ЛЕНТАМИ

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

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

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

Оператор-открытия-файла подготавливает файл для операций ввода/ вывода и устанавливает режим чтения или записи

7.1.2.    Синтаксис

1)    оператор-открытия-файла = OPEN пробел кавычки режим кавычки запятая номер номер-файла занятая имя-файлз

2)    режим = 1(0

3)    номер-файла - целое

4)    имя-файла = текстовая-константа I тскстовая-переменная

7.1.3.    Примеры

I) OPEN ”0”, # 2. ”CASS:SSFILK”.

7.1.4.    Семантика

Номер-файла - это число, связанное с файлом все время, пока файл находится открытым, и используемое другими операторами ввода-вывода при обращении к файлу.

Имя-файла должно начинаться с символов CAS:

Оператор-открытия-файла должен быть выполнен до первого оператора ввода или вывода с использованием данного файла.

Если имя-файла отсутствует, то открывается следующий по порядку файл на магнитной ленте.

7.1S. Исключения

Файл, открываемый для чтения, не найден (неустранимая ошибка).

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

Одновременно можно открыть только один файл.

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

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

Оператор-залнсн-дакных-в-файл используется для записи данных на магнитную ленту. Общая синтаксическая форма оператора-записи-дан-ных-в-фанл следую 1Шя:

PRINT # номер-файла, элемент р ... р элемент где номер-файла - ?то номер, который был присвоен данному файлу.

7.2.2.    Синтаксис

Оператор-записиданных-в-файл = PRINT пробел • номер список-вывода

Страница 60

I ОСТ 27787-88 С. 58

7.2.3.    Примеры

PRINT#!, А. В. С

7.2.4.    Семантика

Оиератор-записи-данных-в-файл по функционированию полностью совпадает с оператором-вывода (см. п. 3.11) за исключением того, что данные выводятся не на терминал, а записываются на магнитную ленту.

7.2.5.    Исключения

При записи данных не хватило места на магнитной ленте (неустранимая ошибка).

7.3. 0.ператор-чтсния-с-магнитной-ленты

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

Оператор-чтения-с-магнитной-ленты позволяет считывать данные с магнитной ленты. Общая синтаксическая форма оператора-чтення-с-магнитной-ленты имеет вид:

INPUT # номер файла, переменная, ... переменная

7.3.2.    Синтаксис

Опсратор-чтения-с-магнигной-ленгы = INPUT пробел • номер список-переменных . 7.3.3. Примеры

INPUT #1,А1.В0

7.3.4.    Семантика

Оператор чтения-с-магнигной-лен ты по функционированию полное-стью совпадает с оператором-ввода (см. п. 3.12.), выполняемому в гя-кетном режиме.

7.3.6.    Исключения

Чтение после конца файла, конец магнитной ленты. Неустранимая ошибка. Выводится диагностическое сообщение.

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

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

Эта функция используется для идентификации конца-файла при операции чтения.

7.4.2.    Синтаксис    *

Функция-признак а-кониа-файла = EOF круглая-скобка-левая номер-файла круглая-скобка-правая

7.4.3.    Пример

IF EOF (# 2) THEN 100

7.4.4.    Семантика

Функция-признака-конца-файла возвращает нуль ("ложь”), если файл еще не исчерпан. В противном случае она возвращает единицу (“истина”).

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

Эту функцию следует использовать в опсраторс-условиого-нерсхо-да или в чикле-пока для определения конца файла, открытого для ■пения.

Страница 61

С. 59 ГОСТ 27787-88

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

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

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

CLOSE #иомер-файла

7.5.2.    Синтаксис

Олератор-закрытия-файлз =CLOSE пробел» номер номер-файла

7.5.3.    Примеры

CLOSE 2

7.5.4.    Семантика

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

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

Если файл был о/крыт для чтения, то закрывать его необходимо лишь в том случае, когда нужно открыть еще какой-либо файл.

Для'файла, открытого для записи, процедура закрытия обязатель-

8. МОДУЛЬ РАБОТЫ С МАГНИТНЫМИ ДИСКАМИ

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

8.1.    Уровень I

Данный уровень описывает средства работы с файлами с последо-ншельнмм методом доступа.

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

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

Оператороткрыгия-файла подготавливает (открывает) файл для операций чтения или записи. Обшая синтаксическая форма оператора-от-крытия-файлз имеет вид.

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

8.1.1.2.    Синтаксис

1) оперзтор-открытия-файла = OPEN кавычки режим кавычки за-!штая номер номер-файла запятая имя-файла '    2)    режим «1|0

3)    номер-файла = целое

4)    ими-файла = текстовая-константа!текегговая-переменная

8.1.1.3 .Примеры

I) OPEN”Г\#1,’TEST.PRN”

8.1.1.4. Семантика

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

Страница 62

ГОСТ 27787-8Я С. 60

Режим 0 означает, что данные оудут записываться из оперативной памяти на диск.

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

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

‘ Структура имени-файла определяется реализацией. Имя-файла должно использоваться только в окераторе-открытия-файла.

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

8.1.1.5.    Исключения

Файл, открываемый для чтения (режим I), не существует на диске (неустранимая ошибка).

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

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

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

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

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

CLOSE # номер-файла

8.1.2.2.    Синтаксис

Оператор-закрытия-файла ■ CLOSE (номер номер-файла) ? (запятая номер-файла) •

8.1.2.3.    Пр имеры

CLOSE#!

8.1.2.4.    Семантика

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

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

8.1.2.5.    Исключения

Попытка закрыть неоткрытый файл. Ошибка не является неустранимой. Программа продолжает работу.

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

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

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

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

Оператор-записи-данных-в-файл используется для вывода данных в файл на магнитный диск. Его синтаксис и семантика полностью совпадают с оператором-вывода из п. 7.2.

Страница 63

С. 61 ГОСТ 27787-88

Оператор-форматированной-записи-в-файл используется для форматированного вывода в файл на магнитный диск.

8.1.3.2. Синтаксис

Оператор-форматированного-вывода = PRINT пробел номер номер-файла пробел USING текстовзя-константа|тскстовая-персменная точка-с-запятой список-вывода.

8.1.3 2. Примеры

PRINT #2 USING..# ###*’; А%; В%: С

8.1.3.4.    Семантика

Операторы эаписм-данных-в-фзнл н форматированной-записи-в-файл используются для записи данных в файл на магнитный диск. Данные записываются последовательно в соответствии со списком-вывода.

Семантика операгора-форматированной-записив-файл полностью совпадает с семантикой оператора форматировашюго-вывода из п. 4.11.

&ЛЗ Л. Исключения

При выполнении операции вывода диск переполнился (неустранимая ошибка).

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

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

Операторк чтения-с-магнитного-диска и чтсния-текста-с-магнитного-диска используются для чтения данных из файла, хранящегося на магнитном диске. '

Синтаксис и семантика оператора-чтения с-магнитного-диска совпадают с синтаксисом и семантикой операгора-чтения с-магнитной ленты. - писанного в п. 7.3.

Семантика оператора-чтения-гексга-с-магнитного-диска совпадает с семантикой оператора-ввода-тскста, описанного в п. 4.1.13, за исключением того, что данные выводятся не с клавиатуры, а из файла.

8.1.4.2.    Синтаксис

Оператор-чтения-с-магнитного-диска = LINE пробел INPUT номер номер-файла точка-с-запятой текстовая-перемсиная

8.1.4.3.    Примеры

LINE INPUT #3; MlQ

8.1.4.4.    Семантика

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

8.1.4.6. Исключении

Чтение после конца файла. Неустранимая ошибка. Выводится диагностическое сообщение.

* 8.1J. Функция признака-конца -файла

Синтаксис и семантика функции-признака-концд-файла полностью совпадают с функцией, описанной в п. 7.4.

Страница 64

ГОСТ 27787-М С. 62

8.2. Уровень 2

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

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

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

Оператор-открыткн-файла подготавливает (открывает) файл для операций чтения/записи. Общая синтаксическая форма оператора-откры-тия-фанла имеег вид:

OPEN режим, # номер-файла, имя-файла, длина-текстз &.2Л.2.Сингаксис

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

2)    режим = R

3)    длина-текста = целое 8.2.13. Примеры

1) OPEN *'R’\ # I, ’’FILE", 32

8.2.1.4.    Семантика

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

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

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

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

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

8.2.2.    В ы д е л е н и е области для переменных 8.2.2.1 Общее описание -

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

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

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

8.2.2.2.    Синтаксис

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

2)    размер-поля = целое 8.2.2 3. Примеры

1) FIELD# 1,20 as N Q '

8.2.2.4. Семантика

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

Страница 65

С 63 ГОСТ 27787-88

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

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

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

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

8.2    А Оператор-чтения-текста

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

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

GF.T номер-файла, номер-текста

8.2.3.2.    Синтаксис

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

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

8.2.3.3.    Примеры

1) GET #2,371

8.2.3.4.    Семантика

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

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

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

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

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

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

8.2.4.2.    Синтаксис

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

8.2    АЗ. Примеры - PUT #4,20

8.2.4.4.    Семантика

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

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

625 Л. Общее описание

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

Страница 66

ГОСТ 277S7-88 С. 64

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

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

8.2.5.2. Синтаксис

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

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

8.23.3. Примеры

I) LSET V0 = NN{3* ’’LIST”

8.2.5.4.    Семантика

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

8.2.5.5.    Примечай ия

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

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

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

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

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

8.2.6.2 .Синтаксис

Функции-преобразования = MKI £|MKSfilMKDC |CVI|CVS|CVL>|

8.2.63. Семантика

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

Страница 67

C.6J гост 27787-М

Т «блица

Функция

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

CVI (ХЦ)

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

CVS (ХС)

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

CVD (ХЕ)

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

MKlfl(N%)

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

MKSC(X)

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

mkd£(y •*)

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

8 2.6.4. Примечания

Размер текста для каждого типа чисел определяется реализацией.

Страница 68

ГОСТ 27787-8Я С. 66

приложен т:

Справочное

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

Синтаксис, будучи «ибором синтаксических правая, определяет сиигаксмчос-кис Объект различных типов. такие к*к программа или выражение, к определяет,

КЯККС СТртКИ СИМВОЛОВ ЯВЛЯЮТСЯ обьеКТВМИ jni\ типов.

В .кнтаксиес прописные буквы, цифры и слова, написанные строчными бук-Biiv.ii (возможмо.обьедииеииыгдефисом),иепольэуюкя как "метанмема",т.е как имена синтаксически* объектов. Подавляющее болышисгво этих метай мен определяете* при помощи грамматических правил а терминах других мтимси Детого, чтобы такой процесс был конечным, некоторые мстаимсна определены как базовые, или ртермиимьиые". Грамматические правила дня терминальны v метаимеи не включены в оыпаксмс. Все герминальные мсгаимсиа, за исключением конструкций, определяемых реализацией, введены в начале и описакы в п. 3 >. Следует отметать, в частности, что все пропиаше буквы и цифры являются rct> минальными мет «именами, которые определяют их самих.

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

Метой синтаксической спецификации использует некоторые специальные «». волы в качестве синтаксических операторов:

IX ■* - читается. "во определению есть";

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

3)    ? - указывает, что объект, стоя ОМ i перед ним, может присутствовать ирк отсутствовать;

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

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

6)    пробел - используется в синтаксисе дня отделения одного объекта от другого.

Если в описании используется несколько синтаксических операторов, то ? и ♦ имеют более высокий приоритет, чем I.    '

Пример

В п. 3.9 видим следующее: оператор-вызове-пэдаротраммы = СО пробел • SUB номер-строки.

Это означает, что о перато^выэовв-подпрограммы состоит из букв G и О, за которыми следует пробел, ♦, бука S, U и В номер»-строки. Количество пробелов в соответствие с (1) иеограиичемо.

Что такое номер-строки? В п. 3.2 читаем:

номер строки * цифра цифра? цифра? цифра?

Это означает, что номер-строки является цифрой, за которой могут следовать еще от одно* до трех цифр.

Что такое цифра?В п. 3.1 читаем:

цифра =» 0|1г2|3|4*Я6|7|8|9

Эго означает, что цифрой может быть любая из перечисленных арабских цифр.

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

Страница 69

С. 67 ГОСТ 27787- 88

ПРИЛОЖЕНИЕ 2 ОСязмелъяое

ТЕРМИНЫ И ИХ ПОЯСНЕНИЯ

Конец-строки симпои или ни»каюр, указывающий ма завершение стрехи. Мхи бон се часто к качестве кони а-строки яспольэуюгся символы "г-пират кар<. или "возврат каретки"и "переводстроки".

Ошибка • неправильный синтаксис в строке, в результате чего эта строка . не может являться частью программы.

Исключение - атуацм, возникающая при выполнении программы, если ио верны исходные данные или неверны вычисления или результаты вис диапазонов, прсаоставияемых ресурсами системы. Кепи при этом выполнение программы пр» крашястся, то говорят, что данная ситуация привела к неустранимой ошибке

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

Ключевое слово слова, используемые для идентификации операторов, ком-ноиентов операторов или других элементов языка программирования.

Строка последовательность символов, заканчивающаяся концом-строки

Машинный минимум - минимальная положительная величина (отличная от нуля), которая может быть обрабтана реализаций Бейсика.

Машинный максимум - положительное ИЛИ отрицательное значение макси мального «ела. которое может быть обрабтано панной реализацией Бейсика.

Переполнение - I» отношению к арифметическим операциям возникновение условия, когда попытка выполнить действие приводит к результату, превышающему по абсолютной величине машинный максимум.

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

"Зона вывода - непрерывная последовательность знакомест в строке вывода, которая может содержать элемент вывода.

Округление - процесс получения числа меньшей точности' из числа большей точности С учетом знамения опущенной части числа.

Уссчеиие - процесс получения числа меньшей точности путай отбрасывания ненужных младших цифр числа больше* точности.

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

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

ПРИЛОЖЕНИЕ 3 Справочное

ТАБЛИЦА ВЫПОЛНЕНИЯ ЛОГИЧЕСКИХ ОПЕРАЦИЙ

X

Y

X AND Y

X OR Y

XXOR Y

X EQU Y

X IMP Y

(1

0

0

0

0

1

1

0

1

0

1

I

0

1

1

0

0 .

1

I

0

0

1

1

1

1

0

1

1

Операция NOT выполняется по правилам.

если X = I. то NOT X - 0 и. если X ' 0. го NOT X « 1.

Страница 70

ГОСТ 27787-88 С 68

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

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

С.А. Христочевский (руководитель гемы), канд. фю.-мат. наук; МЛ. Гутккн; НА. Кучура; ВА. Ермолов; А.В. Лнберов; АЛ-Александров

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

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

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

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

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

Обо кич «мм* НТД, и» который аш    Номер пу»кт.

3.1.1

ГОСТ 27465-87

7. Переиздание (апрель 1992 г.)

Страница 71

СОДЬРЖЛНИЬ

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

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

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

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

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

3.3 Константы.................................... ■ ^

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

3,5 Выражения.....................................№

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

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

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

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

3.10.    Операторы цикла ................................. 1?

3.11.    Операюрвывода.................................19

3.12.    Оператор-ввода ....................................

3.13.    Хранение и рассылка данных    в программе..................*4

3.14.    Объявлении массивов............................... »

3.15.    Оператор примечания...............................27

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

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

4.1.    Уровень I....................................... 28

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

4.1.2.    Программы................................ 28

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

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

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

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

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

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

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

4.1.10.    Оператор-|{к>рмагироваи1юг»выпода................. 37

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

4.1.12.    Оисрагорввода.............................. 39

4.1.13.    Огн-раторввода-текста.......................... 39

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

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

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

4.1.17.    Оператор заглот-во пера тинную-память...............4]

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

4.2.    Уровень 2.......................................43

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

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

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

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

4.2.5.    Цикл пока...............................44

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

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

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

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

5.1.3.    Оператору станов ютветж точим ...................47

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

Страница 72

5.1 .S. Иэображение окружностей, дуг и аллипая.............48

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

5.1.7.    Функция-опрсдсления-ц»ет»точки.................. 50

5.2.    Уровень 2....................................... 50

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

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

6.1.    Комаид^ииициализации.............................52

6.2.    Выпои текста программы........................... • 52

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

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

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

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

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

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

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

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

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

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

7.1.    Опсрято^откршняфайла....................................................57

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

7.3.    Опервюр-чте){ил-с>магтстой-ленгы......................................58

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

7.5.    Опсрвтор-эакрытия-файла..................................................59

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

8.1.    Уровень!....................................59

8.1.1.    Операгор-открьгтия-фаЯла......................59

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

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

в-фаЯ;....................................................60

8.1.4.    Операторы чгения-с'матнигиого-ииска и чи-ыия- iL'KCta-c-MUi.

ни гаого- диска.............................61

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

8.2.    Уровень 2................................................................62

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

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

•8.2.3. Оператор-чтения-текста.....•..................63

8.2.4.    Оператор-загж си-текста..........................................6)

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

8.2.6. Функиин-преобраэовяиия-ааиных..................... . . . м

Приложение 1. Метод синтаксической спецификации................66

Приложение 2. Термины и их пояснения.....;......................67

Приложение 3. Таблица выполнения ло1ических операций.............67

Информационные данные . , .  ...................... ..    68

Страница 73

Редактор В.М. Лы сен хина Технический редактор О.И. Власова Корректор В.Ф. Ммютина

Подл, в печ. 27.04,92. Формат 60X90l/i6- Ьуьяга офсетная Гарнитур* Пресс-Рооаан. Лечить офсетная. Усл.-аеч. л. 4.5. Уел. кр.-отт. 4,63. Уч.-юд. л. 5.12. Тираж 2125 экэ.

Зак. 1265

Ордена "Знак Почет" Издательство стандартов. 123557Д Москва. ГСП, НовопрсснсяскнЯ пер.. 3 Набрано в Издательстве стандартов ка НПУ Калужски типограф ка стандартов. Калуга, ул. Московская, 256.