Автор | Помогите с паскалем) |
в задаче требуется перевести условный оператор перевести в обратную польскую запись
например выражение
if A then B else C
A mi УПЛ B mi+1 БП mi: C mi:
где УПЛ- условный переход по лжи
БП- безусловный переход
mi и mi+1- метки для перехода
Кто сделает - получит 25к) |
Кто сделает - получит 25к) и штраф за финпрокачку - у тебя нет 75к, чтобы делать такие переводы. |
для RCAPDART:
че надо сделать не понял |
для Я_не_нюб:
перевести условный оператор в паскале в обратную польскую запись,то есть
в примере mi УПЛ- это else C, а mi+1 БП - это then |
Help плиииз))) |
для RCAPDART:
что такаое польськая связь? |
для Я_не_нюб:
http://ru.wikipedia.org/wiki/%D0%9E%D0%B1%D1%80%D0%B0%D1%82%D0%BD%D0%B0%D1%8F_%D0%BF%D0%BE%D0%B B%D1%8C%D1%81%D0%BA%D0%B0%D1%8F_%D0%B7%D0%B0%D0%BF%D0%B8%D1%81%D1%8C |
Ап) Нид хэлп) |
A mi УПЛ B mi+1 БП mi: C mi:
что-то я не догоняю, это же и есть ОПЗ, или нет? |
да, конечно!! только надо сделать для условного оператора,единственное что операторы могут быть вложенные..... |
не польская
А
УПР перех1:
Б
перейти перех2
перех1:
С
перех2:
далее по рекурсии разбираешь А и Б
имена переходов генерируешь |
условный оператор if <expr> then <instr1> else <instr2> может быть записан как следующая последовательность операторов:
<expr> <c1> BZ <instr1> <c2> BR <instr2>,
где c1 указывает на первую инструкцию <instr2>, а c2 - на первую инструкцию, следующую за <instr2>, BR - безусловный переход на адрес <c2>, а BZ - переход на <c1> при условии равенства нулю выражения <expr1>.
Оно? |
для Вапекренг:
не совсем.... идёт безусловный переход по лжи(else) на какую то метку 1, потом безусловный переход(then) на метку 2 и потом следует описание этих меток 1 и 2 |
ну кто нибудь.... ну помогите пожалуйста.... судьба зачёта решается и стипендии.... плиз.....:'( |
Спасибо. Red-ant помог) Спасибо всем) |
тема закрыта by RCAPDART (2009-06-07 20:23:07) |
---|