Помогите пожалуйста с информатикой СРОЧНО !!!ИМЕННО СЕЙЧАС НУЖНО!!! Пусть алфавит языка...

0 голосов
67 просмотров

Помогите пожалуйста с информатикой СРОЧНО !!!ИМЕННО СЕЙЧАС НУЖНО!!!
Пусть алфавит языка состоит из цифр от 0 до 9, знака «T» и знаков арифметических операций «+», «-», а правило записи слов (арифметических выражений) звучит так: пишутся два числа, разделенные знаком «Т», затем знак операции. Чему будет равно значение выражения 25Т12Т2+Т45+:
а) 80;
б) 60;
в) 55;
г) 10;
д) 12?


Информатика | 67 просмотров
0

Там сказано, два числа, затем знак, а тут три числа - знак, и одно число - знакВ записи ошибка...

0

AnimalPlenet, пожалуйста, перепиши внимательнее

0

Было бы там 25Т12- Т2+Т45+

0

Было бы там 25Т12 -Т2Т45+ ответ был бы 60

Дан 1 ответ
0 голосов
Правильный ответ

Из анализа алфавита и синтаксиса языка делаем вывод, что используется так называемая постфиксная (она же обратная польская) запись, широко распространенная в алгоритмах работы со стеком. В предлагаемой задаче синтаксис упрощен, поэтому можно обойтись и без стека.
Исходная запись: 25Т12-Т2+Т45+
ВНИМАНИЕ: знак "-" в условии задания был ошибочно пропущен!!!
Начинаем разбор исходной строки.
"25" - первый операнд (за ним следует символ-терминатор Т);
"12" - второй операнд (за ним терминирующий знак операции -);
"-" - знак операции.
Можно вычислять: 25 - 12 = 13
Теперь "13" подставляем на место первого операнда и продолжаем читать строку.
"T" - терминирующий символ, он тут для соблюдения синтаксиса;
"2" - второй операнд (за ним терминирующий знак операции +);
"+" - знак операции.
Можно вычислять: 13 + 2 = 15
Теперь "15" подставляем на место первого операнда и продолжаем читать строку.
"T" - терминирующий символ, он тут для соблюдения синтаксиса;

"45" - второй операнд (за ним терминирующий знак операции +);
"+" - знак операции.
Можно вычислять: 15 + 45 = 60

Исходное выражение просмотрено до конца, алгоритм разбора закончен.
Ответ: б) 60

(142k баллов)