Задачи 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
- 993 reads
vedro-compota
Sun, 06/13/2021 - 11:56
Permalink
решение зачисчитано
решение зачисчитано
_____________
матфак вгу и остальная классика =)