Урок 18 Задача 9
Primary tabs
На вход вашей программы подается строка вида:
5 + 6 -34 + 56 - 7 + 2("сколько угодно" чисел с операциями суммы и разности в любом порядке). Вычислите результат (пробелов между символом операции и числом может и не быть)
var
s, n: string;
i, a, rez: integer;
znak: char;
begin
writeln ('Введите строку: ');
readln(s);
i:= 0;
rez:= 0;
n:= '';
while not (i > length(s)) do // цикл для обхода строки
begin
i:= i+1;
if (s[i]>='0')and(s[i]<='9') then // если встретилось число
begin
for i:= i to length(s) do
begin
n:= n + s[i];
if not ((s[i+1]>='0')and(s[i+1]<='9')) then
break;
end;
val(n, a); // преобразовываем строку в число
n:= '';
if znak = '+' then
rez:= rez + a
else if znak = '-' then
rez:= rez - a
else
rez:= a;
end else begin
if (s[i] = '+') or (s[i] = '-') then
znak:= s[i];
end;
end;
writeln ('Ответ: ', rez);
readln();
end.Вывод в консоли:
Введите строку: 5 +2 - 3+4 Ответ: 8
- Log in to post comments
- 839 reads
vedro-compota
Mon, 01/02/2023 - 17:18
Permalink
засчитано
засчитано
_____________
матфак вгу и остальная классика =)