.
Отговор в тема
Резултати от 1 до 5 от общо 5
  1. #1

    за програмисти

    каква е разликата между това

    void func(void)
    {
    func();
    func();
    }

    и това

    void func(void)
    {
    func();
    }

    .



    Лазерно гравиране на плочки, запалки Zippo и други предмети по избор!
    За повече информация посетете >>> http://gravirane.pulslight.net/ <<<



    .

  2. #2
    anonymous546178
    Guest
    никва май

  3. #3
    Мега фен
    Регистриран на
    Aug 2008
    Град
    Златната Среда
    Мнения
    5 594

    Re: за програмисти

    Цитирай Първоначално написано от onqtam
    каква е разликата между това

    void func(void)
    {
    func();
    func();
    }

    и това

    void func(void)
    {
    func();
    }

    На теория тези функции са рекурсивни(в програмирането, рекурсивно значи функцията сама да извика себе си, примерно така може да се направи функция за изчисляване на факториел). На практика, нищо няма да се получи, тъй като функциите са празни, а рекурсията не трябва ей тъй да я слагаш из функцията, а в някакво условие или цикъл примерно трябва да е. И 2та примера са доста грешни, особено първият пък съсвем. Разликата е, че на теория се опитваш 2 пъти подред да извикаш функцията, което на практика пак няма да стане.
    01001000011000010110100001100001001000000111000001 1100100
    11001010110001101100001011010110110000100100000011 1001101100101

  4. #4
    Мега фен Аватара на Chacho
    Регистриран на
    Nov 2006
    Мнения
    15 573
    Nam3less е много прав. Пък и почти винаги рекурсия се използва с промяна на аргументите на процедурата/функцията. Тук функцията ти е безаргументна. Не съм запознат с езика, но или това е процедура или е нужно функцията да присвои стойност. Просто написана функция нищо не прави. Те връщат/присвояват стойности.

    Ето една примерна процедура на псевдокод с включена рекурсия.


    Процедура Показ_Папки(път до папката като низ)

    начало на процедурата

    Ако папката е една -> Изведи папката.

    Показ_Папки(едната папка)

    Иначе:

    Докато има папки:

    Изведи името на папката

    Показ_Папки(текущата папка)

    Премести на следваща папка.

    Край на цикъла

    Край на иначе-то

    Край на процедурата.
    Има 10 вида хора. Тези, които могат да четат двоичен код и тези, които не могат.

  5. #5
    Мега фен
    Регистриран на
    Aug 2008
    Град
    Златната Среда
    Мнения
    5 594
    И ето на C++ функция за намиране на факториел с рекурсия(функцията приема аргумент числото, на което трябва да намерим факториела). Иначе по принцип рекурсията е бавна.

    Код:
    unsigned fact(unsigned x)
    {
    if (x==0) return 1;
    else
    {
    unsigned faktoriel=x*fact(x-1);
    return faktoriel;
    }
    }
    01001000011000010110100001100001001000000111000001 1100100
    11001010110001101100001011010110110000100100000011 1001101100101

Правила за публикуване

  • Вие не можете да публикувате теми
  • Вие не можете да отговаряте в теми
  • Вие не можете да прикачвате файлове
  • Вие не можете да редактирате мненията си