Recursion er et vigtigt begreb inden for datalogi. En rekursiv funktion er en, der påberåber sig , eller kalder , selv på et tidspunkt. Rekursion kan bruges til at styre programmets afvikling og løse vanskelige problemer på overraskende måder . For eksempel kan du skrive en rekursiv funktion , der trækker et rektangel til den standard output konsollen ved hjælp af C + + sprog. Hver rekursiv funktion tegner en enkelt linje af rektanglet , og derefter kalder sig selv , indtil rektanglet er helt dannet. Ting du skal
C + + Integrated Development Environment (IDE ), såsom Eclipse CDT
C + + Compiler , sådan en GCC
vise flere Instruktioner
1
Ilæg C + + IDE ved at klikke på programmets ikon . Når den åbner , skal du vælge "File /New /Project" og vælg " C + + projekt" for at oprette et nyt projekt. En tom kildekode fil vises i teksteditoren del af IDE .
2
Skriv funktionen signatur for den rekursive funktion. En funktion signatur indeholder funktionen navn, sin produktion type og dens input type. Til denne funktion , er navnet " recursiveRect " output type er " ugyldig " ( med andre ord, intet output ), og dens input type er repræsenteret af to heltal. Disse tal definerer en aktuelle række og en maksimal række. Skriv følgende funktion signatur : Hej
void recursiveRect ( int curRow , int maxRow )
{}
3
Test for at se, hvis den aktuelle række ( titlen " curRow ") er mindre end den maksimale række ( som har titlen " maxRow "), ved at placere en simpel "hvis" erklæring mellem krøllede parenteser i funktion " recursiveRect ," som dette : Hej
if ( curRow < maxRow )
{}
4
Skriv en erklæring, der udskriver en streng af stjerne tegn , når "hvis" erklæring er opfyldt. Placer følgende linje mellem de krøllede parenteser i " hvis " erklæring i forrige trin : Hej
cout << " ******** " << endl;
5
Skriv en rekursiv funktion kald til funktionen " recursiveRect " ved at placere redegørelsen nedenfor i mellem de krøllede parenteser i " hvis " erklæring . Bemærk at " curRow " variabel har et " + + " foran det . Dette trin den aktuelle række og giver den næste funktion opkald for at udskrive den næste linje i det rektangel
recursiveRect (+ + curRow , maxRow ) .
6
Skriv en tilbagevenden erklæring på bunden af den funktion , lige efter de krøllede parenteser i "hvis" erklæring : Hej
tilbagevenden;
7
Opret en hovedfunktion , hvorfra du vil kalde , eller påberåbe , Deres rekursive rektangel funktion
int main ()
{ recursiveRect (0, 4) ;} .
8
Tryk på den grønne "Play" knappen placeret på toppen af IDE. Programmet vil køre, og kalder rekursiv funktion , som derefter kalder sig tre gange mere. Resultatet er en fire- line rektangel , som ligner dette : Hej
********
********
** ******
********