Подсчитать сумму всех цифр в строке - Pascal
Формулировка задачи:
дана строка символов состоящая из букв и цифр. подсчитать сумму всех цифр в строке
Решение задачи: «Подсчитать сумму всех цифр в строке»
textual
Листинг программы
program sd;
uses crt;
var s:string;
i,k,code,sum:integer;
Begin
sum:=0;
writeln('s: ');readln(s);
for i:=1 to length(s) do
begin
val(s[i],k,code);
if code=0 then sum:=sum+k;
end;
if sum=0 then writeln('В строке нет цифр')
else
writeln('Summa= ',sum);
End.
Объяснение кода листинга программы
- Объявляются переменные:
s- строковая переменная, в которую будет сохраняться введенная пользователем строка.i- целочисленная переменная, используемая в цикле для обхода всех символов в строке.k- целочисленная переменная, в которую будет временно сохраняться цифра из строки для последующего подсчета суммы.code- целочисленная переменная, хранящая код возврата при конвертации символа в число (используется в процедуреval).sum- целочисленная переменная, в которую будет накапливаться сумма цифр.
- Инициализируется переменная
sumзначением 0. - Выводится на экран приглашение
s:и пользователь вводит строку, которая сохраняется в переменнойs. - Запускается цикл, который перебирает все символы в строке от первого до последнего.
- Внутри цикла происходит проверка каждого символа в строке на то, является ли он цифрой:
- Происходит конвертация символа в число при помощи процедуры
val(s[i], k, code). Если конвертация прошла успешно (code=0), то значение цифры сохраняется в переменнойk. - Если код возврата из процедуры
valравен 0, то данная цифра прибавляется к общей сумме в переменнойsum.
- Происходит конвертация символа в число при помощи процедуры
- После окончания цикла происходит проверка на то, были ли найдены цифры в строке:
- Если сумма оказалась равной 0, то на экран выводится сообщение
В строке нет цифр. - В противном случае на экран выводится сообщение о сумме найденных цифр
Summa=и значение переменнойsum.
- Если сумма оказалась равной 0, то на экран выводится сообщение