ify"> {P} (4,4,5,5,0),
{T} (6,0,0,0,0),
{Z} (6,0,0,0,0)); ps: array [1.6,1.5] of byte = (
{Ц Б + -}
{S} (0,1,0,0,0),
{Q} (1,1,0,0,0),
{R} (0,2,0,0,0),
{P} (2,2,4,3,0),
{T} (5,0,0,0,0),
{Z} (5,0,0,0,0));: set of char = [0 ". '9 '];: Set of char = [' A '. 'Z', 'a'. 'Z'];: boolean = true; s: string;, q, oq, ns: byte;: longint;, p2: string;: shortint; (input, 'input. Txt'); (output, 'output. txt '); (input); (output); (s);: =''; p2: =''; cons: = 0; (s); i: = 1; q: = 1; (i <= byte (s [0])) and ee do: = q; s [i] in num then ns: = 1 else {} s [i] in sym then ns: = 2 else {Визначення} s [i] = ' + 'then ns: = 3 else {номери} s [i] =' - 'then ns: = 4 else {} s [i] =' = 'then ns: = 5 else ns: = 0; {символу} ps [q, ns] of
: p1: = p1 + s [i];
: p2: = p2 + s [i];
: sign: = -1;
: sign: = +1;
: cons: = cons * 10 + byte (s [i]) - 48;;: = ms [q, ns]; ns = 0 then: = false; (1); elseq = 0 then: = false; (2);; (i);; ee thenq = 6 then writeln ('0 '# 13 # 10'p1 =', p1, 'p2 =', p2, 'k =', sign * cons) writeln (3); (input); (output);.
Тексти авторських рішень лабораторної роботи № 3.
Варіант № 1:
const cc = 6; {Кількість символів в граматиці}
a: array [1. cc, 1. cc] of char = ({Відносини між символами}
{Z} {G} {N} {,} {ц} {-}
{Z} ('', '', '', '=', '', ''),
{G} ('', '', '=', '', '<', ''),
{N} ('', '', '', '>', '', ''),
{,} ('', '', '>', '', '>', ''),
{ц} ('', '', '', '>', '', '='),
{-} ('', '', '=', '', '<', ''));
sp: byte = 0; {Покажчик вершини стека}
i: byte = 1;: boolean = true; = 5; {Кількість правил}
Laws: array [1. LawCount, 1.2] of string [3] = (
('Z', 'N'),
('Z', 'GN'),
('G', 'Z,'),
('N', 'ц'),
('N', 'ц-N')); s: string; {Пропозиція для розбору}