Предмет: Информатика, автор: SeLeN5

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


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

Ответы

Автор ответа: Аноним
10
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
      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


SeLeN5: спасибо
Похожие вопросы
Предмет: Қазақ тiлi, автор: mashashteyn04