Hoofdstuk 6: Zelfgedefinieerde functies en procedures

6.1          Inleiding functies
6.2          Voorbeeld
Oefeningen hoofdstuk 6

6.1         Inleiding functies

In hoofdstuk 3 hebben we kennisgemaakt met een aantal ingebouwde functies en procedures. In dit hoofdstuk leren we zelf functies en procedures maken die we kunnen gebruiken binnen een toepassing.

Het voordeel van het gebruik van procedures is de mogelijkheid om ze op een eenvoudige, overzichtelijke manier opnieuw te gebruiken. Verder verhoogt het de leesbaarheid van een programma omdat we met relatief kleine stukken programmacode werken.

Een procedure is een reeks van commando’s  die het programma in volgorde uitvoert. Een procedure resulteert niet in een returnwaarde en kunnen we dus niet gebruiken aan de rechterzijde van een toewijzing.

In tegenstelling tot een procedure, geeft een functie wel een returnwaarde. We kiezen voor een functie om een resultaat te berekenen en te gebruiken in een expressie rechts van de toewijzing.

Argumenten van een procedure kunnen  “By Value” of “By Reference” doorgegeven worden.

  • ByVal:     De inhoud van de variabele is doorgegeven en niet de variabele zelf. De procedure kan de inhoud van de variabele niet wijzigen.
  • ByRef:     Niet de inhoud van de variabele maar een verwijzing naar de variabele is doorgegeven. De waarde van de variabele kan aangepast worden in de functie.

Variabelen worden standaard ByVal doorgegeven. Het is zelden nodig een variabele ByRef door te geven. Dit kunnen we eventueel gebruiken om het programma sneller te maken en om minder geheugen aan te spreken.
Top

6.2         Voorbeeld

Figuur 6.1 functies

Figuur 6.1: Voorbeeld zelfgedefinieerde functie

Bij de functie “private static void Toon1 (int intGet” is het resultaat in de console nog altijd gelijk aan 1. Niet de variabele zelf maar de inhoud van de variabele is doorgegeven (ByVal).

De functie “private static void Toon2 (ref int intGet)” geeft niet de inhoud van de variabele door , maar zorgt voor de doorverwijzing naar de variabele (ByRef).

Wanneer we een variabele als referentie willen doorgeven dan moet deze variabele geïnitialiseerd zijn. Het sleutelwoord “out”  in de functie “private static void Toon3 (out int intGet)”  verwijst naar een uitgaande parameter en zorgt ervoor dat de argumenten sowieso zonder voorafgaande initialisatie worden doorgestuurd ByRef.

Het resultaat in de console ziet er als volgt uit:

Figuur 6.2 functies

Figuur 6.2: Console zelf gedefinieerde functie

Top

Oefeningen hoofdstuk 6

Extra oefening 6-1     Ontwerp een consoletoepassing waarmee je een Belgisch ondernemingsnummer kan controleren. Een Belgisch ondernemingsnummer is als volgt opgebouwd: BE 0xxx.xxx.xxx waarbij BE de landcode is die standaard gevolgd wordt door een spatie en dan een 0. Wanneer je de volgende 7 cijfers deelt door 97 in een gehele deling, dan is het getal gevormd door de laatste 2 cijfers gelijk aan 97 minus de rest van deze gehele deling.
Bij een geldig ondernemingsnummer verschijnt de tekst “Geldig ondernemingsnummer.”, bij een ongeldig ondernemingsnummer “Ongeldig ondernemingsnummer.”. Indien het ondernemingsnummer niet is ingegeven volgens de standaardopbouw vermeld in deze tekst, dan verschijnt in de console de tekst “Geef het ondernemingsnummer in volgens de juiste format.”.
Geef de code BTW in om de console te stoppen.

Top

Vorige          Volgende