Напишите программу в синтаксисе Free Pascal или Turbo Pascal, которая вычисляет выражение, состоящее из чисел и знаков (допускаются только знаки «+» или «–», количество чисел и знаков не ограничено). Выражение вводится как символьная строка, все числа целые.
ввод:
12+42-44-12-13+1-23
вывод: -37
ввод:
12-53-2+23+0-25
вывод -45

1 Дек 2019 в 19:55
304 +1
1
Ответы
1

program CalculateExpression;

function CalcExpression(expr: string): integer;
var
num, i: integer;
sign: char;
begin
num := 0;
sign := '+';

for i := 1 to Length(expr) do
begin
if (expr[i] >= '0') and (expr[i] <= '9') then
begin
num := num * 10 + Ord(expr[i]) - Ord('0');
end
else
begin
case sign of
'+': begin
Result := Result + num;
num := 0;
end;
'-': begin
Result := Result - num;
num := 0;
end;
end;
sign := expr[i];
end;
end;

case sign of
'+': Result := Result + num;
'-': Result := Result - num;
end;
end;

var
expression: string;
begin
writeln('Enter an expression: ');
readln(expression);
writeln('Result: ', CalcExpression(expression));
end.

19 Апр 2024 в 00:19
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Поможем написать учебную работу
Прямой эфир