22 вариант - выжимка ------------------------------------------------------------------------------------------ Под "формулой" понимается запись следующего вида: <формула> ::= <число> | <переменная> | (<формула><знак><формула>) <знак> ::= + | - | * <число> ::= 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 <переменная> ::= X Примеры формул: 5 ((2*X)+(X-(8+X))) Формулу можно представить в виде двоичного дерева согласно следующим правилам: - числу или переменной соответствует дерево из одной вершины, содержащей это число или переменную, - формуле со знаком операции соответствует дерево, корневая вершина которого - знак, левое поддерево - соответствующее представление первого операнда, а правое поддерево - второго операнда. --------------------------------------------------------------------------------------- обычная (инфиксная) постфиксная (a-(b*c)) (a(bc*)-) ((a-b)*c) ((ab-)c*) -------------------------------------------------------------------------------------- 1. В программе должна быть предусмотрена проверка правильности задания исходной информации. 4. В вариантах 19-22 должны быть определены процедура ввода исходной формулы и построения соответствующего двоичного дерева, а также процедура вычисления значения формулы при заданной величине X (в варианте 19) или процедура печати формулы в нужном виде (варианты 20-22); все эти процедуры должны быть рекурсивными. ------------------------------------------------------------------------------------- 1. Вводить последовательность слов, многочлен или формулу следует посимвольно. Конец ввода определяется соответственно по точке, по пробелу или по балансу скобок. 3. Для упрощения операций над списками, рекомендуется использовать списки с заглавными звеньями. В этом случае следует в начале выполнения программы построить список (списки) с одним заглавным звеном.