computervaardigheden l.
Download
Skip this Video
Download Presentation
Computervaardigheden

Loading in 2 Seconds...

play fullscreen
1 / 27

Computervaardigheden - PowerPoint PPT Presentation


  • 114 Views
  • Uploaded on

Computervaardigheden. Hoofdstuk 4 — Scripting ( Let op : dit is enkel voor studenten Biologie .). Inhoud. Dit hoofdstuk bekijkt heel kort de basis van scripting. Opstellen van functies. Conditionele code. Iteraties. Wat is scripting ?. Scripting is programmeren “in the small”

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'Computervaardigheden' - betrys


Download Now An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
computervaardigheden

Computervaardigheden

Hoofdstuk 4 — Scripting

(Let op: dit is enkel voor studenten Biologie.)

inhoud
Inhoud
  • Dit hoofdstuk bekijkt heel kort de basis van scripting.
    • Opstellen van functies.
    • Conditionele code.
    • Iteraties.
wat is scripting
Wat is scripting ?
  • Scripting is programmeren “in the small”
    • Automatiseren van kleine, repetitieve taken
    • Vaak eenmalig gebruik
  • Excel biedt hiervoor VBScript aan
    • Het is een subset van grote broer Visual Basic
    • Heeft integratie met Excel
de editor
De editor
  • Open VisualBasic Editor
    • Tools > Macro > Visual Basic Editor

De code komt hier.

Code testen kan (o.a.) hier.

voorbereidend werk
Voorbereidend werk
  • Maak Module
    • (1) rechtsklik op "VBA Project"
    • Dan: Insert > Module
  • Hernoem Module1
    • (2) venster "Properties"
    • Klik in vak naast "(Name)"
    • Nieuwe naam: "GlobaleFuncties"

1

2

een eerste functie
Een eerste Functie
  • In Editor
    • Schrijf volgende code:
    • Sla op
  • In Excel
    • Plaats volgende formule in een cel: "=inc(0)"

Public Function inc(x)

inc = x + 1

End Function

testen van je code
Testen van je code
  • Ga terug naar de Visual Basic Editor
  • In het venster "Immediate”:
    • Schrijf: "MsgBox(inc(1))" + keyboard: Enter
      • Dit toont een pop-up venstertje met daarin het resultaat van de berekening.
    • Schrijf: "Debug.print(inc(2))" + keyboard: Enter
      • Dit schrijft het resultaat van de berekening naar het Immediate venster.
    • Merk op dat je deze functies ook rechtsreeks in je eigen code kan gebruiken.
de vorm van elke functie
Public

Wat hier gedefinieerd wordt is "overal" te gebruiken.

Function

Wat we aan het maken zijn.

name

Vrij te kiezen, maar moet wel uniek zijn.

parameters

Data die meegegeven wordt en gebruikt kan worden binnen de functie.

statements

De echte code. Eén statement per lijn.

End Function

Einde van de code voor deze functie.

De vorm van elke functie

Public Function name(parameters)

statements

End Function

variabelen en assignment
Variabelen en "assignment"

Een variabele is een naam die verwijst naar een waarde.

naam = ”Bert”

leeftijd = 22

Deze twee statements stellen twee variabelen (naam en leeftijd) in, elk met een eigen waarde (resp. de tekst “Bert” en het getal 22).

leeftijd = leeftijd + 1

Dit statement neemt de waarde van variabele leeftijd (22), en telt er 1 bij op. Het resultaat (23) wordt daarna toegekend (ge-assigneerd) aan variabele leeftijd. Na afloop van deze statement heeft leeftijd de nieuwe waarde (23).

functie oproep
Functie-oproep

leeftijd = inc(leeftijd)

Dit statement toont een functie-oproep. De functie die opgeroepen wordt is onze “inc” functie. Deze functie vraagt één parameter. We kiezen hiervoor de waarde van variabele leeftijd (23). De functie geeft een nieuwe waarde terug (24), en deze nieuwe waarde wordt ge-assigneerd aan de variabele leeftijd. Na afloop van dit statement is de nieuwe waarde van variabele leeftijd dan ook 24.

functienaam(parameter1, parameter2, ...)

Dit is de algemene vorm van een functie-aanroep. Je gebruikt de naam van de functie gevolgd met de lijst van parameters tussen haakjes. De parameters zelf worden gescheiden met kommas.

functie waarde
Functie-waarde

Hoe maak je duidelijk wat het resultaat moet zijn van een functie die je aan het schrijven bent ? Heel eenvoudig: assigneer de waarde die je wil doorgeven aan de naam van de functie. Bij onze “inc” schreven we dan ook:

inc = x + 1

Eens de “End Function” bereikt wordt, neemt Excel deze waarde om door te geven aan de oproeper van de functie.

output en tekst manipulatie
Output en tekst-manipulatie

Debug.Print(leeftijd)

Dit statement schrijft de waarde van variabele leeftijd uit (24). Merk op dat ook dit statement een functie-aanroep is.

Debug.Print(naam & ” is ” & leeftijd & ” jaar.”)

Dit statement concateneert (d.m.v. de &’en) de waarde van variabele naam (“Bert”), “ is “, de waarde van variabele leeftijd (24) en “ jaar.”, en schrijft het geheel uit. Je zou dan ook in het immediate venster moeten zien verschijnen: “Bert is 24 jaar.”

commentaar in je code
Commentaar in je code

Het is vaak nuttig om een woordje uitleg te schrijven bij je code. Dit kan je doen met behulp van zogenaamde commentaar-regels. Een voorbeeld:

‘ Dit is commentaar. Volgende regel is dat niet.

maand = 1

‘ Dit is dan weer wel commentaar.

Rem En dit ook.

Alles wat na een enkele quote (‘) of na “Rem” staat, tot het einde van de lijn, wordt door Excel genegeerd. Je kan hier dan ook schrijven wat je wil.

voorwaardelijke code
Voorwaardelijke code

Volgende code doet vast wat je denkt:

If (zon > 0) Then

Debug.Print(”Zonneschijn.”)

Else

Debug.Print(”Geen zon.”)

End If

Dit is een voorbeeld van voorwaardelijke code. Afhankelijk van de waarde van variabele “zon” schrijf je ofwel de ene boodschap uit, ofwel de tweede. In geen geval zullen beide boodschappen verschijnen!

werking van het if statement

expr

true

false

else-block

then-block

Werking van het If-statement

If expr Then

then-block

Else

else-block

End If

If expr Then

then-block

End If

expr

true

false

then-block

voorwaardelijke expressies
Voorwaardelijke expressies

a = b ‘ is gelijk aan ?

a <> b ‘ is niet gelijk aan ?

a < b ‘ is kleiner dan ?

a > b ‘ is groter dan ?

a <= b ‘ is kleiner dan of gelijk aan ?

a >= b ‘ is groter dan of gelijk aan ?

Merk hier op dat "=" in VBScript gebruikt wordt zowel voor het testen op gelijkheid als voor assignatie. De context zou duidelijk moeten maken in welk geval je zit.

expr_1 or expr_2 ‘ Geldt er minstens één ?

expr_1 and expr_2 ‘ Gelden beide ?

not expr ‘ Geldt dit niet ?

Elke “expr” kan op zich weer een voorwaardelijke expressie zijn. Gebruik waar nodig haakjes om de juiste logica te krijgen.

if statement variant
IF-statement variant

expr1

true

If expr1 Then

block-1

ElseIf expr2 Then

block-2

‘ Enzovoort...

ElseIf exprn-1 Then

block-n-1

Else

block-n

End If

false

block-1

expr2

true

false

block-2

...

...

exprn-1

true

block-n-1

false

block-n

voorbeeld faculteit
Voorbeeld: faculteit

‘ Volgende functie berekent de faculteit van een getal.

‘ We nemen aan dat n >= 1.

Public Function faculteit(n)

If (n = 1) Then

faculteit = 1

Else

faculteit = n * faculteit(n - 1)

End If

End Function

De implementatie van deze functie steunt op het feit dat n! = n * (n-1)!, en dit voor alle n. Dit “truukje” moet echter op een gegeven moment stoppen, vandaar de controle of n gelijk is aan 1, in welk geval de functiewaarde 1 moet zijn.

oneindige lus
Oneindige lus

faculteit(-1)

Probeer eens:

Dit veroorzaakt een oneindige lus.

faculteit(-1)

‘ => -1 * faculteit(-2)

‘ => -1 * -2 * faculteit(-3)

‘ => -1 * -2 * -3 * faculteit(-4)

‘ enz...

Wat je dan bij uitvoering kan zien is dat Excel meldt dat er geen “stack space” meer is. Dit komt omdat elke functie-aanroep plaats op “de stack” vraagt. Door de oneindige lus heb je oneindig plaats nodig, wat nog steeds niet kan in onze computers... Hoe je met dergelijk situaties om moet gaan wordt wel duidelijk in de oefeningenlessen.

alternatieve definitie van faculteit
Alternatieve definitie van faculteit

‘ Volgende functie berekent de faculteit van een getal.

‘ We nemen aan dat n >= 1.

Public Function faculteit(n)

faculteit = 1

Do While (n <> 1)

faculteit = faculteit * n

n = n - 1

Loop

End Function

Deze implementatie maakt gebruik van herhaling (ook “iteratie” genoemd). Hoe iteratie werkt, wordt getoond op de volgende slides.

while until statement
WHILE/UNTIL statement

Do While expr

block

Loop

expr

false

true

block

block wordt mogelijk

0 x uitgevoerd !

expr

false

Do Until expr

block

Loop

true

block

oneindige lus 2
Oneindige lus (2)

faculteit(-1)

Probeer nog eens:

Dit veroorzaakt nog steeds een oneindige lus.

faculteit(-1)

‘ => faculteit = -1; n = -2

‘ => faculteit = -1 * -2; n = -3

‘ => faculteit = -1 * -2 * -3; n = -4

‘ enz...

Ook hier weer kan Excel je een melding geven van het probleem. In dit geval zie je waarschijnlijk een “overflow” melding. Dit is omdat de waarde van variabele faculteit telkens groter en groter wordt. Er is echter een limiet aan wat de waarde van een getal kan zijn. Gaat de berekende waarde over die limiet dan krijg je “overflow”.

for statement vorm
FOR-statement (vorm)

For naam = first To last Step step

block

Next naam

naam = first

first, last, step: expressies

met als resultaat een geheel getal

true

false

naam <= last

block

For naam = first To last

block

Next naam

naam = naam + step

Hierbij impliciet: step = 1

nog maar eens een faculteit
Nog maar eens een faculteit

‘ Volgende functie berekent de faculteit van een getal.

‘ We nemen aan dat n >= 1.

Public Function faculteit(n)

faculteit = 1

For i = 1 To n

faculteit = faculteit * i

Next i

End Function

Ook hier maken we weer gebruik van iteratie. Het verschil met de “Do While” versie is dat we deze keer niet zelf onze “teller” moeten beheren.

Merk op dat we deze keer geen oneindige lus krijgen als n = -1. Reden hiervoor is dat tellen van 1 tot -1 meteen stopt.

exit function
Exit Function

‘ Volgende functie berekent de faculteit van een getal.

Public Function faculteit(n)

faculteit = 1

If (n < 1) Then

Exit Function ‘ => Verlaat de functie met waarde 1.

End If

For i = 1 To n

faculteit = faculteit * i

Next i

End Function

Deze versie controleert de waarde van parameter n, en indien die kleiner dan 1 is stopt de functie meteen (Exit Function).

survival guide
Survival guide
  • Belangrijk
    • Een eigen functie definiëren.
    • Die functie kunnen aanroepen vanuit een werkblad.
    • Een IF-statement gebruiken.
  • Nuttig
    • Een lus-structuur gebruiken.
      • Loop While
      • Loop Until
      • For
conclusie
Conclusie
  • Scripting
    • Eigen functies opstellen en gebruiken vanuit Excel.
    • Conditionele code (If Then Else).
    • Iteratieve code. (Do While, Do Until, For).