Задача 8 Урок 18
Primary tabs
На вход вашей программы подается строка вида:
5 + 6 -34 + 56 - 7 + 2("сколько угодно" чисел с операциями суммы и разности в любом порядке).
Вычислите результат (пробелов между символом операции и числом может и не быть)
var inputString: string; function algebra(num1, num2: integer; char1: string): integer; begin if (char1 = '+') then result := num1 + num2 else if (char1 = '-') then result := num1 - num2; end; function getNumsAndChar(inputString: string): integer; var num1, num2, loopCount, errorCode: integer; char1: string; toString2: string; flag: boolean; begin num1 := 0; num2 := 0; flag := false; toString2 := ''; char1 := '+'; for loopCount := 1 to length(inputString) do begin if (inputString[loopCount] >= '0') and (inputString[loopCount] <= '9') then begin toString2 := toString2 + inputString[loopCount]; flag := true; end else if flag and (inputString[loopCount] <> ' ') then begin flag := false; val(toString2, num2, errorCode); num1 := algebra (num1, num2, char1); toString2 := ''; end; if (inputString[loopCount] = '-') then begin char1 := '-'; flag := false; end else if (inputString[loopCount] = '+') then begin char1 := '+'; flag := false; end; end; val(toString2, num2, errorCode); result := algebra (num1, num2, char1); end; begin writeln('Введите строку'); readln(inputString); writeln(getNumsAndChar(inputString)); readln(); end.
КОНСОЛЬ
Введите строку 100 + 5 - 7 - 5 + 7 100
- Log in to post comments
- 1014 reads
vedro-compota
Sun, 12/12/2021 - 13:10
Permalink
засчитано
засчитано
_____________
матфак вгу и остальная классика =)