Учитывая, натуральное число может быть достаточно велико, то советую считать в строку, потом
For i:=1 to length(S) do begin
Val(S,x, Code);
if code=0 then c:=c+x
else writeln ('error');
end;
где S строковая переменная,
Code, i, x, c целочисленные.
Если назначен специальный человек для контроля за чистотой исходной информации, то найдется изобратательный идиот, который придумает способ, чтобы неправильная информация прошла этот контроль.
А я бы так:
for i:=1 to length(s) do
sum:=sum+ord(s)-ord('0');
Для нечисловых данных, естественно, выдаст неверное значение
Искусство программирования - заставить компьютер делать все то, что вам делать лень.
Для "спасибо" есть кнопка "Спасибо" в виде звездочки внизу под ником автора поста.