Je kunt in Excel zelf functies definiëren! Dat gaat zo:
Gebruik Alt-F11 om de Visual Basic Editor (VBE) te openen.
Kies uit het menu Invoegen en kies voor Module om een module toe te voegen.
Toets dan de volgende regels in:
Function D(n)
If n > 1 Then
D = D(n - 1) + n
Else
D = 1
End If
End Function
Om de functie te testen:
Ga terug naar het werkblad.
Je kunt nu met =D(...) voor een getal n op de puntjes het n-de driehoeksgetal laten uitrekenen. Dat kan ook een getal in een andere cel zijn, uiteraard.
Dat kan eventueel ook zo:
Open Functie invoegen (Shift-F3) en kies voor categorie Door gebruiker gedefinieerd.
Kies voor D. Geef als n een waarde of een celverwijzing op.
Klik OK.
Met de functie D() kan je dan bijvoorbeeld een lijstje maken met de eerste 20 driehoekgetallen:
Als het Excelblad 'raar' doet dan moet je Macro's inschakelen.
Nu is er wel iets bijzonders aan de hand met die Function D(n). De functie roept nameljk zichzelf aan. Dat noemen we recursie. Dat lijkt nogal zinloos maar in dit geval werkt het omdat $n$ steeds kleiner wordt. Als $n=1$ weet je dat $D=1$ en kan je alle gezochte waarden vinden. Je weet dus zeker dat het een keer stopt.
Fibonacci
Je krijgt de rij: 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, ...
De eerste twee termen zijn beide 1. Daarna is elke term de som van de twee voorafgaande termen.
Maar dat is dan ook recursie. In dat geval zou je ook een Function Fib(n) moeten kunnen maken die zichzelf oproept. Vergelijkbaar met de functie voor de driehoeksgetallen hierboven.
Opdracht
Schrijf zelf in Excel een functie die zichzelf aanroept voor berekenen van de getallen in de rij van Fibonacci. Test de functie en maar een lijstje van de eerste 20 getallen uit de rij van Fibonacci.
Schrijf hoe je dat hebt aangepakt in het tekstvlak hieronder en stuur je Excelblad als bijlage mee.