rekursion är ett viktigt begrepp inom området datavetenskap . En rekursiv funktion är en som åkallar , eller samtal , själv någon gång . Rekursion kan användas för att styra programflödet och lösa svåra problem i överraskande sätt. Till exempel kan du skriva en rekursiv funktion som ritar en rektangel till standard ut konsolen med hjälp av C + + språket . Varje rekursiv funktion ritar upp en linje av rektangeln , och sedan kallar sig tills rektangeln är helt bildas . Saker du behöver
C + + Integrated Development Environment ( IDE ) , t.ex. Eclipse CDT
C + + kompilator , en sådan GCC
Visa mer Instruktioner
1
Ladda C + + IDE genom att klicka på dess programikon . När det öppnas , välj " Arkiv /Nytt /Project " och välj " C + +-projekt " för att skapa ett nytt projekt . En tom källkod filen visas i textredigeraren delen av IDE .
2
Skriv funktionen signaturen för rekursiv funktion . En funktion signatur innehåller funktionen namn , dess utgång typ och dess ingång typ . För denna funktion , är namnet " recursiveRect , " produktionen typen är " void " ( med andra ord , ingen utgång ) och dess ingång typ representeras av två heltal . Dessa heltal definierar en aktuell rad och en maximal rad . Skriv följande funktion signatur :
void recursiveRect ( int Currow , int maxRow ) katalog
{ } Addera 3
test för att se om den aktuella raden ( betitlade " Currow " ) är lägre än det högsta raden ( som är betitlad " maxRow " ) genom att placera en enkel " om " uttalande mellan klammerparenteser av funktionen " recursiveRect , " så här :
if ( Currow < maxRow ) katalog
{ }
4
Skriv ett uttalande som skriver ut en sträng med asterisk tecken när " om " uttalande är nöjd . Placera följande rad i mellan klamrarna i " om " uttalande i föregående steg :
cout << " ******** " << endl ;
5
Skriv en rekursiv funktion anrop till funktionen " recursiveRect " genom att placera uttalandet nedan i mellan klamrarna i " om " uttalande . Observera att " Currow " variabel har ett " + +" som föregår den. Detta ökar den aktuella raden och låter nästa funktionsanropet att skriva nästa rad i rektangeln
recursiveRect ( + + Currow , maxRow ) .
6
Skriv en återgång uttalande botten av funktionen , direkt efter klamrarna i " om " uttalande :
retur ,
7
Skapa en huvudfunktion , där du kommer att ringa , eller åberopa , din rekursiv rektangel funktion
int main ( ) katalog
{ recursiveRect ( 0 , 4 ) ;} .
8
Tryck på den gröna " Play " -knappen längst toppen av IDE. Programmet kommer att köras och anropa rekursiv funktion , som sedan kallar sig tre gånger . Resultatet är en fyra - line rektangel , som ser ut så här :
********
********
** ******
********