Помощь - Поиск - Пользователи - Календарь
Полная версия: Процедуры в Pascale
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
Xumuk
Описать процедуру SumDigit(N,S), находящую сумму цифр S целого числа N (N — входной, S — выходной параметр). Используя эту процедуру, найти суммы цифр пяти данных чисел.
ВАЩЕ не врубаюсь, помогите пожалуйста! unsure.gif
compiler
Цитата(Xumuk @ 18.03.2007 12:48) *

Описать процедуру SumDigit(N,S), находящую сумму цифр S целого числа N (N — входной, S — выходной параметр). Используя эту процедуру, найти суммы цифр пяти данных чисел.
ВАЩЕ не врубаюсь, помогите пожалуйста! unsure.gif

попробуй так разбей число на отдельные числа (делением на 10, 100, 100...) и суммируй их
Артемий
Воспользуйся поиском!Подобные задачи решались.
Tan
Есть число, находишь остаток от деления на 10, ложишь в сумматор, делишь нацело на 10 и так до тех пор пока не осталось число которое не делится на 10 (однозначное) его просто прибавлешь к сумматору и так с каждым числом.
Артемий
Есть простое решение с множеством,но поскольку я с налодонником выложу чуть позже.. smile.gif
compiler
Цитата(Tan @ 18.03.2007 13:08) *

Есть число, находишь остаток от деления на 10, ложишь в сумматор, делишь нацело на 10 и так до тех пор пока не осталось число которое не делится на 10 (однозначное) его просто прибавлешь к сумматору и так с каждым числом.

Tan, а у меня все работает так
 while number<>0 do begin
summ:=summ + (number mod 10);
number:=number div 10;
End;

ИМХО, так проще.. всё в одном цикле..
-Volvo-
summ:=summ + Abs(number mod 10);
, иначе получишь отрицательную сумму при переданном отрицательном числе... Ну, или после цикла взять сумму по модулю...
compiler
Цитата(-Volvo- @ 18.03.2007 13:45) *

иначе получишь отрицательную сумму при переданном отрицательном числе...

точно... не учел
Tan
Вот это объеденение всего вышеупомянутого :
uses crt;
var n,sum : integer;
procedure SumDigits (N : integer; var S : integer);
begin
while n <> 0 do
begin
s:= s + abs(n mod 10);
n:= n div 10;
End;
end;
begin
readln (n);
SumDigits (n,sum);
writeln (sum);
readkey;
end.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.