Functies en Recursie in C#
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.