Калькулятор, разбирающий выражения - 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;
// ...

Объяснение кода листинга программы

  1. Создание объекта Script с помощью функции CreateOleObject.
  2. Установка языка Script на JScript.
  3. Выполнение строки s с помощью метода Eval и вывод результата в консоль.
  4. Обработка исключений с помощью конструкции try-except.
  5. Вывод сообщения об ошибке, если введено непонятное выражение.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

9   голосов , оценка 3.667 из 5