Паскаль АВСВведите строку, в которой записана сума натуральных чисел, например, "1+25+3"....

0 голосов
667 просмотров

Паскаль АВС
Введите строку, в которой записана сума натуральных чисел, например, "1+25+3". Вычислите это выражение.


Информатика (152 баллов) | 667 просмотров
0

Насколько я понимаю задачу, имеется в виду, что в строке находятся числа, соединенные между собой знаком "плюс" и их количество ограничено только длиной строки.

0

моя программа считает только цифры, а не сами числа

0

Это не ответ на мой вопрос

0

а это был вопрос

0

Хорошо, переформулирую. Верно ли, что в строке находятся числа, соединенные между собой знаком "плюс" и их количество ограничено только длиной строки?

0

да

Дан 1 ответ
0 голосов
Правильный ответ

Var
  s,sd:string;
  i,n,sum,d,err:integer;
begin
  Writeln('Введите строку для суммирования');
  Read(s);
  sum:=0;
  n:=Length(s);
  if n>0 then begin
    i:=2; sd:=s[1];
    while i<=n do begin<br>      if s[i]<>'+' then sd:=sd+s[i]
      else begin
        Val(sd,d,err);
        sum:=sum+d;
        sd:=''
      end;
      Inc(i);   
    end;
    Val(sd,d,err);
    sum:=sum+d
  end;
  Writeln('Сумма равна ',sum)
end.

Тестовые примеры:
Введите строку для суммирования
1+25+3
Сумма равна 29

Введите строку для суммирования
143+38+253+62
Сумма равна 496

(142k баллов)
0

спасибо