|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » Java - Калькулятор, обратная польская запись |
|
Java - Калькулятор, обратная польская запись
|
Misanthrope Сообщения: 474 |
Профиль | Отправить PM | Цитировать Собственно есть вот такой фрагмент кода:
это класс из калькулятора написанного под Android, он выполняет преобразование выражения из инфиксной нотации в обратную польскую, а потом вычисляет его. код немного не работает (проблемы с делением на ноль и дробными числами), поэтому надо поправить. Проблема в том, что о Java я не знаю практически ничего. Интересуют следующие моменты: public Map<String, Integer> MAIN_MATH_OPERATIONS; { MAIN_MATH_OPERATIONS = new HashMap<String, Integer>(); MAIN_MATH_OPERATIONS.put("*", 1); MAIN_MATH_OPERATIONS.put("/", 1); MAIN_MATH_OPERATIONS.put("+", 2); MAIN_MATH_OPERATIONS.put("-", 2); } List<String> out = new ArrayList<String>() - это коллекции, или я не прав? опять же, где почитать? Set<String> operationSymbols = new HashSet<String>(operations.keySet()) - даже догадок нету for (String operation : operationSymbols) - тоже не понятно |
|
------- Отправлено: 01:21, 26-02-2012 |
Необычный Сообщения: 4463
|
Профиль | Сайт | Отправить PM | Цитировать Hector, Насколько я понял, в классе реализовано однопроходное преобразование выражения в ОПЗ с использованием стека.
Т.е. надо поискать, что это за метод, и "методом научного тыка" сопоставить реализацию с теорией. С теорией по Java к сожалению не помогу. |
------- Отправлено: 07:35, 26-02-2012 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Разный Сообщения: 1294
|
Профиль | Отправить PM | Цитировать |
Отправлено: 08:13, 26-02-2012 | #3 |
Misanthrope Сообщения: 474
|
Профиль | Отправить PM | Цитировать ferget, если при делении второй операнд больше первого так, что в результате не получается целой части (например 6/9), тогда программа вылетает. я пытался решить это:
но в этом случае у всех следующих чисел всегда будет 3 знака после запятой независимо от последующих операций (выглядит так - 5.000) |
------- Отправлено: 11:09, 26-02-2012 | #4 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Вопрос по коду PHP(обратная связь) | zion87 | Вебмастеру | 0 | 10-02-2012 23:35 | |
[решено] JS. Обратная транслитерация. | VeshchiyOleg | Вебмастеру | 1 | 27-01-2007 21:00 | |
польская клавиатура? | delphispb | Microsoft Windows 2000/XP | 1 | 12-10-2005 18:38 |
|