Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Консольный калькулятор [D7, WinXP]


Masher ©   (2007-11-05 07:44:00) 

Здравствуйте, подскажите, плз, как сделать консольный калькулятор в Delphi? Интересует реализация простых арифметических операций, примера найти не удалось, а у самой сложности.


Сергей М.   (2007-11-06 15:04:00) [1]


> как подступиться.


Со стороны какой оценки ?)


Ins   (2007-11-06 15:01:00) [2]


> Юрий Зотов ©
> Изучить теорию синтаксического анализа и написать самостоятельно.


На Королевстве была статья на эту тему, можно начать с нее:
http://www.delphikingdom.com/asp/viewitem.asp?catalogid=10


Masher   (2007-11-06 09:23:00) [3]

Задание вот:
" Написать программу в Delphi «консольный калькулятор».
• «Калькулятор», должен вычислять основные арифметические операции.
• Операнды и операции вводятся в одной строке.
• Выход из «Калькулятора», по команде "exit".
• Для получения оценки «хорошо»:
o добавить в «калькулятор» тригонометрические функции (sin, cos);
o «калькулятор» должен корректно обрабатывать ошибки (н-р: ввод символов вместо цифр, лишние пробелы).
• Для получения оценки «отлично»:
o Выражение, которое необходимо вычислить, вводится в качестве параметра(ов) командной строки."
Мне совет дельный дайте, плз, как подступиться.


Германн   (2007-11-06 03:31:00) [4]


> Masher   (06.11.07 03:15) [13]
>
> Так всё-таки, что мне использовать? ОПЗ?
>

Кстати ОПЗ в любом случае полезно освоить.
А по сабжу, ответь сначала на
> Anatoly Podgoretsky ©   (05.11.07 11:19) [5]


Masher   (2007-11-06 03:15:00) [5]

Так всё-таки, что мне использовать? ОПЗ?


TUser   (2007-11-05 16:04:00) [6]

Для простого калькулятора нужно только уметь переводить в обратную польскую. В полном объеме все эти грамматики и формы не требуются. Пишется за три часа.


Юрий Зотов   (2007-11-05 13:48:00) [7]

> korneley ©   (05.11.07 13:08) [9]

> А как учесть приоритет операций? Не говоря уж о скобках.

Если БНФ расписаны грамотно, то приоритет и скобки учитываются автоматически.


Однокамушкин   (2007-11-05 13:19:00) [8]


> korneley ©   (05.11.07 13:08) [9]
> А как учесть приоритет операций? Не говоря уж о скобках.

Дык их что при непосредственном вычислении, что при переводе в постфиксную запись по любому приходится учитывать... Это вот если пользователя заставить сразу вводить всё в постфиксной записи, тогда да, всё просто, но я бы на месте преподавателя такой калькулятор бы не принял


korneley   (2007-11-05 13:08:00) [9]


>на фига тут польская запись
>...
>  сложить два числа легче, чем заботиться об их размещении
> в стеке
А как учесть приоритет операций? Не говоря уж о скобках.


Однокамушкин   (2007-11-05 12:59:00) [10]


> Efir   (05.11.07 12:51) [7]
>
> Поищи информацию на тему обратной польской записи

Вот объясните, ну на фига тут польская запись, хоть прямая, хоть обратная? Сначала написать анализатор, который переведёт инфиксную запись в постфиксную, а потом ещё один, который считает выражение в постфиксной записи... Зачем? Анализатор, непосредственно вычисляющий выражение в инфиксной записи пишется даже чуть-чуть легче, чем переврдящий инфиксную запись в постфиксную - блок анализа строки там тот же самый, а сложить два числа легче, чем заботиться об их размещении в стеке


Efir   (2007-11-05 12:51:00) [11]

В нете на эту тему тонны информации. Поищи информацию на тему обратной польской записи и если разберёшся, то задачка будет решена за
> день и без глюков
.


Юрий Зотов   (2007-11-05 11:44:00) [12]

> Anatoly Podgoretsky ©   (05.11.07 08:42) [2]

Насколько помню, он кончился тем,что чуть ли не десяток человек взялись доказывать, что напишут калькулятор без всякой теории - но из всех написанных ими программ только одна работала более-менее прилично, да и то, чтобы этого добиться, потребовалось пара месяцев и тестирование всем форумом. В тот время, как с теорией эта штука пишется за день и без глюков.


Anatoly Podgoretsky   (2007-11-05 11:19:00) [13]

А пусть сначала озвучит учебное задание и ТЗ


Zeqfreed   (2007-11-05 11:00:00) [14]

> Юрий Зотов ©   (05.11.07 07:48) [1]

Может там гораздо проще все? Без синтаксического анализа.


Kolan   (2007-11-05 10:59:00) [15]

> Вариант 2.


А че обязательно решать 2+2 на калькуляторе?

Вариант:
2

+

2

=


Ведь на порядок проще реализовать…


Anatoly Podgoretsky   (2007-11-05 08:42:00) [16]

> Юрий Зотов  (05.11.2007 07:48:01)  [1]

Ты помнишь чем вариант два кончился :-)


Юрий Зотов   (2007-11-05 07:48:00) [17]

Вариант 1.
Найти готовый строчный калькулятор, в Сети их полно.

Вариант 2.
Изучить теорию синтаксического анализа и написать самостоятельно. Задавая здесь конкретныевопросы, а не вопросы типа "как написать программу".


Наверх

Титульная страница Поиск, карта сайта Написать письмо