Калькулятор, разбирающий выражения - Free Pascal
Формулировка задачи:
Ну, во первых,
Мне необходимо написать здравствуйте
У меня возникла такая проблемка.калькулятор
наFP
(не задание, а просто, для себя).Калькулятор
сей не должен иметь вид:1) Введите число 1;
2) Введите знак;
3) Введите число 2;
И. т. д.а) это детский сад
;б) такая прога далеко не универсальна
. Работакалькулятора
со стороныюзера
должна выглядеть так:1) Вводим выражение;
2) Выводим результат;
ВСЁ!
полный
код, т. к.1) Я со всем уже более менее сам разобрался;
2) Я пишу для саморазвития и не считаю свою работу выполненной, если тупо слижу чей то код.
А проблема заключается в следующим:
Если в введённом выражении есть скобки
, обособленная часть выражения должна встать напервое
место в порядке действий. И ладно бы если бы таких скобок было 1 или 2,НО
... их может быть и 10 и 20 и 150... Короче говоря, мне необходим алгоритм, при реализации которого, в выражении со скобками все действия выполнялись в томпорядке
, в котором они должны выполняться.Заранее спасибо!
Решение задачи: «Калькулятор, разбирающий выражения»
textual
Листинг программы
// ... {Вызов} Script:= CreateOleObject('MSScriptControl.ScriptControl'); Script.Language:= 'JScript'; // получение строки s try Writeln(Script.Eval(s)); except on E : EOleException do writeln('Ну, и чего ты ввел, сам-то понял?'); end; // ...
Объяснение кода листинга программы
- Создание объекта Script с помощью функции CreateOleObject.
- Установка языка Script на JScript.
- Выполнение строки s с помощью метода Eval и вывод результата в консоль.
- Обработка исключений с помощью конструкции try-except.
- Вывод сообщения об ошибке, если введено непонятное выражение.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д