+ upd
This commit is contained in:
+156
@@ -0,0 +1,156 @@
|
||||
# Хуй знает что тут
|
||||
|
||||
## Задания
|
||||
|
||||
### Первое задание
|
||||
|
||||
```plain
|
||||
L1 = {1^n 0^m 1^m 0^n | n, m > 0}
|
||||
r = {(), a^m b^(n+m)} // выдать на выходе вместо 1010 aabb
|
||||
```
|
||||
|
||||
```plain
|
||||
S - 1A0
|
||||
A - 1A0 | 0B1
|
||||
B - 0B1 | _
|
||||
```
|
||||
|
||||
Переводим в другую грамматику (в скобках моменты печати слова)
|
||||
|
||||
```plain
|
||||
S - 1A(b)0
|
||||
A - 1A(b)0 | 0(a)B(b)1
|
||||
B - 0(a)B(b)1 | _
|
||||
```
|
||||
|
||||
### Второе задание
|
||||
|
||||
```plain
|
||||
L1 = {(c/d)a^n b^n | n> 0}
|
||||
r = {(L1), 1^2n 0^(k+n) | k = |d|}
|
||||
```
|
||||
|
||||
Описание языка:
|
||||
|
||||
```plain
|
||||
S - cS | dS | aAb
|
||||
A - aAb | _
|
||||
```
|
||||
|
||||
Преобразование
|
||||
|
||||
```plain
|
||||
S - cS | dS(0) | a(11)A(0)b
|
||||
A - a(11)A(0)b | _
|
||||
```
|
||||
|
||||
### Третье задание
|
||||
|
||||
```plain
|
||||
S - bA
|
||||
A - aC
|
||||
B - aBb | _
|
||||
C - Bba | _
|
||||
```
|
||||
|
||||
```plain
|
||||
r = {(), b^k a ^ m, k = |b|, m = |a|}
|
||||
```
|
||||
|
||||
```plain
|
||||
S - (b)bA
|
||||
A - aC(a)
|
||||
B - (b)aBb(a) | _
|
||||
C - (b)Bba(a) | _
|
||||
```
|
||||
|
||||
## Перевод в польско-инверсную запись
|
||||
|
||||
```plain
|
||||
E - T {+T}
|
||||
T - F {*F<*>}
|
||||
F - a<a>|b<b>|(E)
|
||||
```
|
||||
|
||||
```cpp
|
||||
void E() {
|
||||
T();
|
||||
while(c == '+') {gc(); T(); cout << '+';}
|
||||
}
|
||||
```
|
||||
|
||||
из `a+a*b` получим `aab*+`
|
||||
|
||||
### Задача
|
||||
|
||||
(тут был граф)
|
||||
|
||||
описывающая грамматика:
|
||||
|
||||
```plain
|
||||
S - ccCa
|
||||
C - cCd | B
|
||||
B - b
|
||||
```
|
||||
|
||||
грамматика, которая перевернёт:
|
||||
|
||||
```plain
|
||||
S - cc<a>C<cc>a
|
||||
C - c<d>C<c>d | B
|
||||
B - b<b>
|
||||
```
|
||||
|
||||
## Переводы записей
|
||||
|
||||
```plain
|
||||
1) s = i * (--a+b++)
|
||||
|
||||
&s i &a -# &b #+ + * = ;
|
||||
<!-- * (+ #+ -->
|
||||
```
|
||||
|
||||
```plain
|
||||
2) x = (a + b, a * b);
|
||||
|
||||
&x a b + ; a b * = ;
|
||||
```
|
||||
|
||||
Переход в какое-то место программы: _,!
|
||||
|
||||
B, _, !F - переход по лжи (B == False)
|
||||
|
||||
```cpp
|
||||
if (B) p1; else pe;
|
||||
B 7 !F p1 8 ! p2
|
||||
1 2 3 4 5 6 7 8
|
||||
```
|
||||
|
||||
```cpp
|
||||
1) if ((x+1) > y) x = y; else y = (x-y) * 3;
|
||||
2) while (i < 9) {s = 3 + f(i), i++;}
|
||||
3) do {x = z = (x + y + 5) * b - 3/f; b++;} while(-x+y>0);
|
||||
4) for (i = 0; i < n; i++) {a = b - c;}
|
||||
```
|
||||
|
||||
```plain
|
||||
if ((x+1) > y) x = y; else y = (x-y) * 3;
|
||||
|
||||
x 1 + y > !F 18 &x y = ; 22 ! &y x y - 3 * = ;
|
||||
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
|
||||
```
|
||||
|
||||
```plain
|
||||
while (i < 9) {s = 3 + f(i), i++;}
|
||||
|
||||
i 9 < 17 !F &s 3 i f = ; &i #+ ; 1 !
|
||||
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
|
||||
```
|
||||
|
||||
``` plain
|
||||
do {x = z = (x + y + 5) * b - 3/f; b++;} while(-x+y>0);
|
||||
|
||||
|
||||
&a a b < _ !F a _ ! b = ;
|
||||
|
||||
```
|
||||
Reference in New Issue
Block a user