Урок 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
- 425 reads
vedro-compota
Mon, 01/02/2023 - 17:18
Permalink
засчитано
засчитано
_____________
матфак вгу и остальная классика =)