Оператор вывода чисел
Оператор вывода чисел задает вывод значений целых и действительных выражений и массивов, перечисленных в списке объектов вывода. Все числа выводятся в одном и том же формате, определяемом вторым фактическим параметром оператора.
Е Синтаксис числового формата
<повторитель> :: = <целое без знака>| <пусто>
<В—часть> : : = <повторитель>В| <В—часть> <повтори- тель>В| <пусто>
<D — часть> : : = <повторитель>В/ <D— часть> <повто- ритель>Б| <D — часть><В—часть>| <пусто>
<знаковая часть> :: = + | — | <пусто>
■Спелый формат> :: = <В — часть> <знаковая часть> <D — часть>
Сдробный формат> : : = <целый формат> | <целый фор.мат>. <D — часть>
<экспоненциалыный формат> : : = «Сдробный формат> 10<це- лый формат>
<числовой формат> : : = ‘E’|'Y’|‘Z’|‘Z1’|‘ZT|
‘ Е<экопоненциальный формат>’(
*¥<дробный формат>’
‘2<дробный формат>’
Семантика числового формата. Числовой формат определяет вид, в котором выводятся числа (в десятичной системе счисления). Числа перед выводом округляются. Буква D означает десятичную цифру, буква В — пропуск (интервал) между выводимыми символами, точка—десятичную точку.
Буква Z означает замену незначащих нулей пропусками (так называемое подавление нулей).
Если при этом перед десятичной точкой нет значащих цифр (пли число, выводимое в целом формате, оказывается равным нулю), то сохраняется один пуль. Знак помещается на место последнего подавленного пуля выводимого числа. Буква Y означает вывод без подавления пулей, то есть вывод такого количества цифр, какое указано в формате. Буква Е означает вывод числа в экспоненциальной форме с отличной от нуля первой цифрой. Знак + о знача- ет вывод знака числа во всех случаях, знак — означает вывод знака только у отрицательных чисел.
Если знаковая часть пустая, то знак не печатается (выводится абсолютное значение числа). Конструкция <повторитель> В или <повторитель> D эквивалентна соответствующее число раз повторенной букве В или D. Так, например, 5В эквивалентно ВВВВВ, 4D.3D эквивалентно DDDD.DDD. Числовой формат вида ‘Е’, ‘Y’, ‘Z’. ‘YI’ или ‘Z’ означает вывод чисел в стандартной форме. Для различных машин стандартные формы могут быть разными; они зависят от особенностей соответствующих выводных устройств. Буквы Z, Y и Е в числовых форматах ‘Z’, ‘Y’ и ‘Е’ имеют указанный выше смысл. ‘YE означает вывод целых чисел в стандартной форме без подавления нулей, ‘ZI’ означает вывод целых чисел в стандартной форме с подавлением нулей.
Оператор вывода логических значении
Оператор вывода логических значений задает вывод значений булевских выражений и массивов, перечисленных в списке объектов вывода. Все значения выдаются в одном и том же формате, определяемом вторым фактическим параметром оператора.
Синтаксис логического формата
<F — часть> :: ==5F| F
<логический формат>:: =‘L’/‘L <В - - часть> <F - - часть>
<В — часть>’
Семантика логического формата. 5F означает вывод значения логического выражения в виде FALSE или TRUE, причем при выводе TRUE после этого слова делается один пропуск. F означает вывод значения логического выражения, соответственно, в виде F или Т. ‘L’ означает вывод в стандартной форме.
Оператор вывода текста
Этот оператор задает вывод текстов, определяемых списком текстовых объектов вывода. Если текстовый объект есть строка, то выдается эта строка без внешних кавычек. Если текстовый объект есть переметшая с индексами, то она указывает на элемент массива, нанимая с которого располагаются целые числа, соответствующие последовательным символам выводимой строки в смысле процедурі,: TEXT (см. и. 6.6). Предполагаетс я, что указанный элемент массив,,а соответствует тг к рыгающей кавычке, которая не будет выведена. Конец ст,’Ок;і определяется элементом массива, соответствующим закрызаюид'й кавычке, которая также не выводится. Элементы массива, имеющие значение -нуль, исключаются из рассмотрения, то есть пуль трактуется как отсутствие информации. Отличные от нуля значения, не предусмотренные в таблице из п. 6.6.2, трактуются как ошибочные. В выводимых строках двоеточие используется только для изменения смысла следующего за ним символа. А именно,
комбинация:В задает пробел при выводе
комбинация:/задает переход к началу следующей строки
комбинация: Xзадает переход к началу следующей страницы комбинация:! задает вывод символа' комбинация^ задает вывод символа’ комбинация^ задает вывод символа:
Оператор размещения
Синтаксис формата размещения.
<знак размещения> :: =В | /1X
<указатель размещения^*:: = <повторитель> <знак разме- щення> J <указатель размещения> <повторитель> <знак размещения >
<формат размещения<:: =‘<указатель размещения>’
Семантика. В формате размещения знак В задает пробел, знак/задает переход к началу следующей строки, знак X задает переход к началу следующей страницы.
Все эти операции выполняются в том порядке, как они заданы в формате (слева направо). Если перед какой-либо операцией помещен повторитель, то она выполняется соответствующее количество раз.
Третий фактический параметр оператора размещения (если он имеется) определяет число повторений всей совокупности операций, задаваемых форматом размещения.
‘3.4. Опер а т о р р а з м е т к и
Синтаксис
<оператор разметки>:: =MARG (<канал>, <арифметиче- ское выражение>, <арифметическое выражение^*, <арифметическое выражение>, <арифметическое выражение^*, <арифметическое выражение>, <арифметическое выраже- i!iie>)| MARG (<канал>, <арифметическое выражение^*, <арифметическое выражение>, <арифметическое выраже- пие>, < арифметическое выражение>, <арифметическое выражение^*, <арифметическое выражение^*, Аарифметп- ческое выражение>)| LMARG(<i<aiiaB>, <переменная>, <перемениая>, <перемен'ная>, <переменная>, <пере- меппая>, <переменная>)
Семантика
С каждым каналом вывода связан некоторый стандарт разметки выводимой информации (для каждой машины свой). Эта раз- метка характеризуется шестью величинами': размер левого поля, длина печатаемой строки, размер правого поля, размер верхнег
о
поля, число печатаемых на одной странице строк, размер 'нижнего поля (см. чертеж). При выполнении оператора LMARG перечисленным в нем переменным присваиваются значения указанных выше шести величин в том порядке, в каком они выписаны. Для изменения указанных выше стандартных размеров слу
ж
ит оператор процедуры MARG. После выполнения этого оператора шесть размеров, определяющих вид страницы, делаются равными значениям фактических параметров со второго по седьмой в таком же порядке, как и для процедуры LMARG.
Восьмой фактический параметр процедуры MARG задает начальное значение номера страницы. Если этого параметра нет, то нумерация страниц начинается с 1.
6.5. Процедуры ввода
Синтаксис
<оператор ввода> ::= INPUT (<канал>, <сппсок объектов ввода>)
Ссписок объектов ввода> : : =<объект ввода>| <список объектов ввода>, <объект ввода>
<объект ввода> : : =<идентификатор массива> ] Спростая пе- ременная> I <переменпая с ипдексом>
Семантика операторов ввода
Операторы ввода задают ввод числовых, логических или текстовых данных через канал, номер которого определяется первым фактическим параметром. Форма, в которой должны быть подготовлены эти данные, определяется в п. 6.5.3. Каждому объекту ввода должна соответствовать одна группа данных (см. п. 6.5.3). Простым переменным и идентификаторам массивов соответствуют группы числовых или логических данных, переменным с индексами соответствуют группы текстовых данных. Если количество данных в группе превосходит динамически определяемые описаниями размеры объектов ввода, то результат выполнения оператора ввода не определен.
При вводе текста последовательным элементам массива, начиная с указанного в объекте ввода, присваиваются целые значения, соответствующие последовательным символам вводимой строки (включая внешние кавычки) в смысле процедуры TEXT (см. п. 6.6).
Группы данных
<элемент числового ввода> :". = <ч,исло> / <"комментарий >
<число>
<список элементов числового ввода> : : = <элемент числового ввода> I <список элементов числового ввода>, <элемент числового ввода>
<группа числовых данных> : : = <список элементов числового ввода >;
<элемент логического ввода> : : = <логическое значение> | <комментарий><логическое значение>
<список элементов логического ввода> : : = <элемент логического ввода> I <список элементов логического ввода>,<эле- мент логического ввода>
Сгруппа логических данных> : : = <список элементов логического ввода >;
<открытый комментарий>:: = <буква> / <открытый коммен- тар.ий><любой символ, кроме символа «:», символа « = » или «: = »>
<коммеитарий> : : = <открытый комментарий> : | <открытый комментарий> = I <открытый комментарий> : =
<группа текстовых данных> : : = <строка>
Процедура TEXT
Синтаксис
<оператор текст> : : =ТЕХТ (<строка>, <перемеппая с индексами^
Семантика
Процедура 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 |
|
|