а иначе

  • вызывается процедура ошибка значения исправлена;

  • если она вырабатывает ложь, V выводится с помощью вывод и вызы­вается не определено;

  • подготавливается и осуществляется вставка из Р.

ее) Значение вводится в имя N с помощью шаблона Р, трафарет Q ко­торого был выдан трафаретом-логического-выбора С, следующим образом:

  • подготавливается и осуществляется вставка из Q;

  • по очереди подготавливается и отыскивается каждый из литералов, вы­даваемых составляющими литералами из С;

Если вид этого N специфицируется посредством имя лог и первый (второй) литерал окажется искомым, а иначе

  • вызывается процедура ошибка значения исправлена;

  • если она вырабатывает ложь, вызывается не определено;

  • подготавливается и осуществляется вставка из Р'Г

10.3.4.8.2. Семантика соответствует ГОСТ 27974.10.3.4.9. Трафареты форматного соответствуют ГОСТ 27974.

10 3.4.10. Трафареты бесформатного.

  1. Синтаксис.

Гиперправила a, b, с, d соответствуют ГОСТ 27974.

Таа) Значение V выводится с помощью шаблона Р, трафарет Q которо­го был выдан трафаретом-бесформатного G, следующим образом:

  1. Р подготавливается;

  • осуществляется вставка из Q;

Если Q не параметризован (т. е. не содержит задания-разрядности), то V вы­водится с помощью вывод;

а иначе, если вид этого V специфицируется посредством Д цел или Д вещ, то

  • если Q содержит один (два, три) параметр (а, ов), V преобразуется в строку с помощью целое (фикс, плав) ;

  • эта строка записывается с помощью вывод; а иначе

  • вызывается процедура ошибка значения исправлена;

  • если она вырабатывает ложь, V выводится с помощью вывод и вызы­вается не определено;

  • осуществляется вставка из Р.

bb) Разъяснение соответствует ГОСТ 27974.

  1. Семантика соответствует ГОСТ 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) все кц конец;

  1. проц ^ввести вставку = (имя файл f, [ ] подставка пв) пуст: начало настроить на чтение (f);

для к до вегр пв

ЦК

выб стр из пв [к] в

(лит а): разместить (f, повт из пв [к], а, истина),

(строк s):

(лит с;

до повт из пв [к]

ЦК

для і до вегр S

цк проверить позицию (f); ввести литеру (f, с);

(Н S [І]

(-, ошибка литеры исправлена (f, c: = s [і])

I не определено);

настроить на чтение (f) )

кц

кц)

быв

кц

конец;

  1. проц?- разместить = (имя файл f, цел повт, лит а, лог чит) пуст): если а = ”х”то до повт цк вперед (f) кц инее а = ”у”то до повт цк назад (f) кц инее а = ”і”то до повт цк нов строчка (f) кц инее а = ”р” то до повт цк нов страница (f) кц инее а =”к” то уст номер литеры (f, повт) инее а = ”q’’

то до повт

ЦК

если ЧИТ

то лит с; проверить позицию (f); ввести литеру (f, с);

f пробел I

(•? ошибка литеры исправлена (f, с: = пробел)

1не определено); настроить на чтение (f))

иначе проверить позицию (f); вывести литеру (f, пробел) все

кц

все;

  1. Форматный вывод.

а) проц Ф вывод = (имя файл 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

  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.

  1. Форматный ввод.

а) процф ввод= (имя файл 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)