Частина тексту файла (без зображень, графіків і формул):
Системне програмування. Розрахункова робота
Задано граматику
<cекція операторів> ::= begin <оператори> end
<oператори> ::= <оператор> | <оператори> ; <оператор>
< оператор > ::= < ціле > : < оператор без мітки > | < оператор без мітки >
< оператор без мітки > ::= < оператор присвоєння > | < умовний оператор >
| < оператор переходу > | < блок >
< оператор присвоєння > ::= < змінна > := < вираз >
<умовний оператор > ::= if < вираз > then < оператор > else < оператор >
if < вираз > then < оператор >
< оператор переходу > ::= goto < ціле >
< блок > ::= begin < оператори > end
< вираз > ::= < простий вираз > < відношення > < простий вираз >
| < простий вираз >
< відношення > ::= = | < | > | < > | <= | >=
< простий вираз > ::= < терм > | < простий вираз > + < терм >
| < простий вираз > − < терм > | < простий вираз > or < терм >
< терм > ::= < множник > | < терм > * < множник > | < терм > / < множник >
| < терм > and < множник >
< множник > ::= < змінна > | < ціле > | ( < вираз > ) | not < множник >
Постановка задачі:
із заданої граматики вибрати необхідну для заданого варіанту підмножину правил ;
знайти відношення передування;
виконати синтаксичний аналіз знизу догори; побудувати дерево виводу. При потреби внести зміни у граматику.
побудувати дерево з семантичною інформацією, побудувати тетради для заданого фрагменту. При потреби внести зміни у граматику.
Варіанти завдань
Варіант 1
Begin i:=1; j:=3; s:=1;
20: if ( i <= 5 ) and (j < 4) then
Begin s:=s*i*j; i:=i+1; j:=j+2; goto 20 end
End .
Варіант 2
Begin i:=1; j:=2; s:=3;
15: if ( i <= 3 ) and ( j <= 5 ) then
Begin s:=s+i+j; i:=i+1; j:=j+3; goto 15 end
End .
Варіант 3
Begin i:=1; s:=0;
5: if i <= 4 then
Begin s:=s+i; i:=i+1; ; goto 5 end;
x:=s+a*b
End .
Варіант 4
Begin x:=a; p:=x;
if ( p < > 0) or (a=0) then z:=b+c*d; else z:=b−c*d
End .
Варіант 5
Begin a:=10; b:=3;
if ( a <= x ) and ( b >= y ) then
begin c:=2*d; d:=2*b end else begin c:=a*3; d:=a*b end
End .
Варіант 6
Begin a:=3; b:=4; k:=8;
10: if ( a+b = 10 ) and (j < 4) then goto 20 else
Begin b:=b+1; k:=k+1; ; goto 10 end
20: z:=(a+3)*(b+k)
End .
Варіант 7
Begin x:=4; y:=2; p:=1; i:=1;
10: if i+p < 4 then
Begin i:=i+1; p:=p+x−i; goto 10 end
End .
Варіант 8
Begin y:=4; a:=1; c:=5; b:=3;
if a*2+c*3 >b then s:=y*(c+b) else s:=y*(a+b)
End .
Варіант 9
Begin x:=10; y:=30; z:=15;
1: if ( x+1 <= z ) and ( y > z ) then
Begin z:=z−x*2; x:=x+2; y:=y+1; goto 1 end
p:=x*y*z
End .
Варіант 10
Begin i:=1; j:=10; k:=30;
if ( i <k ) and ( j > i ) then
x:=(j−i)* (k−j); end x:=(i+j+k)*2;
End .
Варіант 11
Begin x:=4; y:=2; p:=1;
if i <4 then
Begin i:=i+1; p:=p+x−i end else p:=p*2+10;
End .
Варіант 12
Begin a:=1; b:=5; c:=20;
12: q:=a*b;
if q < 100 then begin a:=a+1; b:=b*2; goto 12 end
End .
Варіант 13
Begin i:=1; j:=25;
20: k:=(i+j)/2; s:=0;
if k < j then begin s:=s+i; i:=k; goto 20 end
End .
Варіант 14
Begin i:=2; j:=3; p:=1;
if (i <10) and (j<5) then Begin p:=p*i*j; q:=i end
else p:=i;
End .
Варіант 15
Begin a:=1; b:=4; c:=5;
if ( a+b > c ) then Begin x:=(a−b)*c; y:=a+b end
else Begin x:=a+b; y:=b+c end
p:=x+y;
End .
Варіант 16
Begin a:=10; b:=5; c:=4;
if ( a < c ) or ( a > b ) then x:=a*2+1; else x:=a*3+2;
p:=x*a; q:=x*b
End .
Варіант 17
Begin a:=1; b:=10; c:=4;
if (a < b) then x:=(a+b)*2+5; else x:=a*8+b*3+4;
s:=x*5
End .
Варіант 18
Begin k:=4; m:=8; n:=10;
if k+m=n then a:=n/3+m/4 else a:=n+(m+k)/5;
b:= (a−k) /(m+n)
End .
Варіант 19
Begin a:=10; b:=3;
if ( a <= x ) and ( b >= y ) then begin x:=a*b; d:=a/b end
else begin c:=c*3; d:=a+b end
p:=c+d
End .
Варіант 20
Begin k:=4; i:=3; m:=10;
if k+i > 10 then s:=(k+i)*m else s:=k+i*m;
b:= (s−k) *(m+i)
End .
Варіант 21
Begin i:=10; s:=1;
20: if I < > 10 then begin s:=s*i+1; i:=i+2; goto 20 end
End .
Варіант 22
Begin x:=2; y:=4; z:=12;
if x*y >z then k:=(x−z)*y else
begin f:=x*z; k:=(x+y)*(z−y) End
End .
Варіант 23
Begin a:=5; b:=3; c:=20;
10: if (a+b = c) or (a−b > 0) then x:=(a+b)*3+c else x:=a+c*5;
a:=a+1; goto 10;
End .
Варіант 24
Begin x:=1; y:=2;
if x+y <= 20 then begin a:=(x+y)*2; b:=x*y End
else begin a:=x; b:=y+4 End
End .
Варіант 25
Begin r:=1; s:=10; k:=5;
if r < k−s+1 then x:=(r+k)*s else x:=(r−k)/s;
p:=x+r
End .
Варіант 26
Begin x:=3; y:=4; q:=10;
if x+y<10 then w:=(x−y)*d else w:=x*d−y*u−v;
p:=p*w
End .
Варіант 27
Begin m:=1; n:=2; l:=9;
k:=m+n;
if k >= 1 then begin z:=a+b*c; y:=a+c End
else begin z:=a; y:=b*c+a End
End .
Варіант 28
Begin k:=4; m:=8; h:=12;
2: k:= k*m; h:=h+m;
if k <= 100 then begin m:=m−1; goto 2 End
End .
Варіант 29
Begin a:=1; b:=2;
if ( a = 3 ) or (b=7) then begin x:=(a+b)*c; y:=a*b End
else begin x:=a; y:=b+c End
End .
Варіант 30
Begin
if a*b > c*d then begin x:=a*b+y*z; w:=a+b End
else begin x:=a+y; w:=a*(y+z) End
End .
Ви не можете залишити коментар. Для цього, будь ласка, увійдіть
або зареєструйтесь.
Ділись своїми роботами та отримуй миттєві бонуси!
Маєш корисні навчальні матеріали, які припадають пилом на твоєму комп'ютері? Розрахункові, лабораторні, практичні чи контрольні роботи — завантажуй їх прямо зараз і одразу отримуй бали на свій рахунок! Заархівуй всі файли в один .zip (до 100 МБ) або завантажуй кожен файл окремо. Внесок у спільноту – це легкий спосіб допомогти іншим та отримати додаткові можливості на сайті. Твої старі роботи можуть приносити тобі нові нагороди!