Leren Programmeren met Visual Basic 6.0 Les 3+4 Hoofdstuk 4 : De Selectie
Visual Basic 6.0
1
Basisstructuren (herhaling) •
Sequentie (HK2) : Alle opdrachten gewoon na mekaar uitvoeren. Hier worden geen keuzes (selecties) gemaakt.
•
Selectie : A.d.v. voorwaarden selecteren welke opdrachten uitgevoerd moeten worden. – –
•
Enkelvoudige selectie (HK4) : Meervoudige selectie (HK7) :
IF – THEN – ELSE - ENDIF SELECT - CASE - SWITCH
Iteratie (herhaling) : een aantal opdrachten herhalen, die start- of stopvoorwaarden hebben. – –
Met teller (HK5): Zolang voorwaarden voldaan (HK6):
–
Totdat voorwaarden voldaan (HK6):
Visual Basic 6.0
FOR-NEXT DO WHILE / LOOP DO LOOP / WHILE DO UNTIL / LOOP DO LOOP / UNTIL 2
1
Hoofdstuk 4 : De Selectie – H4VB1 •
Frame (groepsvak) : fraNaam
•
Optionbuttons: optNaam
•
Een winkelier krijgt 15% korting en een particulier geen korting.
Visual Basic 6.0
3
Hoofdstuk 4 : De Selectie •
Gewone of enkelvoudige selectie : IF-statement If condition Then statements Else elsestatements End If
•
Logische uitdrukking of condition = True / False (Null) Afhankelijk van het resultaat van een bepaalde selectievoorwaarde worden andere statements / opdrachten uitgevoerd.
Visual Basic 6.0
4
2
Hoofdstuk 4 : H4VB1 … If optWinkelier.Value = True Then intKortingspercentage = 15 Else intKortingspercentage = 0 End If …
Visual Basic 6.0
5
Hoofdstuk 4 : Logische uitdrukkingen (Conditions) •
relationele operatoren: = gelijk aan <> niet gelijk aan (verschillend van) < kleiner dan > groter dan <= kleiner of gelijk aan >= groter of gelijk aan Like gelijkheid op basis van een patroon (zie vb.) Is gelijkheid van objecten
•
logische operatoren: AND OR , XOR NOT
Visual Basic 6.0
6
3
Hoofdstuk 4 : Logische uitdrukkingen (Conditions) •
voorbeelden Stel A=3, B=5 en C = 10 De condition (A <= B) AND (C <> 10) heeft de waarde False "aBBBa" Like "a*a" heeft de waarde True "F" Like "[A-Z]" heeft de waarde True "a2a" Like "a#a" heeft de waarde True "BAT123khg" Like "B?T* " heeft de waarde True ? * # [charlist]
Any single character Zero or more characters Any single digit (0–9). Any single character in charlist.
Visual Basic 6.0
7
Hoofdstuk 4 : De Selectie •
Meerdere selecties : If curTotaal < 500 Then curKortingsperc = 10 Else If curTotaal < 1000 Then curKortingsperc = 15 Else curKortingsperc = 20 End If End If
•
Hier krijgt curKortingsperc de waarde – – –
10 indien het totaal kleiner is dan 500 15 vanaf een totaal van 500 en tot de waarde 1000 20 vanaf een totaal van 1000
Visual Basic 6.0
8
4
Hoofdstuk 4 : De Selectie •
Meerdere selecties : If curTotaal < 500 Then curKortingsperc = 10 ElseIf curTotaal < 1000 Then curKortingsperc = 15 Else curKortingsperc = 20 End If ÎHier slecht 1 maal End If
Visual Basic 6.0
9
Hoofdstuk 4 : Sneltoets
•
B.v. knop CmdSluiten : geef Caption de waarde &Sluiten De ampersand (&) zorgt dat het teken erna wordt onderlijnd. Je kan nu i.p.v. op de knop Sluiten te klikken ook de toetsencominatie Alt+S gebruiken (tijdens de uitvoering van je programma)
Visual Basic 6.0
10
5
Hoofdstuk 4 : Round() - p98 •
Round(expression [,aantalcijfersnadekomma] ) Afronden naar het dichtstbijzijnde even getal Round(3.35 ,1) Round(3.45 ,1) Round(3.5 ,0) Round(3.5) Round(3.123 ,2) Round(-2.456 ,2)
Î 3.4 Î 3.4 !!! Î4 Î4 Î 3.12 Î -2.46
Enkel steeds juist bij Decimal-type (14 byte) Omgerekend in vlottende komma (Single = 4 byte)
Hoofdstuk 4 : H4VB1 – Hoe Beginnen? 1. Ontwerp formulier 2. Inlezen gegevens • •
Eenheidsprijs Aantal
3. Korting JA/NEEN? (Winkelier/Particulier) •
Toekenning intKortingspercentage
4. Berekening 5. Resultaten weergeven op het scherm 6. Declaraties controleren Visual Basic 6.0
11
Declaratie van alle variabelen !!!
Visual Basic 6.0
12
6
Hoofdstuk 4 : H4VB1 – Hoe Beginnen? Stap 1: Ontwerp formulier : • •
Slepen van objecten (knoppen, tekstvelden,…) Logische naamgeving volgens afspraken bv. cmdBereken, txtAantal,…
Visual Basic 6.0
13
Hoofdstuk 4 : H4VB1 – Hoe Beginnen? Stap 2: Inlezen gegevens • •
Eenheidsprijs Aantal
curEenheidsprijs = CCur(txtEenheidsprijs.Text) intAantal = CInt(txtAantal.Text)
Visual Basic 6.0
14
7
Hoofdstuk 4 : H4VB1 – Hoe Beginnen? Stap 3: Korting JA/NEEN? … If optWinkelier.Value = True Then intKortingspercentage = 15 Else intKortingspercentage = 0 End If
… Visual Basic 6.0
15
Hoofdstuk 4 : H4VB1 – Hoe Beginnen? Stap 4: Berekening (zie boek pagina 92) curKorting = Round(curTotaal * intKortingspercentage / 100, 2) curTeBetalenIncl = curTotaal - curKorting curBTWbedrag = Round(curTeBetalenIncl * conBTWperc / _ (100 + conBTWperc), 2) curTeBetalenExcl = curTeBetalenIncl - curBTWbedrag
Visual Basic 6.0
16
8
Hoofdstuk 4 : H4VB1 – Hoe Beginnen? Stap 5: Resultaten weergeven op het scherm txtTotaal.Text = CStr(curTotaal) txtKortingspercentage.Text = CStr(intKortingspercentage) txtKorting.Text = CStr(curKorting) txtTeBetalenIncl.Text = CStr(curTeBetalenIncl) txtTeBetalenExcl.Text = CStr(curTeBetalenExcl) txtBTWbedrag.Text = CStr(curBTWbedrag) Visual Basic 6.0
17
Hoofdstuk 4 : Aansprekingen in de code
• •
Naam: Jos Eigenschappen – – – –
Haar (waarden: blond, bruin, zwart, …) Geslacht (waarden: Man of Vrouw) Kleding (waarden: Mooi, Lelijk) Boekentas (waarden: Ja, Neen)
Als ik hem een boekentas wil geven: Naam object
Eigenschap
Waarde
Jos.Boekentas = Ja Visual Basic 6.0
18
9
Hoofdstuk 4 : Aansprekingen in de code • •
Naam: txtTotaal Eigenschappen – – –
Text (waarden: [de inhoud ervan]) BackColor (waarden: vbYellow, vbRed, …) TabStop (waarden: True, False)
Als ik de tekst wil invullen: Naam object
Eigenschap
Waarde
txtTotaal.Text = “68,85” txtTotaal.Text = Cstr(curTotaal) Visual Basic 6.0
19
Hoofdstuk 4 : H4VB2
De gebruiker moet raden naar een getal tussen 1 en 100 - Entertoets of Evalueer klikken Standaardknop : cmdEvalueer.Default = TRUE - Nieuw spel : nieuw Random getal genereren - Einde : einde programma Visual Basic 6.0
20
10
Hoofdstuk 4 : Declaratie •
Een variabele kan ook buiten een procedure worden geclareerd (op ‘t niveau van het formulier)
•
Nodig als je een variabele in verschillende procedures nodig hebt: Private mintWillekeurig As Integer of Dim mintWillekeurig As Integer Extra prefix m in de naamgeving
Visual Basic 6.0
21
Hoofdstuk 4 : Randomize en Rnd •
•
•
Randomize [getal] Een willekeurig getal wordt gegenereerd door een formule (generator) die gebruik maakt van een getal. De systeemtijd wordt gebruikt indien we geen getal opgeven. Rnd [(getal)] Rnd(0) Æ het laatst gegenereerde getal Rnd Æ krijg je ‘t volgend getal in de rij van de willekeurige getallen Indien je Randomize niet gebruikt, genereert Rnd telkens dezelfde reeks van willekeurige getallen tussen 0 en 1 (0 inbegrepen, 1 niet inbegrepen)
Visual Basic 6.0
22
11
Hoofdstuk 4 : Int() en Fix() •
Int(getal) Geeft het grootste geheel getal dat kleiner of gelijk is aan het argument.
•
Fix(getal) Laat de getallen na de komma weg Int(3.5) Int(3.8) Int(5) Int(-3.2)
Æ3 Æ 3 !! Æ5 Æ-4
Fix(3.5) Fix(3.8) Fix(5) Fix(-3.2)
Æ3 Æ3 Æ5 Æ-3
Visual Basic 6.0
23
Hoofdstuk 4 : Vartype() en TypeName() •
Vergelijk zelf Int() en Fix() met Round()
•
De volgende functies kan je gebruiken om het type van een variabele op te vragen: –
Vartype(variabelenaam) geeft een waarde terug (tabel p 105) vb. Vartype(intGetal) geeft waarde 3 terug (Integer) – TypeName(varialbelenaam) geeft een string terug die het type weergeeft vb. TypeName(IntGetal) geeft “Integer” Visual Basic 6.0
24
12
Hoofdstuk 4 : Oefeningen •
Het raadspel uitbreiden = Oefening 4 (p110) – aantal raadbeurten bijhouden en weergeven – gebruik image voor handje voor hoger / lager
–
(point05.ico)
(point03.ico)
imgHoger
imgLager
Zorg dat je eerst op de knop “Nieuw spel” moet klikken vooraleer je gaat raden. Anders is het te raden getal 0. cmdEvalueer.Enabled = False txtGetal.Enabled = False
Visual Basic 6.0
25
Hoofdstuk 4 : Oefeningen •
Oefening 2 (p109)
Visual Basic 6.0
26
13