| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Центр помощи > [Delphi|Pascal]Калькулятор |
| Автор: jhonyxakep 17.6.2009, 07:45 |
| Нужно написать программу которая будет брать из файла input.txt выражение и выводить его результат в файл output.txt В файле input.txt могут присутствовать только ()+- Заранее спасибо |
| Автор: Elerond 17.6.2009, 08:23 |
| jhonyxakep, не совсем понял... в файле должно быть математическое выражение? т.е. кроме ()+- еще и числа... |
| Автор: jhonyxakep 17.6.2009, 08:42 |
| например (1+2)-2 в output ответ, с учётом скобок Добавлено через 43 секунды ещё может-быть (1+(1+2+(1+2+3+(1+2+3+4))))-2 |
| Автор: Gaudi 17.6.2009, 11:51 |
| Операции с одинаковым приоритетом, скобки не нужны. Просто решаешь выражение справа налево. |
| Автор: Elerond 17.6.2009, 12:28 | ||||||
| Gaudi, это верно конечно, но наверное от них хотят показать как они справятся с приоритетами. Добавлено через 7 минут и 22 секунды В общем у меня паскаля не было под рукой, вот необходимые функции на делфи... функция Calc является основной... думаю считывание с файла сам сделаешь. Это проверка на баланс скобок и лишние символы, правда не смотрит на повторение типа "++"
Тут функция которая считает выражения типа 1+2+3+4, т.е. то что внутри скобок
Основная функция ))
Добавлено через 8 минут и 12 секунд Достаточно запустить функцию Calc и будет все работать |
| Автор: jhonyxakep 17.6.2009, 12:49 |
| Ещё вопрос, а как нибудь можно это сделать с Рекурсией, или это не возможно? |
| Автор: Elerond 17.6.2009, 12:54 |
| Если приглядеться то можно заметить, что функции Calc и Summa рекурсивные |
| Автор: jhonyxakep 17.6.2009, 13:36 |
| sorry, не заметил |