Задача 8 урок 17
Primary tabs
Задача 8 урок 17
На вход вашей программы подается строка вида:
5 + 6 -34 + 56 - 7 + 2
("сколько угодно" чисел с операциями суммы и разности в любом порядке). Вычислите результат (пробелов между символом операции и числом может и не быть)
var i, sum, N, Code: integer;
s, m, z: string;
begin
z:=''; //хранит значение арефмитич знака +/-
// m переменная текущего числа
sum:=0; //переменная текущейсуммы по строке
writeln('Vvedite stroku');
readln(s);
for i:=1 to length(s) do
begin
Val(s[i], N, Code);
if Code=0 then
m:=m+s[i]
else if (s[i]='+') OR (s[i]='-') then
begin
if z = '' then //определение первого числа в строке
begin
Val(m, N, Code);
sum:=N; //сумма = первое число
m:=''; //обнуляем строку числа
end
else //если число не первое
begin
Val(m, N, Code);
if z='+' then
sum:=sum+N
else
sum:=sum-N;
m:='';
end;
if s[i]='+' then
z:='+'
else
z:='-';
end;
if i = length(s) then
begin
Val(m, N, Code);
if z='+' then
sum:=sum+N
else
sum:=sum-N;
end;
writeln(sum);
end;
writeln('= ',sum);
readln();
end.- Log in to post comments
- 1237 reads
vedro-compota
Sun, 09/05/2021 - 12:31
Permalink
решение засчитано
решение засчитано
_____________
матфак вгу и остальная классика =)