Предмет: Информатика,
автор: СтарыйМатематик
Напишите программу в синтаксисе Free Pascal или Turbo Pascal, которая вычисляет выражение, состоящее из чисел и знаков (допускаются только знаки «+» или «–», количество чисел и знаков не ограничено). Выражение вводится как символьная строка, все числа целые.
ввод:
12+42-44-12-13+1-23
вывод: -37
ввод:
12-53-2+23+0-25
вывод -45
Ответы
Автор ответа:
1
Var
S, chislo: string;
i,A,B,C,E: integer;
Begin
B := 0;
WriteLn('Введите выражение: ');
ReadLn(S);
i := S.length;
While (i > 0) do
begin
Case S[i] of
'+':
begin
val(chislo,A,E);
B := B + A;
chislo := '';
end;
'-':
begin
val(chislo,A,E);
B := B - A;
chislo := '';
end;
else
chislo := S[i] + chislo;
End;
i := i - 1;
end;
if (chislo <> '') then
begin
val(chislo,A,E);
B := B + A;
end;
WriteLn(B);
End.
S, chislo: string;
i,A,B,C,E: integer;
Begin
B := 0;
WriteLn('Введите выражение: ');
ReadLn(S);
i := S.length;
While (i > 0) do
begin
Case S[i] of
'+':
begin
val(chislo,A,E);
B := B + A;
chislo := '';
end;
'-':
begin
val(chislo,A,E);
B := B - A;
chislo := '';
end;
else
chislo := S[i] + chislo;
End;
i := i - 1;
end;
if (chislo <> '') then
begin
val(chislo,A,E);
B := B + A;
end;
WriteLn(B);
End.
СтарыйМатематик:
А не могли бы вы обьяснить принцип работы алгоритма, а то я его не совсем понимаю.
Похожие вопросы
Предмет: Математика,
автор: varya9048
Предмет: Алгебра,
автор: kanatkyzydi5
Предмет: Физика,
автор: vikabogomolova67
Предмет: Алгебра,
автор: DilaraMus
Предмет: Литература,
автор: nmihailova