- Форум
- По малко от всичко
- Информационни технологии
- за програмисти
каква е разликата между това
void func(void)
{
func();
func();
}
и това
void func(void)
{
func();
}
![]()
![]()
![]()
.
Лазерно гравиране на плочки, запалки Zippo и други предмети по избор!
За повече информация посетете >>> http://gravirane.pulslight.net/ <<<
.
никва май![]()
На теория тези функции са рекурсивни(в програмирането, рекурсивно значи функцията сама да извика себе си, примерно така може да се направи функция за изчисляване на факториел). На практика, нищо няма да се получи, тъй като функциите са празни, а рекурсията не трябва ей тъй да я слагаш из функцията, а в някакво условие или цикъл примерно трябва да е. И 2та примера са доста грешни, особено първият пък съсвем. Разликата е, че на теория се опитваш 2 пъти подред да извикаш функцията, което на практика пак няма да стане.Първоначално написано от onqtam
01001000011000010110100001100001001000000111000001 1100100
11001010110001101100001011010110110000100100000011 1001101100101
Nam3less е много прав. Пък и почти винаги рекурсия се използва с промяна на аргументите на процедурата/функцията. Тук функцията ти е безаргументна. Не съм запознат с езика, но или това е процедура или е нужно функцията да присвои стойност. Просто написана функция нищо не прави. Те връщат/присвояват стойности.
Ето една примерна процедура на псевдокод с включена рекурсия.
Процедура Показ_Папки(път до папката като низ)
начало на процедурата
Ако папката е една -> Изведи папката.
Показ_Папки(едната папка)
Иначе:
Докато има папки:
Изведи името на папката
Показ_Папки(текущата папка)
Премести на следваща папка.
Край на цикъла
Край на иначе-то
Край на процедурата.
Има 10 вида хора. Тези, които могат да четат двоичен код и тези, които не могат.
И ето на C++ функция за намиране на факториел с рекурсия(функцията приема аргумент числото, на което трябва да намерим факториела). Иначе по принцип рекурсията е бавна.
Код:unsigned fact(unsigned x) { if (x==0) return 1; else { unsigned faktoriel=x*fact(x-1); return faktoriel; } }
01001000011000010110100001100001001000000111000001 1100100
11001010110001101100001011010110110000100100000011 1001101100101