|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
21.05.2013, 20:39 | #1 |
Форумчанин
Регистрация: 07.05.2011
Сообщений: 169
|
Логическая ошибка "Обратной польской записи"
Добрый вечер, уважаемые программисты и любители логических задач!
Условие задачи: написать программу, которая обычное выражение (числовое) с использованием "(", ")", "+", "-", "*" и "/", переведёт в польскую запись. Например, 2+34*45+23 = 2 34 45 * + 23 +. Когда мой однокурсник реализовал такое дело, преподаватель спросил "а как ты 100 представишь, что это 100?", поэтому, я подумала разделять числа и знаки запятыми. И вроде бы весь механизм реализован, однако скобки вызвали массу проблем. А именно: (проблемы) 1*2*3, то одного из знаков не выдаёт. И проверяю через точки остановки, но понять всё равно не могу "куда делся ещё один знак?!". Так же выходит, если напечатать 1*2+3. --> 1,2,*,3 Если ввести строчку: 1+2+3+;+5*6, то всё работает корректно. Контрольные примеры: 1+(2+3), 1+(2*3), 1*(2+3), 1*(2*3) -- раньше были на них ошибки, сейчас всё работает хорошо. Пожалуйста, помогите исправить эти ошибки. Последний раз редактировалось Fanyuus; 21.05.2013 в 20:42. |
21.05.2013, 20:39 | #2 |
Форумчанин
Регистрация: 07.05.2011
Сообщений: 169
|
Код:
|
21.05.2013, 20:45 | #3 |
Старожил
Регистрация: 25.10.2011
Сообщений: 3,178
|
Ой. А функции в... этом... выделить можно?
Код:
Код:
В общем, разобраться в этом почти нереально, такой код надо не модифицировать, его надо выкидывать и писать заново. |
21.05.2013, 21:20 | #4 | |
Форумчанин
Регистрация: 07.05.2011
Сообщений: 169
|
Аааа, забыла комментарии)))
Цитата:
Код:
|
|
21.05.2013, 21:40 | #5 |
Форумчанин
Регистрация: 07.05.2011
Сообщений: 169
|
Код:
|
22.05.2013, 11:43 | #6 |
Форумчанин
Регистрация: 07.05.2011
Сообщений: 169
|
Помогите, пожалуйста
|
22.05.2013, 12:15 | #7 |
Старожил
Регистрация: 25.10.2011
Сообщений: 3,178
|
Если Вы сами не можете проанализировать и отладить этот код, то, ИМХО, это безнадёжно.
Вот пример моего кода (тоже писался как write-only, для вот этой задачи): Код:
Последний раз редактировалось Abstraction; 22.05.2013 в 12:19. Причина: Исправлена ссылка |
22.05.2013, 17:53 | #8 | |
Форумчанин
Регистрация: 07.05.2011
Сообщений: 169
|
Abstraction, исправила я несколько ошибок. Исправила, исправила, и у меня вдруг случайно при написании выражения (7+5) вдруг стало писать:
Цитата:
но ответ правильный выдаёт. Ваш код то, что нужно мне. Задача такая же. Но я бы до такого не додумалась бы, и мой код просто бы выбросили. Ладно, перепишу свой код в функции, и сделаю не строчку, а массив, наверное. А то мне эта строчка не нравится как-то. Большое спасибо за код! |
|
22.05.2013, 17:55 | #9 |
Форумчанин
Регистрация: 07.05.2011
Сообщений: 169
|
Abstraction, а что в вашей программе нужно вводить? Просто я ввожу числа\буквы (выражение, 7+2), а в ответ тишина. Или он, код, программа, ничего не выводит в итоге?
ред.: всё, поняла. Там всё дело в скобках))) |
22.05.2013, 18:42 | #10 | ||
Старожил
Регистрация: 25.10.2011
Сообщений: 3,178
|
Цитата:
Цитата:
|
||
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Вопросы по обратной польской записи | АлексВ | Паскаль, Turbo Pascal, PascalABC.NET | 8 | 01.06.2012 11:29 |
Ошибка "Expecting a valid name" для оператора "<" в JScript | Ратибор Редоран | JavaScript, Ajax | 0 | 15.12.2011 14:38 |
Ошибка:является "поле" но используется как "метод" | hitman47IT | Помощь студентам | 0 | 22.11.2011 20:55 |
Логическая структура "Архив" | Vov4k | Помощь студентам | 1 | 14.05.2011 07:15 |
Ошибка при использовании OlePropertyGet("Documents").OleProcedure("Add") в C++ Builder | AleksP | C++ Builder | 7 | 11.04.2009 13:06 |