Computervaardigheden Hoofdstuk 4 — Scripting (Let op: dit is enkel voor studenten Biologie.)

Slides:



Advertisements
Verwante presentaties

Advertisements

Bij een herhaald experiment, met telkens dezelfde kans op succes gebruiken we de binomiale kansverdeling Een binomiale kansverdeling wordt gekenmerkt door.
PSD Basisstructuren programmeren.
PSD Basisstructuren programmeren.
Cirkels…omtrek en oppervlakte
Stelling van Pythagoras
Leer de namen van de noten 1
Downloaden: Ad-aware. Downloaden bestaat uit 3 delen: •1. Zoeken naar de plek waar je het bestand kan vinden op het internet •2. Het nemen van een kopie.
H1 Basis Rekenvaardigheden
Programmeren met Alice
Hoofdstuk 8: Recursie.
Ronde (Sport & Spel) Quiz Night !
Practica Computerlinguistiek Tekst en uitleg:
Datastructuren Analyse van Algoritmen en O
‘Inleiding programmeren in Java’ SWI cursus: ‘Inleiding programmeren in Java’ 4e college Woe 19 januari 2000 drs. F. de Vries.
Naar het Jaareinde toe
VBA en VBS Een introductie.
Leer de namen van de noten 2
Hoofdstuk 6: Controle structuren
1 SOCS Hoofdstuk 1 Computerarchitectuur. 2 Overzicht Eenvoudig C Arrays Functies Records Dynamische gegevenstructuren Macro’s C.
Informatica Universiteit AntwerpenScripting 5.1 Informatica 1rste BAC Biologie Hoofdstuk 5 Scripting.
Visibility-based Probabilistic Roadmaps for Motion Planning Tim Schlechter 13 februari 2003.
Les 2 Basisbouwstenen (deel 1)
Parallelle Algoritmen String matching. 1 Beter algoritme patroonanalyse Bottleneck in eenvoudig algoritme: WITNESS(j) (j = kandidaat in eerste i-blok)
Deze les wordt verzorgd door de Kansrekening en statistiekgroep Faculteit W&I TU/e.
Neurale Netwerken Kunstmatige Intelligentie Rijksuniversiteit Groningen April 2005.
Frank Stalpers en Ad Baars
Functies als Getallen Jan Martin Jansen.
Flow controle Keuzes maken. Het if-statement Soms moet code alleen in bepaalde situaties uit gevoerd worden Hiervoor heeft C de if-else constructie: if(voorwaarde1){
Werken aan Intergenerationele Samenwerking en Expertise.
ribwis1 Toegepaste wiskunde – Exponentiele functies Lesweek 5
ribwis1 Toegepaste wiskunde Lesweek 01 – Deel B
PHP functies.
DB&SQL8- 1 VBA Visual Basics for Applications: eigen Office versie vanaf Office2000 gelijk voor alle applicaties Programmeren onder meer nodig voor Het.
6.1 Inleiding HOOFDSTUK 6 METHODEN
Computertechniek Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology ; PIC assember programeren 1 Les 3 - onderwerpen Het.
Klik ergens op het witte deel van deze pagina om verder te gaan
Inleiding tot recursie1 door Maarten Lemmens. Inleiding tot recursie2 Wat is recursie ?  Een procedure die zichzelf oproept.  Vb. in echte leven: Radio.
Chris Pollentier 18 / 12 / 2002 De LOGO taalwereld.
, 17h30Recursie 1 Inleiding tot recursie Karel Popelier.
ZijActief Koningslust 10 jaar Truusje Trap
1 Syntax JavaLogo. 2 Hoofdstuk 1 Tekenen in Java.
Voorrangsregels bij rekenen (1)
ECHT ONGELOOFLIJK. Lees alle getallen. langzaam en rij voor rij
PHP & MYSQL LES 02 PHP & FORMULIEREN. PHP & MYSQL 01 PHP BASICS 02 PHP & FORMULIEREN 03 PHP & DATABASES 04 CMS: BEST PRACTICE.
De financiële functie: Integrale bedrijfsanalyse©
Programmeerstijl Hoofdstuk 21. Visual Basic.NET voor studenten2 Inleiding Belang van een goede programmeerstijl:  Programma’s worden door meerdere mensen.
1 Zie ook identiteit.pdf willen denkenvoelen 5 Zie ook identiteit.pdf.
ZijActief Koningslust
Les 3 Basisbouwstenen (deel 2) Programmeren met Visual Basic Karl Moens.
CONTROLESTRUCTUREN (DEEL 1)
Tircms03-p les 2 Hfdst 3,4 Meer operatoren Functies.
Hoofdstuk 3 - Conditionele logica
Vervolg C Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 1 Onderwerpen voor vandaag top-down decompositie Opdrachten:
Spreadsheets. Testen. Met spreadsheets.. |  Spreadsheet, het meest gebruikte (test) tool in de wereld …  Aan de slag: Spreadsheet PRA  Risico’s en.
Docentinstructie: Het is aan te bevelen de eerste dia’s klassikaal te tonen en met uitleg te bespreken. Als na zes dia’s een korte demo van Celsius/Fahrenheit.
Codetuts Academy Les 6 Module 2a Php Fundamentals 1.
Les 3 - Operators Workshop Php Basic. ICT Academy Php Basic Content Operators Wiskundig Toewijzing Vergelijking.
IF() ELSE() LES 4: VOORWAARDEN. BOOL Een variabele die slechts 2 mogelijke waarden kan hebben: true(waar) of false(niet waar) duid je aan met bool bool.
Programmeren met Reeksen
Tinpro015b-les 1 C++ voor C-kenners Voor Technische Informatica.
Gameprogrammeren: Herhalingen
Programmeren woensdag 4 oktober 2017.
Small Basic Console deel 2
Small Basic Console deel 2
SQL Les February 2019.
Tellen met kaarten.
Python – For loop + strings
Transcript van de presentatie:

Computervaardigheden Hoofdstuk 4 — Scripting (Let op: dit is enkel voor studenten Biologie.)

2 Inhoud Dit hoofdstuk bekijkt heel kort de basis van scripting. -Opstellen van functies. -Conditionele code. -Iteraties.

3 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

4 De editor Open VisualBasic Editor -Tools > Macro > Visual Basic Editor De code komt hier. Code testen kan (o.a.) hier.

5 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

6 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

7 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.

8 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. Public Function name(parameters) statements End Function

9 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).

10 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.

11 Functie-waarde inc = x + 1 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: Eens de “End Function” bereikt wordt, neemt Excel deze waarde om door te geven aan de oproeper van de functie.

12 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.”

13 Commentaar in je code ‘ Dit is commentaar. Volgende regel is dat niet. maand = 1 ‘ Dit is dan weer wel commentaar. Rem En dit ook. 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: 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.

14 Voorwaardelijke code If (zon > 0) Then Debug.Print(”Zonneschijn.”) Else Debug.Print(”Geen zon.”) End If Volgende code doet vast wat je denkt: 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!

15 Werking van het If-statement expr then-block else-block truefalse expr then-block true false If expr Then then-block Else else-block End If If expr Then then-block End If

16 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 ? expr_1 or expr_2‘ Geldt er minstens één ? expr_1 and expr_2‘ Gelden beide ? not expr‘ Geldt dit niet ? 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. Elke “expr” kan op zich weer een voorwaardelijke expressie zijn. Gebruik waar nodig haakjes om de juiste logica te krijgen.

17 IF-statement variant expr1 block-1 true false expr2 block-2 true false exprn-1 block-n-1 true false... block-n... If expr1 Then block-1 ElseIf expr2 Then block-2 ‘ Enzovoort... ElseIf exprn-1 Then block-n-1 Else block-n End If

18 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.

19 Oneindige lus faculteit(-1) 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. Probeer eens:

20 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.

21 WHILE/UNTIL statement expr block true false block wordt mogelijk 0 x uitgevoerd ! expr block true false Do While expr block Loop Do Until expr block Loop

22 Oneindige lus (2) faculteit(-1) 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”. Probeer nog eens:

23 FOR-statement (vorm) truefalse naam <= last block naam = first naam = naam + step For naam = first To last Step step block Next naam first, last, step: expressies met als resultaat een geheel getal For naam = first To last block Next naam Hierbij impliciet: step = 1

24 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.

25 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).

26 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

27 Conclusie Scripting -Eigen functies opstellen en gebruiken vanuit Excel. -Conditionele code (If Then Else). -Iteratieve code. (Do While, Do Until, For).