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

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

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

> Рекурсия
сообщение
Сообщение #1


Пионер
**

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

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


Люди объясните пожалуйста что такое рекурсия.... Мне надо программку написать использую рекурсивную функцию, а почитать про саму рекурсию у меня нету ничего.... В общем вот условие:
 "Написать программу, определяющую из скольки цифр состоит данное натуральное число"
Вот как я её написал, но по-моему это не рекурсия!! Объясните пожалуйста как её переделать(если она не правильна)!!!.............
Код

program lab6;
uses crt;
var
m:longint; q:char;
function KOL(n:longint):word;
var k:word;
 begin
 k:=0;
 if n=0 then begin k:=1; kol:=k; end;
   while (n<>0) do
     begin
     n:=n div 10;
     inc(k);
     KOL:=k;
   end;
 end;
begin
repeat
clrscr;
writeln('введите натуральное число');
readln(m);
writeln('число ',m,' состоит из ', KOL(m),' цифр');
write('Вычислить еще ?(Y/N)');
q:=ReadKey;
until not (q in ['Y','y']);
end.
???


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


Четыре квадратика
****

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

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


Цитата
рекурсия здесь заключается в том что ф-ция обращается сама к себе

В этом суть рекурсии
Цитата
переделать свою прогу

Вот что получится, если "развернуть" рекурсию в моей функции
Код

count:=1;
while n>=10 do begin
 inc(count);
 n:=n div 10
end;

А это почти то же самое, что и у тебя


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

Сообщений в этой теме
Amro   Рекурсия   5.01.2004 21:49
Amro   Re: Рекурсия   5.01.2004 22:23
trminator   Re: Рекурсия   5.01.2004 22:42
Amro   Re: Рекурсия   5.01.2004 22:51
trminator   Re: Рекурсия   5.01.2004 22:59
Amro   Re: Рекурсия   5.01.2004 23:13
Amro   Re: Рекурсия   5.01.2004 23:15
trminator   Re: Рекурсия   6.01.2004 0:58
SKVOZNJAK   Re: Рекурсия   6.01.2004 2:04


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

 





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