Welkom op de Nederland Computer Kennisnetwerk!  
 
Zoeken computer kennis
Home Hardware Netwerken Programmering Software Computerstoring Besturingssysteem
Computer Kennis >> Programmering >> Computer Programming Languages >> Content
Wat is Recursion in Programmering
In het programmeren van computers , recursie treedt op wanneer een functie of procedure - met andere woorden , een reeks instructies voor het uitvoeren van een bepaalde functie - noemt zichzelf , hetzij direct of indirect . De functie of procedure wijzigt de waarde van de parameter ( s ) die wordt doorgegeven het eerst genoemd en dringt zich de nieuwe waarde (n ) . Faculteiten

Het klassieke voorbeeld van recursie gaat informatica faculteiten . Een faculteit is het product van elk positief geheel getal vermenigvuldigd met alle lagere gehele getallen . De faculteit van 5 is 5 * 4 * 3 * 2 * 1 , de faculteit van 4 is 4 * 3 * 2 * 1 enzovoorts . De faculteit van een getal is gelijk aan het aantal vermenigvuldigd met de faculteit van het nummer direct eronder . Met andere woorden , factorial ( 5 ) gelijk is aan 5 * factorial ( 4 ) , faculteit ( 4 ) is dezelfde als 4 * factorial ( 3 ) en dergelijke, zodat een eenvoudige faculteit-functie kan worden geschreven als :

int faculteit ( int n ) { return n * faculteit ( n - 1 ) ; }
Base Case

Het probleem met deze eenvoudige functie , echter , is dat het geen base case , of voorwaarde om het te vertellen wanneer te stoppen . Zoals het er nu , zou de functie zich blijven bellen als n nul bereikt en verder in negatieve getallen , terugkerende onzinnige faculteiten . In werkelijkheid , een faculteit-functie moet stoppen wanneer n = 1 , dus een echte faculteit-functie kan worden geschreven als :

int
faculteit ( int n ) { if ( n == 1 ) { return 1 ; } else { return n * faculteit ( n - 1 ) ; } }

Engels , de functie bekijkt hoe doorgegeven als parameter en , als het getal 1 , geeft 1 . Anders retourneert de functie het aantal vermenigvuldigd met de faculteit van het aantal min een .
Programma Stack

Alle recursieve programma's moeten een onderste punt , of basis hebben geval , waar de operatie is zo triviaal dat een antwoord direct kunnen worden geretourneerd . Recursie werkt door het toevoegen of duwen en verwijderen of knallen , individuele frames en naar een gegevensstructuur bekend als programma stack . Er is maar een eindige hoeveelheid ruimte op het programma stack , dus , zonder een base case , een recursieve programma zou gewoon blijven draaien totdat de stapel overstroomde .
Pros & Cons
< br

Recursion > is een moeilijk te begrijpen , want het is niet intuïtief en lijkt , op het eerste gezicht , om ronde of valse logica te betrekken . Volgens IBM , wordt recursie zelden gebruikt door programmeurs in imperatieve programmeertalen - die niet expliciet opeenvolging van stappen om te presteren wordt opgegeven - omdat ze denken dat het is traag en afvalstoffen ruimte . Echter , indien correct toegepast , recursie is een krachtige programmeertaal techniek die een beetje kan programmeren taken kunnen stroomlijnen .

Previous: Next:
  Computer Programming Languages
·Hoe te Parameters gebruiken in…
·Hoe de Datagrid Kolommen in Fl…
·Hoe om programma's met Virtual…
·Hoe om te controleren terugdra…
·Hoe te configureren Citrix 
·Hoe te Titles uitschakelen op …
·Hoe u DataGrid.DataSource een …
·Hoe te DataGrid Columns verber…
·Hoe maak je een woordenboek te…
  Related Articles
Wat is VBA ? 
Wat zijn de functies van Visual Basic ? 
Wat is een Visual Basic DataGrid ? 
Wat is een Array in Visual Basic ? 
Wat is de Visual Basic IDE ? 
Wat is Visual Studio Express ? 
Wat is Visual Basic 6.0 ? 
Wat is OCX in Visual Basic ? 
Wat is proportioneel lettertype ? 
  Programmering Articles
·Hoe je GPX-bestanden gebruiken 
·Hoe je Java Inheritance Override 
·Gemeenschappelijke Substrings in C 
·Hoe je functies in Java Trim 
·Hoe de code HTML Met Python 
·Hoe Bron Code converteren van Csharp tot…
·Hoe te Vet Woorden in C + + Met Xcode 
·Hoe te Nodes in PHP & XML Verwijder 
·Hoe om te leren Python Online Free 
Copyright © Computer Kennis http://www.nldit.com