A1_2010 (1119652), страница 2
Текст из файла (страница 2)
G: S ACb | Aa
A Aa | Ca | a
B Aa | CDb | Bb
C Ab | b
D Aa | Cb | a
Ответ: Контекстно-свободная грамматика называется приведённой, если в ней нет бесполезных (бесплодных и недостижимых) символов.
1. Удаление бесплодных символов. Строится множество N, из элементов которого за некоторое число шагов выводятся терминальные символы:
-
N0 =
-
N1 = {A, C, D}, N1 N0
-
N2 = { A, B, C, D, S}, N2 N1
-
N3 = { A, B, C, D, S}, N3 = N2
Бесплодных символов в грамматике G не обнаружено.
2. Удаление недостижимых символов. Строится множество V, в которое помещаются символы, за некоторое число шагов выводимые из символа S:
-
V0 = {S}
-
V1 = {S, A, C}, V1 V0
-
V2 = {S, A, С}, V2 = V1
Символы B и D из алфавита грамматики G являются недостижимыми, их и правила их содержащие можно удалить из грамматики:
Gприв: S ACb | Aa A Aa | Ca | a C Ab | b
КРИТЕРИИ: Нет определения или оно неверно: -5.
За ошибку при преобразовании: -7.
10. По приведенной обратной польской записи фрагмента программы, написанной на языке Си++, восстановите этот фрагмент двумя способами: сначала, пользуясь операторами условного и безусловного перехода на метку, а затем (если это возможно), пользуясь только операторами структурного программирования без переходов. Операция ПОЛИЗ '@' соответствует унарной операции изменения знака.
ПОЛИЗ | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 |
&x | #+ | 4 | + | y | 5 | — | 20 | * | <= | 30 | !F | &a | x | 8 | — | 7 |
18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | |
* | y | x | @ | 2 | + | / | — | = | ; | ! | 1 | &b | &x | &y | +# | = | = | ; |
|
Ответ:
M: if (! (x ++ + 4 <= (y – 5) * 20)) goto L;
a = (x – 8) * 7 – y / (– x + 2);
goto M;
L: b = (x = ++ y);
while (x ++ + 4 <= (y – 5) * 20) a = (x – 8) * 7 – y / (– x + 2); b = (x = ++ y);
КРИТЕРИИ: за неверный ответ на первый вопрос: -7.
за неверный ответ на второй вопрос, если первый вариант верен: -3, иначе: -10