ФБН задача 6

ФБН задача 6:

Добавим поддержку переменных.
Напишите ФБН для описания выражений вида):

((2+3)*5)/2 + 7*4
b = ((2+3)*5)/2 + 7*4
a = b + 1

-- т.е. строка может быть любой из этих трех, а именно:

Просто выражение (с произвольным вложением скобок)
Выражение с присваиваем (в котором участвуют либо числа, либо переменные)

РЕШЕНИЕ:

ФБН задача 5

ФБН задача 5:

Напишите ФБН для описания выражений вида:

((2+3)*5)/2 + 7*4

-- с произвольным вложением скобок (для упрощения выражения не расписывайте суммы и произведения через их бинарные случаи).

РЕШЕНИЕ:

ФБН задача 4

ФБН задача 4:

Выше мы рассмотрели пример, где выражение вида (только суммы):

2 + 5 + 4 и т.д

можно описать, используя рекурсивный подход:

<Cifra> ::= [0-9]
<CeloeChislo> ::= "0" | ([1-9] <Cifra>*)
<BinSumma> ::= <Summa> "+" <CeloeChislo> 
<Summa> ::=  <BinSumma> | <CeloeChislo>

Задача: Напишите ФБН для поддержки (помимо операции сложения) операций вычитания, умножения и деления:

ФБН задача 3

ФБН задача 3:

Выражения с умножением, делением, суммой и разностью можно также описать с помощью формы:

ФБН задача 2

ФБН задача 2:

Для описания выражений вида:

7
1+23-4+6-7+8
5+2

(суммы и разности целых чисел, количеством чисел от одного и более)
Можно использовать форму:

ФБН задача 1

ФБН задача 1:

Для описания выражений вида:

7
1+23-4+6-7+8
5+2

(суммы и разности целых чисел, количеством чисел от одного и более)
Можно использовать форму Бэкуса-Наура:

Задача 9 Урок 18

Задача 9 Урок 18:

На вход вашей программы подается строка вида:

5 + 6 -34 + 56  - 7 + 2

("сколько угодно" чисел с операциями суммы и разности в любом порядке). Вычислите результат (пробелов между символом операции и числом может и не быть)

Задача 8 Урок 18

Задача 8 Урок 18:

На вход вашей программы подается строка вида:

<целоечисло><произвольное число пробелов> <арифм.операция> <произвольное число пробелов> <целоечисло>

например:

1 +  3

или

2 - 12

Напишите программу, которая разбирает вычисляет результат этого приложения (сделайте поддержку операций сложения и вычитания).

Задача 7 Урок 18

Задача 7 Урок 18:

Решите предыдущую задачу:
С использованием процедуры, которая разбирала бы очередную строку, изменяя по ссылке значения двух перемененных (одна для имени и одна для балла), уже после вызова этой процедуры для очередной строки записывайте очередные значения переменных в массивы (каждую в свой).
Подсказка: Т.е. такая процедура может иметь следующую сигнатуру:

Pages

Subscribe to fkn+antitotal RSS