а иначе
вызывается процедура ошибка значения исправлена;
если она вырабатывает ложь, V выводится с помощью вывод и вызывается не определено;
подготавливается и осуществляется вставка из Р.
ее) Значение вводится в имя N с помощью шаблона Р, трафарет Q которого был выдан трафаретом-логического-выбора С, следующим образом:
подготавливается и осуществляется вставка из Q;
по очереди подготавливается и отыскивается каждый из литералов, выдаваемых составляющими литералами из С;
Если вид этого N специфицируется посредством имя лог и первый (второй) литерал окажется искомым, а иначе
вызывается процедура ошибка значения исправлена;
если она вырабатывает ложь, вызывается не определено;
подготавливается и осуществляется вставка из Р'Г
10.3.4.8.2. Семантика соответствует ГОСТ 27974.10.3.4.9. Трафареты форматного соответствуют ГОСТ 27974.
10 3.4.10. Трафареты бесформатного.
Синтаксис.
Гиперправила a, b, с, d соответствуют ГОСТ 27974.
Таа) Значение V выводится с помощью шаблона Р, трафарет Q которого был выдан трафаретом-бесформатного G, следующим образом:
Р подготавливается;
осуществляется вставка из Q;
Если Q не параметризован (т. е. не содержит задания-разрядности), то V выводится с помощью вывод;
а иначе, если вид этого V специфицируется посредством Д цел или Д вещ, то
если Q содержит один (два, три) параметр (а, ов), V преобразуется в строку с помощью целое (фикс, плав) ;
эта строка записывается с помощью вывод; а иначе
вызывается процедура ошибка значения исправлена;
если она вырабатывает ложь, V выводится с помощью вывод и вызывается не определено;
осуществляется вставка из Р.
bb) Разъяснение соответствует ГОСТ 27974.
Семантика соответствует ГОСТ 27974.
10.3.5. Форматный обмен
Описания а, с, d, е, f, g, j, к соответствуют ГОСТ 27974.
b) проц Zвзять след X ующий /Г шаблон = (имя файл f, лог чит fl ать fl, имя шаблон шаблон) пуст;
начало
лог есть шаблон: =ложь, формат окончен: =ложь;
пока -> есть шаблон
цк если ук fl азатель fl фор fl мата / из f = 0, то если формат окончен
то не определено
инее -ч конец формата исправлен (f)
то имя цел (укфор из f) : = 1;
утн из (F из формат из f) [1]: = 1;
счет из (F из формат из f) [ 1 ] : -1;
иначе фбрмат окончен : = истина все
иначе
имя цел укфор = укфор из f;
имя подв [ ] кадр алеф = F из формат из f;
выб (н из алеф [укфор]) [утн из алеф [укфор] ] в (пакет пак): ([1 : вегр (в 1 из пак) ] подвставка пв;
оук из алеф [удк из пак ]:= укфор; укфор: = пропуск;
(подготовить вставку (в1 из пак, пв, счет из алеф [удк из пак] : = повт из пак);
(алеф : : F из формат из f I не определено) ;
(чит I ввести вставку (f, пв)і вывести вставку (f, пв);
утн из алеф [удк из пак]: =
(счет из алеф [удк из пак] > 0 І0
Іесть шаблон: = истина; шаблон: = (пустое, ());
вегр низ алеф [удк из пак]);
укфор: = удк из пак),
(шаблон шабл): (есть шаблон: = истина; шаблон; шаблон: = шабл)
быв;
пока
(укфор і= 0 I утн из алеф [укфор] = вегр н из алеф [укфор] ложь)
цк если (счет из алеф [укфор] — : = 1) <0, то
если (укфор: =оук из алеф [укфор]) /= 0 то
вставка добав =
выб (н из алеф [укфор]) [утн из алеф [укфор] ] <■.
(пакет пак):
(оук из алеф [удк из пак]: і=0; в2 из пак),
(шаблон шабл):
выб траф из шабл в
(трафор траф):
(цел к: = укфор;
пока оук из алеф [k] f= укфор цк к + : = 1 кц;
алеф:=алеф [: к — 1]; в из шабл) быв быв;
цел m = вегр в из шаблон, п = вегр добав;
[1: пт + п] ст (проц цел повт, об (строк, лит) стр)с;
с [1: ш]: = в из шаблон; с [т + 1: т + п] : = добав;
в из шаблон: = с все
иначе утн из алеф [укфор]: = 0 все кц;
(укфор I утн из алеф [укфор] + : = 1) все кц конец;
проц ^ввести вставку = (имя файл f, [ ] подставка пв) пуст: начало настроить на чтение (f);
для к до вегр пв
ЦК
выб стр из пв [к] в
(лит а): разместить (f, повт из пв [к], а, истина),
(строк s):
(лит с;
до повт из пв [к]
ЦК
для і до вегр S
цк проверить позицию (f); ввести литеру (f, с);
(Н S [І]
(-, ошибка литеры исправлена (f, c: = s [і])
I не определено);
настроить на чтение (f) )
кц
кц)
быв
кц
конец;
проц?- разместить = (имя файл f, цел повт, лит а, лог чит) пуст): если а = ”х”то до повт цк вперед (f) кц инее а = ”у”то до повт цк назад (f) кц инее а = ”і”то до повт цк нов строчка (f) кц инее а = ”р” то до повт цк нов страница (f) кц инее а =”к” то уст номер литеры (f, повт) инее а = ”q’’
то до повт
ЦК
если ЧИТ
то лит с; проверить позицию (f); ввести литеру (f, с);
(с f пробел I
(•? ошибка литеры исправлена (f, с: = пробел)
1не определено); настроить на чтение (f))
иначе проверить позицию (f); вывести литеру (f, пробел) все
кц
все;
Форматный вывод.
а) проц Ф вывод = (имя файл f, [ ] об (выводимое, формат)х) пуст: если открыт из f то для к до вегр х
цк выб настроить на запись (f); настроить на литерное (f);
х [к] в
(формат формат): присоединить формат (f, формат),
(выводимое выв): * <
начало цел j: =0
шаблон шаблон, [] провывод у стройвывод выв;
пока (] + : = !) < вегр у
цк лог не конч: =ложь;
взять след шаблон (f, ложь, шаблон);
настроить на запись (f);
[1: вегр (в из шаблон) ] подвставка подвст; выб траф из шаблон в (трафарет трафарет):
начало цел повт, ук fi азатель рам jf ок = 1;
[1:вегр (рамки.из трафарет)] подрамка подрамки;
( подготовить, рамки (рамки из трафарет, подрамки) , подготовить вставку (в из шаблон, подвеет));
строк s;
on? = (строк s) лог:
fl истина, если слёдущий маркер есть один из элементов 's', а иначе ложь £
если украм > вегр подрамки то ложь
иначе подрамка пр = подрамки [украм] ;
повт: =повт из пр;
если литера в строке (марк из пр, лок цел, s), то украм + : = 1; истина иначе ложь
все все; оп? = (лит с) лог; ?строк (с); проц цел трафарет = (имя лог образец знака) цел:
(цел 1: =0;
пока? ”zuv” цк (повт> 0 И + :=повт) кц;
образец знака: = ? ” + — ”;
пока ? ”zd” цк (повт >0 11 + : =повт) кц; 1);
проц ред активность Д цел = (Д цел і) пуст: (лог образец знака;
цел 1: =цел трафарет (образец знака);
строк t = предст целого (абс і, 1);
если литера в строке (литераошибки лок цел, t) V
1 != 0 V -і юбразец знака Д і < Д 0 то не конч: = истина иначе t прип s;
(1- вегр t) X ”0” прип s;
(образец знака І (і < ДО I ” I ”+” ) прип s) все)
проц ред Д вещ = (Д вещ в) пуст:.
(цел Ь: = 0, а: =0, пор: =0,Д вещ у: =абс в, лог знак 1, строк точка =” ”1
Ь: =цел трафарет (знак 1)*;
(? Iа: = цел трафарет (лок лог); точка: = ”. ”);
если ? ”|е ”то Д нормализовать (у, Ь, а, пор);
ред цел (пор);
io прип s
все;
строк t = предст рационального (у, b + а + (а 11 10), а) ;
если литера в строке (литера ошибки, лок цел, t) V
а + b = 0'V знак 1 Л г < Д 0
то не конч: =истина
иначе t [:b] + точка + t [Ь + 2:] прип s;
(Ь + а + (а =/=0 11 10) — вегр t) X ”0” прип s;
(знак 1 І (в <Д0 I ” I ”+” ) прип s)
все)
проц ред Д компл = (Д компл дк) пуст:
пока ? ” цк украм + : = 1 кц; ред Д вещ (мч дк) ;
"1” прип s; украм: = 1; ред Д вещ (вч дк))
4- проц ред Д бит = (Д бит дб, цел основание) пуст:
(Д цел п: = абс дб; ? ”г” ;
цел 1: = цел трафарет (лок лог);
пока литеру в цифру (С (п мод У основание)) прип s;
п -+: =У основание; п ^Д 0
цк пропуск кц;
если вегр s < 1
то (1- вегр s) Х”0” прип s
иначе не конч: =истина
все)
проц счет 4 чик $ лит /4 ер 4 ~ цел:
(цел 1: =0;
пока ? ”а” ЦК (повт >011+:/? = повт) кц; 1) ;
выб тип из трафарет в
/4 целое 4
(У Ш 1
< (Д цел і) : ред Д цел (і) >
I не конч: = истина),
0 вещественное ф
(у Ш I
< (Д вещ в): ред Д вещ (в) >,
< (Д цел ц): ред Д вещ (ц) >,
1не конч: = истина),
$ логическое
(у UI і
(лег b) : s: = (b (даI нет)
I не конч: - истина),
$ комплексное /4
(у Bl і
(Д компл дк) : ред Д компл (дк)
<£ (Д вещ дв): ред Д вещ (дв) />,
f (Д цел дц) : ред Д вещ (дц) /=•
Іне конч: =истцна),
rf строковое
(у Ш J
(лит с): (счет лит = 1 I s : = с I не конч: =истина).
( [ j лит t):
(счет лит =вегр t — нигр t + 1
=t [cl]
Іне конч: = истина)'
Іне конч: = истина) либо
i/t битовое $
(у U] I
*£(Д бит дб): ред Д бит (дб, тип из трафарет-4) Іне конч: = истина)
быв: если , не конч то ред строку (f, s, подрамки) все
конец,
(травыб выбор): начало
[1: вегр (в из выбор) ] подвставка пв;
подготовить вставку (в из выбор, пв) ;
вывести вставку (f, пв);
цел ] =
выб тип из выбор в
логическое 0
(у [j] 1
(лог b) : (b I 1 I 2)
I не конч: =истина; пропуск), целое
(у”Ш I
(цел і) : і
Іне конч: = истина; пропуск) быв;
если -. не конч то
если 1 > вегр (стр из выбор) V К О
то не конч: = истина
иначе
[1: вегр ((стр из выбор) [1] ) ] подвставка пвс; подготовить вставку ((стр из выбор) [1], пвс); вывести вставку (f, пвс)
все
все;
подготовить вставку (в из шаблон, подвст) конец, (трафор трафор): начало
выполнить трафор (f, трафор, ложь) ;
для і до вегр подвст цк подвст [і]: = (0, ” ”) кц;
j-: = l конец, (трабесф трабесф) : начало
[1: вегр (в из трабесф) ] подвставка пв;
[ ] проц цел спец = спец из трабесф:
цел п -вегр спец: [ 1 : п] цел s;
(подготовить вставку (в из трабесф, пв), (подготовить вставку (в из шаблон, подвст), s: = (n I спец [1], (спец [1], спец [2]), (спец [1], спец [1], спец [3]) <() )): вывести вставку (f, пв): если п =0 то вывод (f, у [j])
иначе
число yj =
(у [j ] I < (Д цел і) : і > , <t (Д вещ в): в >
1не конч: = истина; пропуск); если—’ не конч то выб п в
вывод (f, целое (yj, S [1] )),
вывод (f, фикс (yj, S [1] , S [2])),
вывод (f, плав (yj, s [1], s [2], s [3] )) быв
все все конец, (пуст):
(j--=l;
подготовить вставку (в из шаблон, подвст)) быв;
если не конч
то настроить на запись (f);
ошибка значения исправлена (f) I вывод (f, у [j]);
не определено) все;
вывести вставку (f, подвст)
кц конец быв кц иначе не определено все;
проц (имя файл, [ ] об (выводимое, формат)) пуст put £ = ф вывод:
Ь) Описание соответствует ГОСТ 27974.
Форматный ввод.
а) процф ввод= (имя файл f, [ ] об (вводимое, формат) х) пуст: если открыт из f то для к до вегр X
цк выб настроить на чтение 1 f);
настроить на литерное (f); х (к] в
(формат формат) : присоединить формат (f, формат), (вводимое вв):
начало цел j: =0;
шаблон шаблон, [] проввод у-стройввод вв;
пока (j + : = 1) < вегр у
цк лог не конч: =ложь;
взять след шаблон (f, истина, шаблон);
настроить на чтение (f);
[1: вегр (в из шаблон) ] подвставка подаст;
выб траф из шаблон в
(трафарет трафарет): начало
[1: вегр (рамки из трафарет) ] подрамка подрамки;
(подготовить рамки (рамки из трафарет, подрамки), подготовить вставку (в из шаблон, подвставка));
строк s;
цел основание =
(тип из трафарет > 6 I тип из трафарет — 4 110);
сост строку (f, s, подрамки, основание);
выб тип из трафарет в
4 целое й
(У В] I
(имя Д цел идц):
не конч: = строку в Д цел (s, 10, идц) >
I не конч: = истина),
Й вещественное й
(у Ы і
(имя Д вещ идв) :
не конч: = “т строку в Д вещ (s, идв) >
I не конч: = истина),
Й логическое й
(У В] I (имя лог ил) :ил:=5=да
I не конч: = истина),
Й комплексное й
(у Bl I
< (имя Д компл идк) :
(цел і, лог b 1, b 2; литера в строке (”1 ”, i, s);
b 1: = строку в Д вещ (s [: і — 1 ], ивч из идк);
- ' Ь2: =строку в Двещ (s [і + 1:], имч из.идк);не конч: = -' (b 1Л Ь2) ) > 1не конч: = истина), уі строковое
(у DI і
(имя лит сс):
(ветре = 1 Iсс: =s [1] Iнеконч: = истина), (имя [ ] лит имл) :
(вегр имл-нигр имл + 1 =вегр s I имл [с 1]: = s
I не конч: = истина), (имя строк ис) : ис: = s Іне конч: = истина) либо yi битовые 0
(У [j] I
< (имя Д бит идб):
если Д цел і; строку в Д цел (s, основание, і) то идб: =бин і
иначе не конч: =истина все >
Іне конч: = истина) быв конец, (травыб выбор): начало
[1: вегр ( в из выбор) ] подвставка пв;
подготовить вставку (в из выбор, пв);
ввести вставку (f, пв);
цел с = с из тпоз из f, лит kk;
цел к: =0, лог есть: =ложь;
пока к < вегр (стр из выбор) Д есть цк к+ : = 1;
[1:вегр ((стр из выбор) [к]) ] подвставка пв; лог лог: = истина;
подготовить вставку ( (стр из выбор) [к], пв); строк s;
для і до вегр пв цк s плюспр
(стр из пв [і] I (строк ss) : ss) х повт из ПВ [і]
цк;
для jj др вегр s
пока лог: =логД строчка окончена (f)
Д -т лог файл окончен (f)
цк ввести литеру (f, kk); дог: =кк = s [jj] кц;
(-> (есть: = лог) I уст номер литеры (f, с) )
кц;
если і есть то не конч: = истина иначе
выб тип из выбор в логическое
(у Ш I
(имя цел b) : b: = k = 1
I не конч: = истина), целое і
(у Ш і
(имя цел i): i: =к
I не конч: = истина) быв все;
подготовить вставку (в из шаблон, подвст) конец,
(трафор трафор):
начало выполнить трафор (f, трафор, истина);
для і до вегр подв ст цк подвст [і] : = (0, ” ”) кц;
j~:=l конец, (трабесф трабесф):
([ 1: вегр (в из трабесф) ] подвставка п$;
(подготовить вставку (в из трабесф, пв), подготовить вставку (в из шаблон, подвст));
ввести вставку (f, пв);
ввод (f, у [j] )),
(пуст):
(j —«: = 1; подготовить вставку (в из шаблон, подвст))
быв;
если не конч
то настроить на чтение (f);
(—»ошибка значения исправлена (f) I не определено)
все;
ввести вставку (f, подвст)
кц конец быв кц иначе не определено все;
проц (имя файл, [ ] об (вводимое, формат)) пуст get f =ф ввод;
Ь) проц-^сост авить jt строку = (имя файл f,
имя строк s, [ ] подрамка пр, цел основание) пуст: начало
лог подав, п й одавляемые й н Й ули Й: = истина, есть знак: =ложь, есть пробел: = ложь, нет знака: =ложь, цел ук 4 азатель 4 зн d ака = 1, повт;
прио! =8;
оп! = (строк s, лит с) лит:
4 запрашивает некоторую литеру, содержащуюся в 's'; если читаемая литера не входит в 's', то вызывается процедура обработки события, соответствующая при ошибке литеры, с предлагаемым 's' d если лит к; проверить позицию (f); ввести литеру (f, к) литера в строке (к, лок цел, s)