Avatar billede lone85 Nybegynder
11. januar 2001 - 11:19 Der er 2 kommentarer og
1 løsning

rekursion

er der nogen der kan være så søde at forklare mig om rekursion, skåret ud i pap så selv jeg kan forstå det.
det ville være totalt fedt.
tak
Avatar billede jacobve Nybegynder
11. januar 2001 - 12:15 #1
Overordnet set er rekursion, et modul der kalder en kopi af sig selv igen og igen hvor de paremeter som modulet tager har ændrer sig fra kald til kald.

Et modul der er lavet så det benytter sig af rekursion, har altid en stop betingelse. I nedenstående tilfælde er det hvor funktionen returnerer 1 i tilfælde af at m = 0
- IF m = 0 THEN return 1;
Derudover indeholder funktionen et kald til sig selv (det der betegnes det rekursive kald) - det i ELSE delen.

Jeg vil lige forklare det med et eksempel:

--Funktion:
--potens(n in NUMBER, m in NUMBER) return NUMBER (n^m)
--Rekursiv funktion


--opretter en funktion
CREATE OR REPLACE FUNCTION potens (n IN NUMBER, m IN NUMBER)
RETURN NUMBER
IS
BEGIN
    IF m = 0 THEN
        RETURN 1;
-- dette er stop betingelsen
    ELSE
        RETURN (potens(n, m-1) * n);
                -- dette er det rekursive kald
                -- bemærk at vi trækker en fra m
                -- dvs. at m langsomt nærmer sig nul
    END IF;
END;
/
(denne funktion går udfra at m er positiv ved første kald til denne funktion)


Rekursion skal altså ses således:

Et modul kalder sig selv 0.. mange gange, afhængig af hvilke parameter modulet får.

Håber dette kan hjælpe...
Avatar billede jacobve Nybegynder
11. januar 2001 - 12:16 #2
Og held og lykke !!
Avatar billede lone85 Nybegynder
11. januar 2001 - 13:45 #3
Tusind tak for hjælpen, det var kanon
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester