Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.12.02;
Скачать: CL | DM;

Вниз

Консольный калькулятор   Найти похожие ветки 

 
Masher   (2007-11-05 07:44) [0]

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


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

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

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


 
Anatoly Podgoretsky ©   (2007-11-05 08:42) [2]

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

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


 
Kolan ©   (2007-11-05 10:59) [3]

> Вариант 2.


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

Вариант:
2
<Ввод>
+
<Ввод>
2
<Ввод>
=
<Ввод>

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


 
Zeqfreed ©   (2007-11-05 11:00) [4]

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

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


 
Anatoly Podgoretsky ©   (2007-11-05 11:19) [5]

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


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

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

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


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

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


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


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

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


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


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


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


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

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


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

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

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

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


 
TUser ©   (2007-11-05 16:04) [12]

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


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

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


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


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

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


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

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


 
Ins ©   (2007-11-06 15:01) [16]


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


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


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


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


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



Страницы: 1 вся ветка

Текущий архив: 2007.12.02;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.052 c
15-1193307568
Валентин
2007-10-25 14:19
2007.12.02
смогу ли я быть программистом


15-1193313950
Nucer
2007-10-25 16:05
2007.12.02
TCP сервер


2-1194000155
Ega23
2007-11-02 13:42
2007.12.02
как такой AV ловить?


3-1184843757
ch_victor
2007-07-19 15:15
2007.12.02
подключение к ораклу через BDE


2-1194595850
pathfinder
2007-11-09 11:10
2007.12.02
EExternalException..