Анализ арифметических выражений.
Преамбула
В задачах этого листка:
- Использование вышеописанной процедуры и, таким образом, всех ее подпрограмм обязательно.
- Рекурсия запрещена.
- Для хранения комбинаций используется глобальный массив и соответствующие константы; данные с клавиатуры не вводятся.
- Время выполнения процедуры получитьСледующуюКомбинацию, по умолчанию не более Cn.
1.
В этой задаче требуется написать функцию, возвращающую значение целого арифметического выражения по представляяющей его строке. Допустимые операции: сложение, вычитание, умножение ('*'), деление ('/'), остаток ('%'), степень ('^').
- строка состоит из 3-х символов и имеет формат <цифра> <оператор> <цифра>.
- строка состоит имеет формат <цифра> {<оператор> <цифра>}. (часть, заключенная в фигурные скобки может неограниченно повторяться или быть пустой)
- строка имеет формат <натуральное число> <оператор> <натуральное число>.
- те и только те, у которых i-ый член не превосходит i.
- так, чтобы соседние последовательности (а также первая и последняя) отличались бы только в одной позиции и только на единицу.