C# : Functies en Recursie

Functies en Recursie in C#


1 / 17
volgende
Slide 1: Slide
newEditorICTInformaticaMBOStudiejaar 1-4

In deze les zitten 17 slides, met interactieve quizzen en tekstslides.

time-iconLesduur is: 60 min

Onderdelen in deze les

Functies en Recursie in C#


Leerdoel

Aan het einde van de les kun je uitleggen hoe je een MySQL-database kunt opzetten en koppelen aan een C#-applicatie.

Leerdoelen

Aan het einde van de les kun je functies in C# begrijpen en toepassen, parameters doorgeven en resultaten ontvangen, en de basisprincipes van recursie uitleggen.

Wat weet je al over functies in C#?

Wat is een Functie?

Een functie is een blok code dat een specifieke taak uitvoert. Het helpt om code herbruikbaar en georganiseerd te houden.

Reeks Instructies in een Functie

Een functie bestaat uit een reeks instructies die worden uitgevoerd wanneer de functie wordt aangeroepen.

Naam van een Functie

Een functie heeft een unieke naam die wordt gebruikt om de

functie aan te roepen.

Gegevens Aanbieden aan een Functie

Je biedt gegevens aan een functie door parameters te gebruiken. Deze worden gespecificeerd in de functiedefinitie.

using System;

// Functie die twee getallen optelt en het resultaat retourneert

static int TelOp(int a, int b)

{

return a + b;

}


static void Main()

{

// Aanroep van de functie met argumenten 5 en 3

int resultaat = TelOp(5, 3);

// Output het resultaat

Console.WriteLine("De som is: " + resultaat);

}


Gegevens Halen uit een Functie

Een functie kan gegevens retourneren met het sleutelwoord 'return'. Het type van de returnwaarde wordt gedefinieerd in de functiedefinitie.

using System;

// retourneert het kwadraat van een het getal

static int Vierkant(int getal)

{

return getal * getal;

}


// Aanroep van de functie met het argumenten 4

int resultaat = Vierkant(4);

// Output het resultaat

Console.WriteLine("Het kwadraat is: " + resultaat);

Type van een Functie

Het type van een functie geeft aan wat voor soort waarde de functie retourneert, bijvoorbeeld int, string of void.

using System;

// Deze functie retourneert een string

string GeefGroet()

{

return "Hallo, welkom!";

}

// Deze functie heeft 'void' en retourneert niets

void ToonBericht()

{

Console.WriteLine("Dit is een bericht zonder returnwaarde.");

}

// Functieaanroep

Console.WriteLine(GeefGroet()); // Output: Hallo, welkom!

ToonBericht(); // Output: Dit is een bericht zonder returnwaarde.


Variabelen Binnen Functies

Variabelen gedeclareerd binnen een functie bestaan alleen binnen die functie.
Binnen een functie kunnen variabelen worden gedeclareerd en gebruikt. Ze verdwijnen na de functie-uitvoering.

using System;

void ToonBericht()

{

string bericht = "Hallo, dit is een lokaal bericht."; // Lokale variabele

Console.WriteLine(bericht);

}

ToonBericht();


// Dit zal een fout geven, omdat 'bericht' niet buiten de functie bestaat
// Ongeldig: 'bericht' is niet zichtbaar buiten de functie

Console.WriteLine(bericht); // ERROR


Stel 1 vraag over iets dat je nog niet zo goed hebt begrepen.

Opdracht


Wat is Recursie?

Recursie is wanneer een functie zichzelf aanroept om een specifieke taak uit te voeren. Het is een krachtige techniek voor complexe problemen.

Voorbeeld

using System;

static void Aftellen(int n)

{

if (n <= 0)

{

Console.WriteLine("Klaar!");

return;

}

Console.WriteLine(n);

Aftellen(n - 1);

}


static void Main()

{

Aftellen(5);

}


Output van dit programma:


5

4

3

2

1

Klaar!


Basisgeval in Recursie

Het basisgeval is een conditie waarop de recursie stopt. Zonder basisgeval loopt de recursie oneindig door.

using System;

static void Aftellen(int n)

{

if (n <= 0) // Basisgeval

{

Console.WriteLine("Klaar!");

return;

}

Console.WriteLine(n);

Aftellen(n - 1);

}


static void Main()

{

Aftellen(5);

}


Recursieve Stap

In de recursieve stap roept de functie zichzelf aan met aangepaste argumenten om het probleem te vereenvoudigen.

using System;

static void Aftellen(int n)

{

if (n <= 0)

{

Console.WriteLine("Klaar!");

return;

}

Console.WriteLine(n);

Aftellen(n - 1); // Recursieve stap

}


static void Main()

{

Aftellen(5);

}


Opdracht


Stel 1 vraag over iets dat je nog niet zo goed hebt begrepen.