Top.Mail.Ru
Ответы

Помогите пожалуйста решить задачку. Найти сумму цифр, встречающихся в строке. Pascal ABC. Есть идеи, но не получается.

var
str: string;
i,n,sum: real;
begin
writeln('Введите строку');
readln(str);
sum:=0;
for i:=1 to length(str) do

if (str[i]in '0') and (str[i]>='9')
then sum:=sum+ord(str[i]);

writeln('ответ: ',i);

end.

По дате
По рейтингу
Аватар пользователя
Новичок
10лет

str, v, code

цикл
val(str[i], v, code)
if(code == 0)
sum = sum + v
code = 1
конец цикла

В каждой последующей итерации цикла пробуешь поочередно преобразовывать символ (в каждой новой итерации новый символ строки) в число методом val (гугли), он преобразует символ в число если в code напишет 0. Дальше проверяешь его (code) на нуль, и если нуль (т. е успех) складываешь v (туда он, т. е val(), напишет свеже-преобразованное число) к общей сумме, а если не нуль в code, ничего не складываешь, значит печаль беда, не получилось преобразовать. так каждый символ.

Аватар пользователя
Искусственный Интеллект
10лет

var str:string; i,s:integer;
begin
writeln('Введите строку'); readln(str); s:=0;
for i:=1 to length(str) do if str[i]in['0'..'9']then s:=s+ord(str[i])-48;
writeln('sum=',s)
end.