|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
18.05.2012, 14:05 | #1 |
Регистрация: 18.05.2012
Сообщений: 6
|
Вопросы по обратной польской записи
Здраствуйте! Мне было поручено задание создать программу, которая переводит выражение в ОПЗ и находит его значение. Первую часть задания я выполнил, во второй же находит неверный результат, если числа дво- и более значные. Поэтому у меня возникло несколько небольших вопросов. Буду очень признателен за помощь.
1) Возможна ли реализация алгоритма для двозначных и более чисел? Во всех примерах создания ОПЗ, которые я видел, действия проводились над однозначными (например (6+8)*(7-3) : 6 8 + 7 3 - *) 2) Подскажите, если ли способ считывания двух и более последовательных числовых символов в string'е как одного числа? Если есть, каким способом его можно реализовать? 3) В самой ОПЗ, нужно ли делать пробелы между отдельными цифрами и знаками? Если переводить их в стеки (array [1..100] of real) или присваивать значения переменных (a,b,c,d,e... вместо цифр) и вписывать значения с клавиатуры , то в первом случае, если считывается пробел, выкидывает ошибку в работе программы, во втором оно считает пробелы тоже переменными и требует ввести их значения. |
18.05.2012, 14:14 | #2 |
Старожил
Регистрация: 20.04.2008
Сообщений: 5,528
|
1) да ( в примерах берутся однозначные просто для экономии).
2) s:='2+23+77'; n:=strtoint( copy(s, 3, 2) ); 3) а пробел это что оператор действия или значение? Если он нужен для вычислений, то ДА в противном случае НЕТ.
программа — запись алгоритма на языке понятном транслятору
|
18.05.2012, 16:38 | #3 |
Регистрация: 18.05.2012
Сообщений: 6
|
Проверил, но все равно не хочет работать с двозначными и более цифрами и пробелами. Вот код моей программы, подскажите, что нужно исправить, чтобы убрать эти недостатки.
Код:
|
19.05.2012, 08:04 | #4 | |
Старожил
Регистрация: 20.04.2008
Сообщений: 5,528
|
Цитата:
Код:
программа — запись алгоритма на языке понятном транслятору
|
|
20.05.2012, 00:58 | #6 |
Регистрация: 18.05.2012
Сообщений: 6
|
Вариант интересный, но в Pascal ABC (может просто в Turbo нужно?) пишет Ошибка: Параметр функции StrToInt не является целым числом(Program1.pas, строка 129). Думаю, это из-за того, что каждый раз ряд начинается с пробела, и не может переделать его в integer. Я пытался вводить удаление пробела, но не получилось.
|
20.05.2012, 10:41 | #7 |
Старожил
Регистрация: 08.04.2012
Сообщений: 3,229
|
А trim не подходит?
Код:
|
21.05.2012, 16:59 | #8 |
Регистрация: 18.05.2012
Сообщений: 6
|
Всем спасибо, написал работающую для всех чисел и действий программу. Вопросы сняты.
|
01.06.2012, 11:29 | #9 |
Новичок
Джуниор
Регистрация: 01.06.2012
Сообщений: 1
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
[Visual C++] Калькулятор с обратной польской нотацией | WhiteKuz | Visual C++ | 0 | 22.03.2012 00:13 |
Форма обратной связи | Cone | PHP | 9 | 07.12.2011 07:47 |
восстановление выражения по его прямой польской записи | Котик | Общие вопросы C/C++ | 1 | 29.04.2010 22:30 |
Вопросы с HTML кодом форм обратной связи | Michelle77 | Помощь студентам | 2 | 20.10.2009 15:47 |
преобразования польской формы записи уравнения | Безбашик | Общие вопросы по Java, Java SE, Kotlin | 6 | 12.05.2009 10:25 |