Hoofdstuk 3: Keuzestructuren



Vergelijkbare documenten
Hoofdstuk 4: Nieuwe objecten

Hoofdstuk 7: Werken met arrays

Hoofdstuk 4: Nieuwe objecten

Hoofdstuk 5: Functies voor getallen en teksten

Hoofdstuk 9: Menu s toevoegen

Hoofdstuk 6: Zelf functies maken

Hoofdstuk 6: Zelf functies maken

Hoofdstuk 7: Werken met arrays

Hoofdstuk 5: Functies voor getallen en teksten

Hoofdstuk 2: Werken met variabelen

Hoofdstuk 2: Werken met variabelen

Hoofdstuk 1: Een eerste Visual Basic project

OPDRACHT Opdracht 2.1 Beschrijf in eigen woorden wat het bovenstaande PSD doet.

Hoofdstuk 1: Een eerste Visual Basic project

VBA voor Doe het Zelvers Deel 7

Leren Programmeren met Visual Basic 6.0 Les 3+4. Hoofdstuk 4 : De Selectie

Les W-04: Een introductie in PHP

Datum, Tijd en Timer-object

De keuzestructuur. Versie DD

VAN HET PROGRAMMEREN. Inleiding

Een topprogrammeur in het OO programmeren is Graig Larman. Hij bedacht de volgende zin:

Programmeren: Visual Basic

VAN HET PROGRAMMEREN. Inleiding. Het spiraalmodel. De programmeertaal. vervolgens de berekening van het totale bedrag, incl. BTW:

Info-books. Toegepaste Informatica. Deel 20 : Algoritmen en programmeren in Access en Excel (Basis) AL20. Jos Gils Erik Goossens

Dieper in Visual Basic.Net

II. ZELFGEDEFINIEERDE FUNCTIES

Programmeeropgaven. Sem Prog DD

Info-books. Toegepaste Informatica. Handleiding. Deel 40c : Gegevensbeheer en algoritmen in Access. HA40c. Jos Gils Erik Goossens

Inleiding tot programmeren: Javascript

Small Basic Programmeren Text Console 2

Cursus Onderwijs en ICT. Programmeren met Visual Basic

Info-books. Toegepaste Informatica. Deel 40 : Gegevensbeheer en algoritmen in Access HA40. Jos Gils Erik Goossens

6.3 VBA Syntax Instructie. Wij gaan de Visual Basic Editor opnieuw openen, om de instructie die wij zojuist getypt hebben, nader te bekijken.

Een eerste applicatie

1) Een sequentieel bestand schrijven

Uitleg: In de bovenstaande oefening zie je in het eerste blokje een LEES en een SCHRIJF opdracht. Dit is nog lesstof uit het tweede trimester.

Visual Basic.NET. Visual Basic.NET. M. den Besten 0.3 VB. NET

Datum. Vraag het bedrag in BEF. Reken om naar EURO. Toon het bedrag in EURO. --- Vraag het bedrag in BEF Reken om naar EURO---

Programmeren klas 4. Opdracht PSD Visual Basic Code Code met Inputbox i.p.v. TextBox 1. Lees een getal LEES g. DIM kw AS INTEGER DIM kw AS INTEGER

6.2 VBA Syntax. Inleiding Visual Basic

1 Werken met (keuze)lijstjes: de control listbox

Een spoedcursus python

Module I - Informatica

Vaak wil je een code schrijven, waar je verschillende acties uitvoeren voor verschillende beslissingen. Je kan daarbij keuzestructuren gebruiken.

MICRO:BIT. Uitdaging 5 Magic8. Origineel: Micro:bit Educational Foundation 2016 Vertaling: CoderDojo Kennemerwaard 2017

Variabelen en statements in ActionScript

Je gaat leren programmeren en een spel bouwen met de programmeertaal Python. Websites zoals YouTube en Instagram zijn gebouwd met Python.

Opdracht Informatica Tutorial Visual Basic

Programmeren met Arduino-software

Je gaat leren programmeren in Ruby. En daarna in Ruby een spelletje maken. Websites zoals Twitch en Twitter gemaakt zijn met behulp van Ruby?

Probeer de vragen bij Verkennen zo goed mogelijk te beantwoorden.

Een computerprogramma is opgebouwd uit een aantal instructies die op elkaar volgen en die normaal na elkaar uitgevoerd worden.

Stel dat u 15 tellers nodig heeft. Dat kunt u een array van tellers als volgt declareren:

Programmeren onder RISC OS: de snelstart. in BBC-Basic

In de tweede regel plaatsen we in het gereserveerde stukje geheugen een getal.

Microsoft Excel. It s all about Excel - VBA

HOOFDSTUK 3. Imperatief programmeren. 3.1 Stapsgewijs programmeren. 3.2 If Then Else. Module 4 Programmeren

van PSD naar JavaScript

Programmeren: Visual Basic

Programmeren in Access met VBA

Programmeren. Inleiding

Stap 1. Bepalen van invoer Het makkelijkst kun je dit vinden uit de zwarte vlakken met voorbeelden:


5. Functies. In deze module leert u:

Mogelijke bewerkingen met verschillende gegeventypen

Inform 5-6. Toegepaste Informatica. Boekhouden-informatica Informaticabeheer. Deel 5c: Programmeren voor een bedrijfseconomische

Propositielogica Het maken van een waarheidstabel

Body Mass Index. Copyright Sodexo Belgium

Inleiding Visual Basic en VBA. Karel Nijs 2009/01

Android apps met App Inventor 2 antwoorden

PROS1E1 Gestructureerd programmeren in C Dd/Kf/Bd

Programmeren in Excel VBA beginners. Karel Nijs 2010/09

BEGINNER JAVA Inhoudsopgave

8.3 Leren programmeren met OpenOffice.org StarBasic

Rekenen met variabelen het gebruik van de r-toets

1. Programmeerblokken

9.19 Macro s: oefeningen

Tafelkaart: tafel 1, 2, 3, 4, 5

Programmeren in Excel VBA beginners. Karel Nijs 2010/09

Basisvaardigheden Microsoft Excel

Programmeren. a. 0, 0, 0 b. 0, 0, 27 c. 15, 12, 0 d. 15, 12, 27

PSD. Reeksen van logische procedures om problemen op te lossen in een eindig aantal stappen.

Hoofdstuk 17: Logische & Informatiefuncties en operatoren

extra oefening algoritmiek - antwoorden

Module 3: Scratch programmeren: is het logisch of is het niet logisch?

Inhoudsopgave Voorwoord 5 Voordat je begint 6 Wat heb je nodig? 7 De website bij het boek 7 Voor ouders, verzorgers en leraren

Blog-Het gebruik van variabelen in Excel VBA

Excel reader. Beginner Gemiddeld.

VBA voor Doe het Zelvers deel 20

voegtoe: eerst methode bevat gebruiken, alleen toevoegen als bevat() false is

Basisvaardigheden Microsoft Excel

Inhoudsopgave Visual Basic 6.0

9.18 Macro s: oefeningen

Systeemontwikkeling, Hoofdstuk 6, Query s, macro s en rapporten in MS Access 2010

Small Basic Console Uitwerking opdrachten

Inhoud. Informatica. Hoofdstuk 5 Scripting. Context. Editor voor Programmeercode. Scripting 1

Access voor beginners - hoofdstuk 25

Transcriptie:

Programmeren in Microsoft Visual Basic 2010 Express, lessenserie voor het voortgezet onderwijs HAVO/VWO David Lans, Emmauscollege, Vespucci College, Marnix Gymnasium Rotterdam, december 2011 Hoofdstuk 3: Keuzestructuren 3.0 Leerdoel In het derde hoofdstuk van de cursus Programmeren in Visual Basic leer je: - kennis maken met de volgende onderdelen van een Visual Basic project: MessageBoxen gebruiken - nieuwe gebeurtenissen in een project beschrijven met programmacode, zoals: tekst wegschrijven in een MessageBox - enkele algemene regels voor het programmeren keuzestructuren beschrijven met: If Then Else End If opdrachten, gecombineerde If Then Else End If opdrachten en Select Case... End Select opdrachten. de operatoren And en Or en de daarmee corresponderende waarheidstabellen. We doen dat aan de hand van een voorbeeld: A. De bioscoopkassa Met dit hoofdstuk ben je, afhankelijk van je tempo, ongeveer 2 a 3 lesuren van 50 minuten bezig. 28 Cursus programmeren in Visual Basic - hoofdstuk 3: keuzestructuren

3.1 De bioscoopkassa Bij de bioscoopkassa worden kaartjes verkocht. De prijs die moet worden betaald is van verschillende factoren afhankelijk. We starten simpel. Stel je voor dat de leeftijd van de bioscoopbezoeker de prijs bepaalt. De prijs wordt bepaald volgens het volgende PSD: Lees Leeftijd Leeftijd > 65 Prijs = 10,00 Prijs = 15,00 Schrijf Prijs In het PSD is een keuzeblok aanwezig. Als de ingelezen waarde van de variabele Leeftijd groter is dan 65 dan dient de weggeschreven waarde van de variabele Prijs 10 gulden te zijn en anders dient de weggeschreven waarde van de variabele Prijs 15 gulden te zijn. De gebruikersinterface voor de bioscoopkassa ziet er als volgt uit: Het formulier De bioscoopkassa heeft labels lblleeftijd en lblprijs en tekstvelden txtleeftijd en txtprijs en een knop cmdbepaalprijs. De opschriften van deze labels en tekstvelden kan je uit de hierboven weergegeven gebruikersinterface aflezen. Maak de bovenstaande gebruikersinterface. Cursus programmeren in Visual Basic - hoofdstuk 3: keuzestructuren 29

3.2 Keuzeblokken programmeren 3.2.1 De If Then Else... opdracht We gaan er van uit dat met het volgende PSD de prijs van het bioscoopkaartje wordt bepaald: Lees Leeftijd Leeftijd > 65 Prijs = 10,00 Prijs = 15,00 Schrijf Prijs Voeg aan de knop cmdbepaalprijs de volgende programmacode toe: Private Sub btnbepaalprijs_click() Dim Leeftijd As Integer Dim Prijs As SIngle Leeftijd = txtleeftijd.text If Leeftijd > 65 Then Prijs = 10 Else Prijs = 15 txtprijs.text = Prijs End Sub Probeer het project De bioscoopkassa uit. Uitleg van de programmacode: Het bovenstaande is de vertaling van het PSD in Visual Basic programmacode. Nieuw is de If Then Else... opdracht. Letterlijk vertaald is de opdracht makkelijk te lezen: Als Dan Anders. Visual Basic kijkt dus of dat wat er na de If (Als) komt waar is. Als het waar is dat de variabele Leeftijd groter dan 65 dan krijgt de variabele Prijs de waarde 10. Anders ( dus als het niet waar is dat de variabele Leeftijd groter dan 65 is) krijgt de variabele Prijs de waarde 15. 30 Cursus programmeren in Visual Basic - hoofdstuk 3: keuzestructuren

3.2.2 If Then Else... opdrachten combineren Stel je voor dat de prijs bepaald wordt volgens het volgende PSD: Lees Leeftijd Leeftijd > 65 Prijs = 10,00 Leeftijd < 10 Prijs = 10,00 Prijs = 15,00 Schrijf Prijs Volgens dit PSD betaal je niet alleen als je ouder bent dan 65 jaar maar ook als je jonger bent dan 10 jaar 10 gulden voor je bioscoopkaartje. De gebruikersinterface kan gewoon hetzelfde blijven. De programmacode van de knop btnbepaalprijs moet echter veranderen. Wijzig de code van de knop btnbepaalprijs in: Private Sub btnbepaalprijs_click() Dim Leeftijd As Integer Dim Prijs As Single Leeftijd = txtleeftijd.text If Leeftijd > 65 Then Prijs = 10 Else If Leeftijd < 10 Then Prijs = 10 Else Prijs = 15 txtprijs.text = Prijs End Sub en controleer de werking van je project. Ook hier helpt het letterlijk vertalen om de programmacode te begrijpen: Als Leeftijd > 65 Dan Prijs = 10 Anders Als Leeftijd < 10 Dan Prijs = 10 Anders Prijs = 15. Merk op dat beide If Then Else opdrachten door een End If moeten worden afgesloten. We noemen het opnemen van een If Then Else opdracht binnen een andere If Then Else opdracht ook wel het nesten van de ene opdracht in de andere. Cursus programmeren in Visual Basic - hoofdstuk 3: keuzestructuren 31

3.2.3 Werken met logische operatoren Het volgende PSD was een wat mooiere programmastructuur geweest voor de situatie dat je niet alleen korting krijgt als je ouder dan 65 bent maar ook als je jonger dan 10 bent: Lees Leeftijd Leeftijd > 65 of Leeftijd < 10 Prijs = 10,00 Prijs = 15,00 Schrijf Prijs Wijzig de code van de knop btnbepaalprijs in: Private Sub btnbepaalprijs_click() Dim Leeftijd As Integer Dim Prijs As Single Leeftijd = txtleeftijd.text If Leeftijd > 65 Or Leeftijd < 10 Then Prijs = 10 Else Prijs = 15 txtprijs.text = Prijs End Sub en controleer de werking van je programma. Visual Basic kijkt nu of de variabele Leeftijd groter is dan 65 en of de variabele Leeftijd kleiner is dan 10. Als één van beide waar is, dan is ook de uitdrukking: Leeftijd > 65 Or Leeftijd < 10 waar en krijgt de variabele Prijs de waarde 10. Anders (als de variabele Leeftijd niet groter is dan 65 of kleiner dan 10) krijgt de variabele Prijs de waarde 15. We noemen Or ook wel een logische operator omdat hij als invoer twee logische uitdrukkingen heeft die elk waar of onwaar kunnen zijn en als uitkomst waar of onwaar heeft. De werking van de logische operator Or wordt door de volgende tabel, een zogenaamde waarheidstabel, nog eens toegelicht. A B A of B Waar Waar Waar Waar Onwaar Waar Onwaar Waar Waar Onwaar Onwaar Onwaar 32 Cursus programmeren in Visual Basic - hoofdstuk 3: keuzestructuren

Wijzig de code van de knop btnbepaalprijs in: Private Sub btnbepaalprijs_click() Dim Leeftijd As Integer Dim Prijs As Single Leeftijd = txtleeftijd.text If Leeftijd >= 10 Or Leeftijd <= 65 Then Prijs = 15 Else Prijs = 10 txtprijs.text = Prijs End Sub en controleer de werking van je project. Welke gedachte zit er achter deze wijziging? Waarom geeft het project nu steeds als prijs 15 als uitvoer? Verander de Or in And en controleer de werking van je project. Waarom gaat het nu wel goed? Pas als je èn 10 of ouder èn 65 of jonger bent betaal je de prijs 15 gulden. De logische operator Or heeft hier totaal geen nut: iedereen is tenslotte òf 10 of ouder òf 65 of jonger. Pas als beide uitdrukkingen: Leeftijd >= 10 èn Leeftijd < = 65 waar zijn, dan is ook de uitdrukking: waar. Leeftijd >= 10 And Leeftijd < = 65 Vul de volgende waarheidstabel in: A B A en B Waar Waar.. Waar Onwaar.. Onwaar Waar.. Onwaar Onwaar.. Cursus programmeren in Visual Basic - hoofdstuk 3: keuzestructuren 33

3.2.4 De Select Case instructie Als je veel gevallen moet onderscheiden kan het handig zijn om een Select Case. End Select instructie te gebruiken. In het voorbeeldproject De bioscoopkassa worden slechts twee of drie gevallen (voor de variabele Leeftijd ) onderscheiden en is het gebruik van de Select Case End Select instructie niet echt nodig. We laten bij wijze van voorbeeld wel even zien hoe de Select Case. End Select instructie werkt. Wijzig de code van de knop btnbepaalprijs in: Private Sub btnbepaalprijs_click() Dim Leeftijd As Integer Dim Prijs As Single Leeftijd = txtleeftijd.text Select Case Leeftijd Case Is < 0 MsgBox Prompt := Onjuiste Leeftijd ingevoerd Case Is < 10 Prijs = 10 Case Is <= 65 Prijs = 15 Case Is > 65 Prijs = 10 End Select txtprijs.text = Prijs End Sub en controleer de werking van je project. De Select Case End Select instructie gebruik je dus in situaties waarin je bij verschillende waarden van een variabele verschillende dingen moet doen. De Select Case End Select instructie gaat de verschillende waarden één voor één af en eindigt zodra gevonden is wat er bij een bepaalde waarde moet gebeuren (een Case uitdrukking is gevonden die waar is). Als extraatje is in dit voorbeeld opgenomen dat, wanneer de gebruiker een negatief getal voor de variabele Leeftijd invoert, de gebruiker een boodschap krijgt in de vorm van een MsgBox (MessageBox). 34 Cursus programmeren in Visual Basic - hoofdstuk 3: keuzestructuren

3.3 Programmeeropdracht De quetelet-index De quetelet-index geeft aan of je al dan niet te dik bent. De methode voor de berekening van de queteletindex is ontwikkeld door de Belg Adolphe Quételet. De berekeningsmethode is hieronder weergegeven: Lees Lengte ( in centimeters ) Lees Gewicht ( in kilo s ) Lees Geslacht ( M of V ) Geslacht = V Lengte := Lengte 6 Lengte := Lengte / 100 ( centimeters worden meters ) qi : = Gewicht / ( Lengte * Lengte ) qi < 30 Schrijf Niet verontrustend Schrijf U bent te zwaar Bestudeer met voorbeeldgetallen de werking van het bovenstaande PSD en ontwerp, bouw en programmeer vervolgens een project De quetelet-index. Laat de uitvoer wegschrijven in een tekstveld, label of in een MessageBox. Cursus programmeren in Visual Basic - hoofdstuk 3: keuzestructuren 35

3.4 Uitbreiding programmeeropdracht De quetelet-index Een meer verfijnde uitslag van de quetelet-index dan de uitslag Niet verontrustend of U bent te zwaar is ook mogelijk. Als qi > 30: Anders als qi > 27: Anders als qi > 25: Anders als qi < 20: Anders: U hebt ernstig overgewicht en daardoor loopt u een verhoogde kans op bepaalde ziekten. U moet dringend gaan vermageren. U bent te dik maar het medisch risico valt wel mee. Gewichtsdaling is echter wel gewenst. U hebt een neiging tot overgewicht, maar als u aandacht heeft voor wat u eet, kan dat niet veel kwaad. Ongeveer een derde van de Nederlanders heeft een quetelet-index groter dan 25. Bij een gezond gewicht hoort een quetelet-index tussen de 20 en 25. U bent dus eerder te mager dan te dik. U lijdt aan ondergewicht. De quetelet-index geeft aan dat uw gewicht prima bij u past. Geen reden dus om u zorgen te maken over uw gewicht. Pas het project De quetelet-index aan zodat er een meer verfijnde uitslag zoals hierboven is aangegeven uitkomt. Probeer de programmeeropdracht zowel met een geneste If Then Else End If als met een Select Case End Select opdracht uit te werken. Gebruik voor de uitvoer een tekstveld, label of een MessageBox. Sla het formulier op onder de naam frmuitgebreidequeteletindex en sla het project op onder de naam De Uitgebreide Queteletindex. 36 Cursus programmeren in Visual Basic - hoofdstuk 3: keuzestructuren

3.5 Programmeeropdracht De autoverzekering Bij autoverzekeringen is de premie die je moet betalen van een aantal factoren afhankelijk, zoals de nieuwwaarde van je auto, het aantal jaren dat je al schadevrij rijdt, de leeftijd van de chauffeur, de woonplaats en het aantal kilometers dat je met de auto rijdt. Een verzekeringsbedrijf hanteert voor de bepaling van het verzekeringstarief het volgende PSD: Lees Nieuwwaarde_auto Basisbedrag = 2500 * ( Nieuwwaarde_auto / 25 000 ) Lees Aantalkilometers Aantalkilometers < 10000 Aantalkilometers < 20000 Basisbedrag = Basisbedrag * 1,1 Basisbedrag = Basisbedrag * 1,2 Lees Aantaljaren_schadevrij (maximaal 10) Kortingspercentage = 5 * Aantaljaren_schadevrij Lees Leeftijd Leeftijd < 25 Kortingspercentage = Kortingspercentage + 10 Lees Aantalinwoners Aantalinwoners > 100 000 Kortingspercentage = Kortingspercentage + 5 arpremie = Basisbedrag * ( 1 Kortingspercentage / 100 ) Bestudeer met voorbeeldgetallen de werking van het bovenstaande PSD en ontwerp, bouw en programmeer vervolgens een project De autoverzekering. Cursus programmeren in Visual Basic - hoofdstuk 3: keuzestructuren 37