IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

 
 Ответить  Открыть новую тему 
> Процедуры в Pascale, ПОМОГИТЕ!!!!
сообщение
Сообщение #1


Гость






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


Человек
*****

Группа: Пользователи
Сообщений: 1 050
Пол: Мужской
Реальное имя: Станислав

Репутация: -  3  +


Цитата(Xumuk @ 18.03.2007 12:48) *

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

попробуй так разбей число на отдельные числа (делением на 10, 100, 100...) и суммируй их


Сообщение отредактировано: compiler -


--------------------
Спасибо!
Удачи!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Помощник капитана
****

Группа: Пользователи
Сообщений: 601
Пол: Мужской
Реальное имя: Артем

Репутация: -  2  +


Воспользуйся поиском!Подобные задачи решались.


--------------------
Dum spiro spero!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Профи
****

Группа: Пользователи
Сообщений: 559
Пол: Мужской
Реальное имя: Бруно

Репутация: -  10  +


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


--------------------
Цитата
Imagination is more important than knowledge.
Albert Einstein
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Помощник капитана
****

Группа: Пользователи
Сообщений: 601
Пол: Мужской
Реальное имя: Артем

Репутация: -  2  +


Есть простое решение с множеством,но поскольку я с налодонником выложу чуть позже.. smile.gif


--------------------
Dum spiro spero!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


Человек
*****

Группа: Пользователи
Сообщений: 1 050
Пол: Мужской
Реальное имя: Станислав

Репутация: -  3  +


Цитата(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;

ИМХО, так проще.. всё в одном цикле..

Сообщение отредактировано: compiler -


--------------------
Спасибо!
Удачи!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #7


Гость






summ:=summ + Abs(number mod 10);
, иначе получишь отрицательную сумму при переданном отрицательном числе... Ну, или после цикла взять сумму по модулю...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #8


Человек
*****

Группа: Пользователи
Сообщений: 1 050
Пол: Мужской
Реальное имя: Станислав

Репутация: -  3  +


Цитата(-Volvo- @ 18.03.2007 13:45) *

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

точно... не учел


--------------------
Спасибо!
Удачи!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #9


Профи
****

Группа: Пользователи
Сообщений: 559
Пол: Мужской
Реальное имя: Бруно

Репутация: -  10  +


Вот это объеденение всего вышеупомянутого :
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.


Сообщение отредактировано: Tan -


--------------------
Цитата
Imagination is more important than knowledge.
Albert Einstein
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 29.10.2020 14:23
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name