1. Оператор вывода чисел

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

  1. Е Синтаксис числового формата

<повторитель> :: = <целое без знака>| <пусто>

<В—часть> : : = <повторитель>В| <В—часть> <повтори- тель>В| <пусто>

<D — часть> : : = <повторитель>В/ <D— часть> <повто- ритель>Б| <D — часть><В—часть>| <пусто>

<знаковая часть> :: = + | — | <пусто>

■Спелый формат> :: = <В — часть> <знаковая часть> <D — часть>

Сдробный формат> : : = <целый формат> | <целый фор.мат>. <D — часть>

<экспоненциалыный формат> : : = «Сдробный формат> 10<це- лый формат>

<числовой формат> : : = ‘E’|'Y’|‘Z’|‘Z1’|‘ZT|

‘ Е<экопоненциальный формат>’(

*¥<дробный формат>’

‘2<дробный формат>’

  1. Семантика числового формата. Числовой формат определяет вид, в котором выводятся числа (в десятичной системе счисления). Числа перед выводом округляются. Буква D означает десятичную цифру, буква В — пропуск (интервал) между выводимыми символами, точка—десятичную точку.

Буква Z означает замену незначащих нулей пропусками (так называемое подавление нулей).

Если при этом перед десятичной точкой нет значащих цифр (пли число, выводимое в целом формате, оказывается равным нулю), то сохраняется один пуль. Знак помещается на место последнего по­давленного пуля выводимого числа. Буква Y означает вывод без подавления пулей, то есть вывод такого количества цифр, какое указано в формате. Буква Е означает вывод числа в экспоненци­альной форме с отличной от нуля первой цифрой. Знак + о знача- ет вывод знака числа во всех случаях, знак — означает вывод зна­ка только у отрицательных чисел.

Если знаковая часть пустая, то знак не печатается (выводится абсолютное значение числа). Конструкция <повторитель> В или <повторитель> D эквивалентна соответствующее число раз повто­ренной букве В или D. Так, например, 5В эквивалентно ВВВВВ, 4D.3D эквивалентно DDDD.DDD. Числовой формат вида ‘Е’, ‘Y’, ‘Z’. ‘YI’ или ‘Z’ означает вывод чисел в стандартной форме. Для различных машин стандартные формы могут быть разными; они за­висят от особенностей соответствующих выводных устройств. Бук­вы Z, Y и Е в числовых форматах ‘Z’, ‘Y’ и ‘Е’ имеют указанный выше смысл. ‘YE означает вывод целых чисел в стандартной фор­ме без подавления нулей, ‘ZI’ означает вывод целых чисел в стан­дартной форме с подавлением нулей.

  1. Оператор вывода логических значении

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

  1. Синтаксис логического формата

<F — часть> :: ==5F| F

<логический формат>:: =‘L’/‘L <В - - часть> <F - - часть>

<В — часть>’

    1. Семантика логического формата. 5F озна­чает вывод значения логического выражения в виде FALSE или TRUE, причем при выводе TRUE после этого слова делается один пропуск. F означает вывод значения логического выражения, соот­ветственно, в виде F или Т. ‘L’ означает вывод в стандартной форме.

  1. Оператор вывода текста

Этот оператор задает вывод текстов, определяемых списком тек­стовых объектов вывода. Если текстовый объект есть строка, то вы­дается эта строка без внешних кавычек. Если текстовый объект есть переметшая с индексами, то она указывает на элемент массива, нанимая с которого располагаются целые числа, соответствующие последовательным символам выводимой строки в смысле процеду­рі,: TEXT (см. и. 6.6). Предполагаетс я, что указанный элемент мас­сив,,а соответствует тг к рыгающей кавычке, которая не будет выве­дена. Конец ст,’Ок;і определяется элементом массива, соответствую­щим закрызаюид'й кавычке, которая также не выводится. Элемен­ты массива, имеющие значение -нуль, исключаются из рассмотрения, то есть пуль трактуется как отсутствие информации. Отличные от нуля значения, не предусмотренные в таблице из п. 6.6.2, трактуют­ся как ошибочные. В выводимых строках двоеточие используется только для изменения смысла следующего за ним символа. А имен­но,

комбинация:В задает пробел при выводе

комбинация:/задает переход к началу следующей строки

комбинация: Xзадает переход к началу следующей страницы комбинация:! задает вывод символа' комбинация^ задает вывод символа’ комбинация^ задает вывод символа:

  1. Оператор размещения

    1. Синтаксис формата размещения.

<знак размещения> :: =В | /1X

<указатель размещения^*:: = <повторитель> <знак разме- щення> J <указатель размещения> <повторитель> <знак размещения >

<формат размещения<:: =‘<указатель размещения>’

  1. Семантика. В формате размещения знак В задает пробел, знак/задает переход к началу следующей строки, знак X за­дает переход к началу следующей страницы.

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

Третий фактический параметр оператора размещения (если он имеется) определяет число повторений всей совокупности операций, задаваемых форматом размещения.

‘3.4. Опер а т о р р а з м е т к и

  1. Синтаксис

<оператор разметки>:: =MARG (<канал>, <арифметиче- ское выражение>, <арифметическое выражение^*, <ариф­метическое выражение>, <арифметическое выражение^*, <арифметическое выражение>, <арифметическое выраже- i!iie>)| MARG (<канал>, <арифметическое выражение^*, <арифметическое выражение>, <арифметическое выраже- пие>, < арифметическое выражение>, <арифметическое выражение^*, <арифметическое выражение^*, Аарифметп- ческое выражение>)| LMARG(<i<aiiaB>, <переменная>, <перемениая>, <перемен'ная>, <переменная>, <пере- меппая>, <переменная>)

  1. Семантика

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

о

поля, число печатаемых на одной странице строк, размер 'нижнего поля (см. чертеж). При выполнении оператора LMARG перечислен­ным в нем переменным присваиваются значения указанных выше шести величин в том порядке, в каком они выписаны. Для измене­ния указанных выше стан­дартных размеров слу­

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

Восьмой фактический параметр процедуры MARG задает началь­ное значение номера страницы. Если этого параметра нет, то ну­мерация страниц начинается с 1.

6.5. Процедуры ввода

  1. Синтаксис

<оператор ввода> ::= INPUT (<канал>, <сппсок объектов ввода>)

Ссписок объектов ввода> : : =<объект ввода>| <список объ­ектов ввода>, <объект ввода>

<объект ввода> : : =<идентификатор массива> ] Спростая пе- ременная> I <переменпая с ипдексом>

  1. Семантика операторов ввода

Операторы ввода задают ввод числовых, логических или текс­товых данных через канал, номер которого определяется первым фактическим параметром. Форма, в которой должны быть подготов­лены эти данные, определяется в п. 6.5.3. Каждому объекту ввода должна соответствовать одна группа данных (см. п. 6.5.3). Простым переменным и идентификаторам массивов соответствуют группы числовых или логических данных, переменным с индексами соот­ветствуют группы текстовых данных. Если количество данных в группе превосходит динамически определяемые описаниями раз­меры объектов ввода, то результат выполнения оператора ввода не определен.

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

  1. Группы данных

<элемент числового ввода> :". = <ч,исло> / <"комментарий >

<число>

<список элементов числового ввода> : : = <элемент числового ввода> I <список элементов числового ввода>, <элемент числового ввода>

<группа числовых данных> : : = <список элементов числового ввода >;

<элемент логического ввода> : : = <логическое значение> | <комментарий><логическое значение>

<список элементов логического ввода> : : = <элемент логиче­ского ввода> I <список элементов логического ввода>,<эле- мент логического ввода>

Сгруппа логических данных> : : = <список элементов логичес­кого ввода >;

<открытый комментарий>:: = <буква> / <открытый коммен- тар.ий><любой символ, кроме символа «:», символа « = » или «: = »>

<коммеитарий> : : = <открытый комментарий> : | <открытый комментарий> = I <открытый комментарий> : =

<группа текстовых данных> : : = <строка>

  1. Процедура TEXT

    1. Синтаксис

<оператор текст> : : =ТЕХТ (<строка>, <перемеппая с ин­дексами^

  1. Семантика

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

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

А

1

К

И

и

21

4

84

X

136

Л

146

В

2

L

12

V

22

5

85

/

137

V

147

С

3

М

13

W

23

6

86

А

138

Л

148

I)

4

N

14

X

24

7

87


139

4

149

Е

5

О

15

Y

25

8

88


ПО

go to

200

F

6

Р

16

Z

26

9

89

-

141

if

201

G

7

Q

17

0

80

true

130


142

then

202

II

8

R

18

1

81

False

131


143

else

203

I

9

S

19

2

82

134


144

For

201

J

10

Т

20

3

83


135


145

do

205


210

comment

220

integer

230

211

(

221

real

231

10

212

)

222

array

232

-

213

I

223

switch

233

>

214

J

224

procedure

234

: =

215


225

string

235


216

*

226

label

236

step

217

begin

227

value

237

until

218

end

228



while

219

Boolean

229