Задачи 7 и 8 Урок 17
Primary tabs
Урок 17. Явное приведение типа в Паскаль -- преобразование строки в число
{17 - 7
На вход вашей программы подается строка вида:
например:1 + 3или
2 - 12Напишите программу, которая разбирает вычисляет результат этого приложения
(сделайте поддержку операций сложения и вычитания).17 - 8
На вход вашей программы подается строка вида:5 + 6 -34 + 56 - 7 + 2("сколько угодно" чисел с операциями суммы и разности в любом порядке).
Вычислите результат (пробелов между символом операции и числом может и не быть)
}
const z = 5; var s: string; i, n, result: integer; intNums: array [1..z] of integer; strNums: array [1..z] of string; strOperators: array [1..z] of char; begin writeln('input data for arithmetic operations'); readln(s); n:= 1; for i:=1 to length(s) do begin if (s[i] <> ' ') then begin if ((s[i]>='0') and (s[i]<='9')) then strNums[n] := strNums[n] + s[i] // числа отдельно else begin strOperators[n] := s[i]; // операторы отдельно n:= n+1; end end end; for i:=1 to n do val(strNums[i], intNums[i]); // преобразование типа массива в числовой result:= intNums[1]; for i:=2 to n do // в цикле обойти два массива begin if strOperators[i-1] = '+' then result:= result + intNums[i]; if strOperators[i-1] = '-' then result:= result - intNums[i]; end; writeln('result: ', result); readln(); end.
//input data for arithmetic operations //24 + 17 //result: 41 //input data for arithmetic operations //4 - 14 + 108 -7 +10 //result: 101
- Log in to post comments
- 705 reads
vedro-compota
Sun, 06/13/2021 - 11:56
Permalink
решение зачисчитано
решение зачисчитано
_____________
матфак вгу и остальная классика =)