Rekursjon er et viktig begrep innen informatikk. En rekursiv funksjon er en som påkaller , eller samtaler , selv på et tidspunkt . Rekursjonen kan brukes til å kontrollere programflyten og løse vanskelige problemer på overraskende måter . For eksempel kan du skrive en rekursiv funksjon som trekker et rektangel til standard output konsollen ved hjelp av C + + språk . Hver rekursiv funksjon trekker en eneste linje av rektangelet , og deretter kaller seg inntil rektangelet er helt dannet. Du trenger
C + + Integrated Development Environment ( IDE ), for eksempel Eclipse CDT
C + + Compiler , slik GCC
Vis flere Instruksjoner
en
Load den C + + IDE ved å klikke på programmets ikon. Når den åpnes, velger du "Fil /Ny /Project" og velg " C + + Project" for å opprette et nytt prosjekt . En tom kildekoden filen vises i teksteditoren delen av IDE .
2
Skriv funksjonen signatur for den rekursive funksjonen. En funksjon signatur inneholder funksjonen navn , sin produksjon type og dens input type . For denne funksjonen , er navnet " recursiveRect , " output typen er " tom" (med andre ord , ingen output) og input type er representert med to heltall . Disse heltall definere en gjeldende rad og en maksimal rad. Skriv følgende funksjon signatur : en
void recursiveRect ( int Currow , int maxRow )
{ }
3
Test for å se om den gjeldende raden ( tittelen " Currow ") er mindre enn den maksimale rad (som har tittelen " maxRow ") ved å plassere en enkel " hvis " statement i mellom klammeparenteser av funksjonen " recursiveRect ", som dette : en
if ( Currow < maxRow )
{ }
4
Skriv en setning som skriver ut en streng med stjerne tegn når " hvis " statement er fornøyd. Plasser følgende linje i mellom klammeparenteser av " hvis " statement i forrige trinn : en
domstol << "******** " << endl ;
5
Skriv en rekursiv funksjon kall til funksjonen " recursiveRect " ved å plassere uttalelsen nedenfor i mellom klammeparenteser av " hvis " statement. Merk at " Currow " variable har en " + + " i forkant det . Dette trinn gjeldende rad og lar neste funksjon samtale for å skrive den neste linjen i rektangelet
recursiveRect ( + + Currow , maxRow ) ; .
6
Skriv en retur uttalelse på bunnen av funksjon, rett etter klammeparentes av " hvis " statement : en
tilbake;
7
Lag en hovedfunksjon , hvor du vil ringe , eller påkalle , din rekursiv rektangel funksjon
int main ( )
{ recursiveRect ( 0 , 4 ) ;} .
8
Trykk på den grønne « Play »-knappen plassert på toppen av IDE . Programmet vil løpe og kaller den rekursive funksjonen, som deretter kaller seg tre ganger . Resultatet er en fire - linjen rektangel, som ser slik ut : en
********
********
** ******
********