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

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

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

> Задача на рекурсию..., ---
сообщение
Сообщение #1


Пионер
**

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

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


Добрый день уважаемые форумцы... есть задача:
Написать рекурсивно функцию для вычисления: 1.) Сумы цифр натурального числа 2.) Количество цифр натурального числа
Я вообще двоюшник blink.gif так что не судите строго smile.gif
написал я так:


Program ex657;
uses crt;

var num,sum,kol:integer;

{--------------------------FUNCTION------------------------------------}

function cout_sum(var n:integer;var s:integer;var k:integer):boolean;
var mo:integer;
pr:boolean;
begin
mo:=n mod 10;
n:=n div 10;
s:=s+mo;
inc(k); {функция типа k:=k+1;}
if n<>0 then begin pr:=cout_sum(n,s,k); end else cout_sum:=false;
end;

{--------------------------END FUNCTION---------------------------------}

{---main program---}
begin
clrscr;
writeln('Введите число=');
readln(num);
write('Для числа=',num);
cout_sum(num,sum,kol);
writeln(' Сума=',sum,' Количество=',kol);
readkey;



Преподаватель сказал что это вообще не рекурсия и не правильно то что я написал... mad.gif хотя задача то работает...
общем надо бы как то переделать но как не подскажите? blum.gif Пожалуйста....

Сообщение отредактировано: Димас -


--------------------
Каждый человек , которого я знаю встречаю, превосходит меня в какой нить области, и я готов у него этому учится:)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
сообщение
Сообщение #2


Гость






Цитата
общем надо бы как то переделать но как
Хотя бы вот так (для нахождения суммы цифр числа, количество цифр находится аналогично - попробуй сделать это сам):
function count_sum(n: integer): integer;
begin
if n = 0 then count_sum := 0
else count_sum := (n mod 10) + count_sum(n div 10);
end;

 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Пионер
**

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

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


Цитата(volvo @ 22.02.2007 19:16) *

количество цифр находится аналогично - попробуй сделать это сам

Пробовал,пробовал и нифинта не понял... и как вижу сам не сделаю((( как сделать рекурсивную функцию для вычисления количества цифр((((
вообще я загнал всё в цыкл и работает на ура и нах мне эта рекурсия... но препод не приймет задачку, потому надо через долбаную рекурсию mad.gif как написать это в рекурсии? smile.gif smile.gif


--------------------
Каждый человек , которого я знаю встречаю, превосходит меня в какой нить области, и я готов у него этому учится:)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме


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

 





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