Controlestructuren - De Student Web viewProgrammeren in Visual Basic – D:I....

37
1 Arteveldehogeschool – OSOVS Informatica – Visual Basic (D1) 2009-2010 Samenvatting AHS/PBAOSO/3830/1 Sonny Coddens-Cornelis Programmeren in Visual Basic – D:I 1 Controlestructuren 1.1 De opeenvolging/sequentie 1.1.1 Definitie: De instructies worden van boven naar onder doorlopen en elke instructie wordt juist één keer uitgevoerd. 1.1.2 NSD: --Titel-- Var1=LEES(“De gebruiker moet iets invullen”) Var2=LEES(“De gebruiker moet iets invullen”) Var3=Var1 & Var2 SCHRIJF(“De samenvoeging van de twee ingaves van de gebruiker is: “ & Var3) Invoer / Verwerking / Uitvoer

Transcript of Controlestructuren - De Student Web viewProgrammeren in Visual Basic – D:I....

1

Arteveldehogeschool – OSO VS Informatica – Visual Basic (D1) 2009-2010Samenvatting AHS/PBAOSO/3830/1 Sonny Coddens-Cornelis

Programmeren in Visual Basic – D:I

1 Controlestructuren

1.1 De opeenvolging/sequentie

1.1.1 Definitie:De instructies worden van boven naar onder doorlopen en elke instructie wordt juist één keer uitgevoerd.

1.1.2 NSD:--Titel--Var1=LEES(“De gebruiker moet iets invullen”)Var2=LEES(“De gebruiker moet iets invullen”)Var3=Var1 & Var2SCHRIJF(“De samenvoeging van de twee ingaves van de gebruiker is: “ & Var3)Invoer / Verwerking / Uitvoer

2

Arteveldehogeschool – OSO VS Informatica – Visual Basic (D1) 2009-2010Samenvatting AHS/PBAOSO/3830/1 Sonny Coddens-Cornelis

1.1.3 Operatoren in VB+ Som/combinatie Wordt gebruikt om tweee getallen bij

elkaar op te tellen.Staat deze operator tussen twee strings of karakters dan zal deze de teksten aan elkaar plakken.

5+6=>11“appel”+”boom” => “appelboom”“5”+”6” => “56”

_ Verschil Berekent het verschil tussen twee getallen 10-2=>8* Vermenigvuldiging Berekent het product van 2 getallen 4*6 => 24/ Deling Berekent het quotient van twee getallen.

Het resultaat zal vaak een komma getal zijn

6/5 => 1,2

& Concatenatie Tweee tekenreeksen worden aan elkaar gekoppeld

“appel”&”boom” => “appelboom”

\ Gehele deling Bepaalt hoeveel keer de deler in het deeltal kan. Het resultaat is altijd een geheel getal

8\3=> 2

MOD Rest bij deling Geeft de rest bij gehele deling terug 14 MOD 4 => 2^ Machtsverheffing Verheft een getal tot een bepaalde macht 2^4=>16() Haakjes Groepeert rekenkundige bewerkingen.

Beinvloedt de prioriteit van het uitwerken van een berekening

(2+6)*2 => 16

= ToekenningoperatorOfVergelijkingsoperator (afhankelijk van de context)

Toekenningsoperator: de rechterzijde van de toekenningsoperator wordt uitgerekend en de verkregen waarde wordt teogekend aan de linkerzijde van de toekenningoperator.Vergelijkingsoperator: de linker en de rechterzijde van de vergelijkingsoperator worden uitgerekend. De verkregen waarden worden met elkaar vergeleken. Zijn de waarden aan elkaar gelijk dan is het resultaat true, anders false.

1.1.4

3

Arteveldehogeschool – OSO VS Informatica – Visual Basic (D1) 2009-2010Samenvatting AHS/PBAOSO/3830/1 Sonny Coddens-Cornelis

1.2 De keuze/selectie

1.2.1 De tweevoudige keuze/selectie

1.2.1.1 Definitie:De tweevoudigekeuze is een controlestructuur bestaande uit:

- Een voorwaarde- Een waar-algoritme dat wordt uitgevoerd als de voorwaarde waar is- Een vals-algoritme dat wordt uigevoerd als de voorwaarde vals is

1.2.1.2 NSD:W

Vwaar-algoritme vals-algoritme

1.2.1.3 Syntax in VB: If vooorwaarde Then waar-algoritme Else vals-algoritme End If

1.2.2 De enkelvoudige keuze/selectie

1.2.2.1 Definitie:De enkelvoudige keuze is een controlestructuur bestaande uit:

- Een voorwaarde- Een waar-algoritme dat wordt uitgevoerd als de voorwaarde waar is

1.2.2.2 NSD:W

Vwaar-algoritme -

1.2.2.3 Syntax in VB: If voorwaarde Then waar-algoritme End If

voorwaarde

voorwaarde

4

Arteveldehogeschool – OSO VS Informatica – Visual Basic (D1) 2009-2010Samenvatting AHS/PBAOSO/3830/1 Sonny Coddens-Cornelis

1.2.3 De meervoudige keuze/selectie

1.2.3.1 Definitie:Een meervoudige keuze is een controle structuur waarbij op basis van één variabele een aantal categorieën wordt gemaakt met bijhorende instructies. Afhankelijk van de waarde van die variabele zullen de instructies van maximaal één categorie uitgevoerd worden. Behoort de variabele tot meerdere categorieën, dan worden enkel de instructies die horen bij de eerst voorkomende categorie uitgevoerd.Behoort de variabele tot geen enkele categorie, dan wordt geen enkel algoritme uitgevoerd tenzij het geval “anders” voorkomt.

1.2.3.2 NSD:Voorwaarde categorie 1 Algo categorie 1

Voorwaarde categorie 2 Algo categorie 2

Voorwaarde categorie 3 Algo categorie 3

Voorwaarde categorie 4 Algo categorie 5

Voorwaarde categorie … Algo categorie …

ANDERS Algo als var niet tot bovenstaande categorieën behoort.

SELECTEER variabele

1.2.3.3 Syntaxi in VB: Select Case variabele Case voorwaarde categorie 1 algoritme 1 Case voorwaarde categorie 2 algoritme 2 Case voorwaarde categorie n algoritme n Case Else algoritme anders End Select

De voorwaarden voor de categorieën worden gevormd door het sleutelwoord “Is” gevolgd door een vergelijkingsoperator en een waarde.

Select Case variabele Case Is voorwaarde categorie 1 algoritme 1 Case Is voorwaarde categorie 2 algoritme 2 Case Is voorwaarde categorie n algoritme n

5

Arteveldehogeschool – OSO VS Informatica – Visual Basic (D1) 2009-2010Samenvatting AHS/PBAOSO/3830/1 Sonny Coddens-Cornelis

Case Else algoritme anders End Select

De “case else” is optioneel. De instructies bij “case else” worden uitgevoerd als aan geen enkele voorgaande waarde voldaan werd.

OpmerkingEr bestaat nog een tweede manier om gebruik te maken van meervoudige selecties, waarbij niet dewaarde van een constante, maar wel de status van een besturingselement centraal staat : Select Case True Case optAttestC.Checked lblCommentaar.Text = ("U moet het jaar overzitten.") Case optAttestB.Checked lblCommentaar.Text = ("U mag overgaan, maar niet in deze studierichting.") Case Else lblCommentaar.Text = ("U mag overgaan naar het volgende studiejaar.") End Select

6

Arteveldehogeschool – OSO VS Informatica – Visual Basic (D1) 2009-2010Samenvatting AHS/PBAOSO/3830/1 Sonny Coddens-Cornelis

1.3 De herhaling/iteratie

1.3.1 De begrensde herhaling

1.3.1.1 Definitie:Bij de begrensde herhaling worden één of een aantal instructies meerdere keren uitgevoerd. We spreken van een begrensde herhaling omdat we precies weten hoeveel keren de opdracht uitgevoerd moet worden.Tijdens het programmeren zal een begrensde herhaling vrij veel voorkomen om veel te lange programma’s en de onoverzichtelijkheid die hiermee gepaard gaat tegen te gaan.

1.3.1.2 NSD:te herhalen algoritme

te herhalen algoritme

VOOR variabele = beginwaarde TOT eindwaarde

1.3.1.3 Syntaxii in VB: For teller = beginwaarde To eindwaarde [Step stapwaarde] te-herhalen - algoritme Next teller

Voorbeeld

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click 'Programma dat de som van zeven getallen berekent Dim intgetal, intsom As Integer intsom = 0 For inteller = 1 To 7 intgetal = InputBox("Geef een getal in:", "Getal ingeven") intsom = intsom + intgetal Next MsgBox("De som is " & intsom & " .") End Sub

7

Arteveldehogeschool – OSO VS Informatica – Visual Basic (D1) 2009-2010Samenvatting AHS/PBAOSO/3830/1 Sonny Coddens-Cornelis

1.3.2 De voorwaardelijke herhaling met aanvangsvoorwaarde

1.3.2.1 Definitie:De voorwaardelijke herhaling met aanvangsvoorwaarde is een controlestructuur opgebouwd uit een aanvangsvoorwaarde en herhalingsinstructies. Zolang de aanvangsvoorwaarde waar is, wordt de herhaling uitgevoerd. De herhalingsinstructies worden 0 of meerdere keren uitgevoerd.

1.3.2.2 NSD:ZOLANG voorwaarde

Te herhalen algoritme

1.3.2.3 Syntax in VB: While voorwaarde te-herhalen-algoritme End While

1.3.3 De voorwaardelijke herhaling met afbreekvoorwaarde

1.3.3.1 Definitie:De voorwaardelijke herhaling met afbreekvoorwaarde is een controlestructuur opgebouwd uit herhalingsopdrachten en een afbreekvoorwaarde. De herhaling wordt uitgevoerd totdat de afbreekvoorwaarde waar is. De herhalingsinstructies worden één of meerdere keren uitgevoerd.

1.3.3.2 NSD:Te herhalen algoritmeTOTDAT voorwaarde

1.3.3.3 Syntax in VB: Do te-herhalen - algoritme Loop Until voorwaarde

8

Arteveldehogeschool – OSO VS Informatica – Visual Basic (D1) 2009-2010Samenvatting AHS/PBAOSO/3830/1 Sonny Coddens-Cornelis

2 De voorwaardeDe voorwaarde moet altijd true of false als resultaat hebben en wordt gevormd met vergelijking- en logische operatoren

Vergelijkingsoperatoren> Groter dan >= Groter of gelijk aan< Kleiner dan <= Kleiner of gelijk aan= Is gelijk aan <> Verschillend vanLogische operatorenAND OR NOT

2.1 Samengestelde voorwaarde Dim bteleeftijd As Byte Dim struitvoer As String bteleeftijd = InputBox("Geef de leeftijd in:", "Leeftijd ingeven") If bteleeftijd <= 6 Or bteleeftijd >= 65 Then struitvoer = "niets" Else struitvoer = "10 euro" End If MsgBox("De bezoeker moet " & struitvoer & " betalen.")

Het is belangrijk dat zowel links als rechts van de logische operator een vergelijking staat. Want anders zal de code niet werken.

1 Dim bteleeftijd As Byte2 Dim struitvoer As String3 bteleeftijd = InputBox("Geef de leeftijd in:", "Leeftijd ingeven")4 If bteleeftijd <= 6 Or >= 65 Then5 struitvoer = "niets"6 Else7 struitvoer = "10 euro"8 End If9 MsgBox("De bezoeker moet " & struitvoer & " betalen.")

Foutieve code! VB onderlijnt automatisch de fout in het blauw, zie code regel 4.

9

Arteveldehogeschool – OSO VS Informatica – Visual Basic (D1) 2009-2010Samenvatting AHS/PBAOSO/3830/1 Sonny Coddens-Cornelis

3 Declaratie van variabelen

3.1 VariabelenVariabelen dienen om gegevens tijdelijk op te slaan in het werkgeheugen.Bij het declareren wordt de naam en het datatype van de variabele opgegeven.Door het declareren van variabelen wordt in het werkgeheugen alvast plaatsen gereserveerd waarin tijdelijke waarden in opgeslagen kunnen worden. De grootte van die plaatsen wordt bepaald door het datatype.De naam van de variabele moet uniek zijn en is best veelzeggend.De keuze van het juiste datatype is belangrijk om correcte gegevensverwerking te verkrijgen en zo weinig mogelijk werkgeheugen te gebruiken.Voordat er in de code naar een variabele wordt verwezen moet in VB de variabele gedeclareerd worden. Daarom dat de declaratie van de variabelen vaak als eerste instructies in het programma staan, maar dit is niet noodzakelijk.

3.2 SyntaxDim naamVariabele (,naamVariabele2, ...) As Data Type

Dim staat voor dimension in memory.De naam van de variabele moet uniek zijn en mag geen spaties bevatten. De naamgeving doen we volgens de Leszynski naming convention. Variabelen van hetzelfde type moeten niet telkens op een verschillende regel gedeclareerd worden. De namen van de variabele met het zelfde datatype kunnen in eenzelfde instructie, gescheiden door komma's, geplaatst worden.Dim intGetall, intGeta12 As IntegerDe keuze van het datatype is belangrijk voor een juiste gegevensverwerking. Probeer ook telkens het kleinste datatype te kiezen waarbij de gegevensverwerking nog steeds correct verloopt om geheugen te sparen.

3.3 Lezynski naming conventionBij de naamgeving van objecten kies je er best voor (het is dus niet verplicht) om een prefix (tag) te gebruiken voor elke naam van om het even welk object. De prefix geeft aan om welk type object het gaat. Voorbeelden:cmdStart => verwijst naar een opdrachtknop met de naam startintGetal => verwijst naar een variabele van het type integer met de naam GetallblUitvoer => verwijst naar een label met de naam Uitvoer

Het gebruik van deze prefixen zorgt ervoor dat de naamgeving op zich reeds informatie bevat over het object waarnaar verwezen wordt. Zo weten we dat intGetal een integer is en dus geen kommagetal kan bevatten.

Het maken van fouten wordt hierdoor verkleind. Bovendien wordt het ingeven van code gemakkelijker. Bij het intypen van de code kan je gebruik maken vanctrl+spatie. Je krijgt een lijst van alle objecten die bij het formulier horen. En verder, typ je bijvoorbeeld IbI en dan ctrl+spatie zal een

10

Arteveldehogeschool – OSO VS Informatica – Visual Basic (D1) 2009-2010Samenvatting AHS/PBAOSO/3830/1 Sonny Coddens-Cornelis

keuzelijst verschijnen met alle objecten waarvan de naam begint met 'lbI' of dus alle labels. Het volstaat nu om in het keuzelijstje het juiste object te selecteren. Het ingeven verloopt hierdoor sneller en de kans op tikfouten wordt kleiner.

11

Arteveldehogeschool – OSO VS Informatica – Visual Basic (D1) 2009-2010Samenvatting AHS/PBAOSO/3830/1 Sonny Coddens-Cornelis

4 Invoervenster (inputbox)strIngevoerde = InputBox("Tekst die in het venster staat", "Titel van het venster")

Er worden twee argumenten mee gegeven. Dit zijn de waarden tussen haakjes, gescheiden door een komma. Het eerste argument is de tekst die weergegeven wordt in het dialoogvenster, het tweede argument verschijnt in de titelbalk van het dialoogvenster.De waarde die in het tekstvak wordt ingegeven, wordt in het werkgeheugen bewaard in de plaats met de naam “strIngevoerde” (= de variabele strIngevoerde).

5 Uitvoervenster (messagebox)MsgBox("Uitvoertekst en opgeslagen variabelen" & strIngevoerde, MsgBoxStyle.OkOnly, "Titel van het dialoogvenster")

Het eerste argument is de tekst die in het uitvoervenster moet verschijnen. De tekst tussen aanhalingstekens wordt letterlijk weergegeven. Het &-teken is een concatenatieoperator die twee teksten aan elkaar plakt. strIngevoerde staat niet tussen aanhalingstekens. Het verwijst naar de naam van de variabele en bijgevolg wordt de waarde van de variabele strIngevoerde weergegeven.

Het tweede argument is optioneel en bepaald het type dialoogvenster/uitvoervenster.

Het derde argument is ook optioneel en verschijnt in de titelbalk van het dialoogvenster/uitvoervenster.

12

Arteveldehogeschool – OSO VS Informatica – Visual Basic (D1) 2009-2010Samenvatting AHS/PBAOSO/3830/1 Sonny Coddens-Cornelis

6 Formulier sluiten vanuit de codeOm vanuit de code een formulier te sluiten gebruik je de instructie

End

Hiermee wordt het volledige project afgesloten. Bestaat het project uit meerdere formulieren dan worden alle openstaande formulieren gesloten.

Om enkel het huidige formulier te sluiten gebruik je de instructie:

Me.Close()

7 De eigenschappen van het formulier wijzigen in de codeOm de eigenschappen van het formulier te wijzigen vanuit de code kan je niet de naam van het formulier gebruiken Het huidige formulier wordt aangeduid als het object MeVoorbeeld:Me.BackColor = Color.AliceBlue

7.1 AutoSizeHet kan zijn dat je wilt dat het formulier automatisch vergroot als de inhoud groter wordt of als de inhoud verschijnt. Dan gebruik je de Autosize eigenschap, deze ofwel true ofwel false.

Me.AutoSize = True

7.2 AutoSizeModeEr zijn twee soorten AutoSize, de ene vergroot enkel het formulier. De andere maakt het formulier ook weer kleiner.

'maakt groter en kleiner Me.AutoSizeMode = Windows.Forms.AutoSizeMode.GrowAndShrink 'maakt enkel groter Me.AutoSizeMode = Windows.Forms.AutoSizeMode.GrowOnly

7.3 “Empty”Soms laat je de achtergrondkleur van een formulier aanpassen bij de uitvoer. Om dan terug de standaard achtergrond te krijgen bij je volgende uitvoer of om gewoon op een bepaald moment in je code de standaard achtergrondkleur (“Control”) van een formulier terug te krijgen kun je volgende waarde toewijzen aan de eigenschap BackColor.

'hiermee zorg je dat de achtergrondkleur terug naar de beginsituatie wordt gesteld Me.BackColor = Color.Empty

13

Arteveldehogeschool – OSO VS Informatica – Visual Basic (D1) 2009-2010Samenvatting AHS/PBAOSO/3830/1 Sonny Coddens-Cornelis

8 Initialiseren van variabelenHet is belangrijk om variabelen een gepaste beginwaarde te geven =(initialiseren). Het niet of foutief initialiseren van variabelen leidt vaak tot moeilijk op te sporen logische fouten.

'Programma berekent de faculteit van een getal Dim intFaculteit As Integer Dim bteTeller, bteGetal As Byte bteGetal = InputBox("Geef een getal in:", "Getal ingeven") For bteTeller = 1 To bteGetal intFaculteit = intFaculteit * bteTeller Next MsgBox(bteGetal & "! = " & intFaculteit)

Doordat waarde intFaculteit niet geïnitialiseerd is krijgt het automatisch de waarde nul toe gewezen, bovenstaande code zou dus enkel 0 als uitvoer hebben. De oplossing bestaat dus in het initialiseren van de variabele intFaculteit. Dit dan op twee manieren, via een individuele instructie: 'Programma berekent de faculteit van een getal Dim intFaculteit As Integer Dim bteTeller, bteGetal As Byte intFaculteit = 1 bteGetal = InputBox("Geef een getal in:", "Getal ingeven") For bteTeller = 1 To bteGetal intFaculteit = intFaculteit * bteTeller Next MsgBox(bteGetal & "! = " & intFaculteit)

Maar het kan ook onmiddellijk bij de declaratie van de variabele. We declareren en initialiseren binnen dezelfde instructie: 'Programma berekent de faculteit van een getal Dim intFaculteit As Integer = 1 Dim bteTeller, bteGetal As Byte bteGetal = InputBox("Geef een getal in:", "Getal ingeven") For bteTeller = 1 To bteGetal intFaculteit = intFaculteit * bteTeller Next MsgBox(bteGetal & "! = " & intFaculteit)

14

Arteveldehogeschool – OSO VS Informatica – Visual Basic (D1) 2009-2010Samenvatting AHS/PBAOSO/3830/1 Sonny Coddens-Cornelis

9 Eigenschappen van een tekstvakObject Eigenschap Waarde In codeTekstvak (name) De lezynski-prefix voor een tekstvak

is “txt”.De naam is belangrijk wanneer naar dit object wordt verwezen in de programmacode.

Backcolor Achtergrondkleur van het tekstvak. txtInvoer.BackColor = Color.Blue

Borderstyle None: geen rand rondom het tekstvak.Fixed single: zwart lijntje rondom het tekstvak.Fixed 3D: een soort 3D effect rondom het tekstvak.Fixed 3D is de standaardwaarde en dit wordt best behouden. Zo is het voor de gebruiker duidelijk dat het om een tekstvak gaat en hierin gegevens ingevoerd kunnen worden.

txtInvoer.BorderStyle = BorderStyle.NoneoftxtInvoer.BorderStyle = BorderStyle.FixedSingleoftxtInvoer.BorderStyle = BorderStyle.Fixed3D

Font Lettertype en lettergrootte.Forecolor Letterkleur txtInvoer.ForeColor =

Color.BlueMultiline Kan true of false zijn. Als het true is

dan kan je tekstvak uit meerdere regels bestaan.

Text De tekst die in het tekstvak moet staan

txtInvoer.Text = "Inhoud tekstvak"

Textalign Hoe moet de tekst uitgelijnd worden in het tekstvak (links, rechts, gecentreerd)

txtInvoer.TextAlign = HorizontalAlignment.LeftoftxtInvoer.TextAlign = HorizontalAlignment.RightoftxtInvoer.TextAlign = HorizontalAlignment.Center

Visible Kan true of false zijn. Het tekstvak kan zichtbaar of onzichtbaar gemaakt worden.

txtInvoer.Visible = TrueoftxtInvoer.Visible = False

15

Arteveldehogeschool – OSO VS Informatica – Visual Basic (D1) 2009-2010Samenvatting AHS/PBAOSO/3830/1 Sonny Coddens-Cornelis

10 Eigenschappen van een labelObject Eigenschap Waarde In codeLabel (name) De lezynski-prefix

voor een tekstvak is “lbl”.De naam is belangrijk wanneer naar dit object wordt verwezen in de programmacode.

Autosize Standaard staat deze eigenschap op true. Dit wil zeggen dat het label zo groot wordt als de tekst die erin staat.Als autosize op false staat, neemt het label de grootte aan zoals door de ontwerper getekend op het formulier.

lblUitvoer.AutoSize = TrueoflblUitvoer.AutoSize = False

Backcolor Achtergrondkleur van het label.

lblUitvoer.BackColor = Color.Blue

Borderstyle None: geen rand rondom het label.Fixed single: zwart lijntje rondom het label.Fixed 3D: een soort 3D effect rondom het label.None is de standaardwaarde. Om verwarring met een tekstvak te vermijden wordt hier best niet voor fixed 3D gekozen.

lblUitvoer.BorderStyle = BorderStyle.NoneoflblUitvoer.BorderStyle = BorderStyle.FixedSingleoflblUitvoer.BorderStyle = BorderStyle.Fixed3D

Font Lettertype en grootteForecolor Letterkleur lblUitvoer.ForeColor =

Color.BlueText De tekst die in het

label moet staan.lblUitvoer.Text = "Inhoud label"

Textalign Hoe moet de tekst gealigneerd worden in het label, klik op één van de negen

lblUitvoer.TextAlign = ContentAlignment.BottomCenteroflblUitvoer.TextAlign = ContentAlignment.BottomLeft

16

Arteveldehogeschool – OSO VS Informatica – Visual Basic (D1) 2009-2010Samenvatting AHS/PBAOSO/3830/1 Sonny Coddens-Cornelis

plaatsen. oflblUitvoer.TextAlign = ContentAlignment.BottomRightoflblUitvoer.TextAlign = ContentAlignment.MiddleCenteroflblUitvoer.TextAlign = ContentAlignment.MiddleLeftoflblUitvoer.TextAlign = ContentAlignment.MiddleRightoflblUitvoer.TextAlign = ContentAlignment.TopCenteroflblUitvoer.TextAlign = ContentAlignment.TopLeftoflblUitvoer.TextAlign = ContentAlignment.TopRight

Visible Kan true of false zijn. Het label kan zichtbaar of onzichtbaar gemaakt worden.

lblUitvoer.Visible = TrueoflblUitvoer.Visible = False

11 Keuzerondjes en selectievakjesKeuzerondjes (radiobuttons) worden gebruikt om de gebruiker een keuze te laten maken waarbij het slechts mogelijk is één optie te kiezen.Automatisch schakelen de keuzerondjes elkaar uit.

Als je op één formulier verschillende groepen van keuzerondjes wil, die elkaar niet mogen uitschakelen, moeten de bij elkaar horende keuzerondjes in een frame (groupbox) worden geplaatst.

Selectievakjes (checkbox) worden eveneens gebruikt om de gebruiker een keuze te laten maken maar hierbij kunnen verschillende opties gekozen worden.Rond de selectievakjes kan een frame (groepbox) worden geplaatst, dit is niet noodzakelijk maar wel gebruiksvriendelijk.

11.1 Eigenschappen van een keuzerondje (radiobutton)Object Eigenschap WaardeKeuzerondje (radiobutton) (name) De Leszynski-prefix voor een

keuzerondje is ‘opt’.De naam is belangrijk wanneer naar dit object wordt verwezen in de programmacode.

Backcolor Achtergrondkleur van de box rondom het keuzerondje.

17

Arteveldehogeschool – OSO VS Informatica – Visual Basic (D1) 2009-2010Samenvatting AHS/PBAOSO/3830/1 Sonny Coddens-Cornelis

Checked Deze waarde kan true of false zijn afhankelijk van het al dan niet geselecteerd zijn van de optie.

Font Lettertype en lettergrootte van de tekst naast het keuzerondje.

Forecolor Letterkleur van de tekst naast het keuzerondje.

Text De tekst die naast het keuzerondje staat. Er is dus geen label nodig.

textalign Hoe moet de tekst gealigneerd worden. Kijk op 1 van de 9 mogelijkheden.

11.2 Eigenschappen van een selectievakje (checkbox)Object Eigenschap WaardeSelectievakje (checkbox) (name) De Leszynski-prefix voor een

selectievakje is ‘chk’.De naam is belangrijk wanneer naar dit object wordt verwezen in de programmacode.

Backcolor Achtergrondkleur van de box rondom het selectievakje.

Checked Deze waarde kan true of false zijn afhankelijk van het al dan niet geselecteerd zijn van de optie.

Font Lettertype en lettergrootte van de tekst naast het selectievakje.

Forecolor Letterkleur van de tekst naast het selectievakje.

Text De tekst die naast het selectievakje staat. Er is dus geen label nodig.

textalign Hoe moet de tekst gealigneerd worden. Kijk op 1 van de 9 mogelijkheden.

11.3 Eigenschappen van een frame (groupbox)Object Eigenschap WaardeFrame (groupbox) (name) De Leszynski-prefix voor een

frame is ‘grp’.De naam is belangrijk wanneer naar dit object wordt verwezen in de programmacode.

Backcolor Achtergrondkleur van het frame.

Text Tekst bovenaan het frame.

18

Arteveldehogeschool – OSO VS Informatica – Visual Basic (D1) 2009-2010Samenvatting AHS/PBAOSO/3830/1 Sonny Coddens-Cornelis

12 Een menuOm een menu te verkrijgen op je formulier, kies je in de toolbox voor het object 'menustrip' en klik je op het formulier. Het is nu heel eenvoudig om het menu verder in te stellen.Voor het menu zelf moeten geen specifieke eigenschappen ingesteld worden.

12.1 Eigenschappen van een menu (menustrip)Object Eigenschap WaardeMenu-item (name) De Leszynski-prefix1 voor de

menu-items is ‘mnu’.De naam is belangrijk wanneer naar dit object wordt verwezen in de programmacode.

Checked Deze waarde kan true of false zijn. Bij true komt naast het menu-item een vinkje te staan. Wordt deze eigenschap op false gezet dan verdwijnt het vinkje.

Shortcutkey Aan elk menu-item kan een sneltoets gekoppeld worden. Deze stel je bij deze eigenschap in.

Show shortcutkey Het is voor de gebruiker interessant om te weten welke sneltoets gekoppeld werd aan het menu-item. Door deze eigenschap op true te zetten wordt de bijhorende sneltoets getoond.

Binnen een menu kunnen menu-items gescheiden worden door een horizontale lijn. Dit wordt verkregen door een koppelteken (-) als menutekst op te geven.

1 Zie “14 Oopmerkingen”!

19

Arteveldehogeschool – OSO VS Informatica – Visual Basic (D1) 2009-2010Samenvatting AHS/PBAOSO/3830/1 Sonny Coddens-Cornelis

13 DebuggenDebuggen verwijst naar het weghalen van fouten in een programma. Bij het programmeren onderscheiden we 3 soorten fouten: syntaxfouten, uitvoeringsfouten en logische fouten.

Een syntaxfout is een fout tegen taal. Het is vaak een tikfout, een haakje vergeten... Deze fouten zijn gemakkelijk te verbeteren. In VB worden ze aangeduid met een blauwe golflijn.

Uitvoeringsfouten treden op wanneer het programma iets probeert te doen dat op dat moment niet kan. Het programma zal een foutmelding genereren. Bijvoorbeeld wanneer een stukje tekst in een variabele van het type integer gestoken wordt. Hierbij is het belangrijk steeds de foutmelding grondig te lezen en te interpreteren. Vaak wordt de oplossing van de fout al gegeven. Uitvoeringsfouten die slechts in uitzonderlijke gevallen voorkomen, bijvoorbeeld wanneer er geen invoer wordt gegeven, moeten met foutenafhandeling opgelost worden. Meer hierover in het 2e en 3e jaar.

Logische fouten zijn de moeilijkst op te lossen fouten. Hierbij is alles taalkundig wel in orde, er verschijnt bij de uitvoering van het programma geen foutmelding, maar toch doet het programma niet wat het zou moeten doen.Om de fout toch te vinden kan je een onderbrekingspunt plaatsen in het programma, Klik in de grijze balk naast de instructie, er komt een rode bol te staan.Tijdens het uitvoeren van het programma stopt de computer bij deze instructie. De waarden van de variabelen in het werkgeheugen kunnen gecontroleerd worden. Kies tijdens de foutenanalyse in het menu 'Debug' voor 'autos'.

Nu kan je het programma verder stap voor stap doorlopen door te klikken op “Step Into”

• Bedenk op voorhand welke waarde van variabele je zou moeten hebben na het uitvoeren van de instructie

• Voer de instructie uit• Controleer of de waarden van de variabele nog steeds overeen komen met wat je voorop had

gesteld

20

Arteveldehogeschool – OSO VS Informatica – Visual Basic (D1) 2009-2010Samenvatting AHS/PBAOSO/3830/1 Sonny Coddens-Cornelis

14 Opmerkingen Kommagetallen hebben in de code een punt als decimaal scheidingsteken. Bij het invoeren van kommagetallen in het formulier hangt het decimaal scheidingsteken af

van de landinstellingen. Meestal zal je dus bij het formulier een komma als decimaal scheidingsteken gebruiken.

Voorwaarden kunnen gegroepeerd worden, gescheiden door komma’s. Select Case variabele Case Is = 1, Is = 2, Is = 3 algoritme 1 Case Is voorwaarde categorie 2 algoritme 2 Case Is voorwaarde categorie n algoritme n Case Else algoritme anders End Select

Menu Items iii

The names of menu items should reflect their position in the menu hierarchy. All menu items should use the tag mnu, but the BaseName should indicate where in the hierarchy the menu item falls. Use Sep in the BaseName to indicate a menu separator bar, followed by an ordinal. For example:mnuFile (on menu bar)mnuFileNew (on File popup menu)mnuFileNewForm (on File New flyout menu)mnuFileNewReport (on File New flyout menu)mnuFileSep1 (first separator bar on file popup menu)mnuFileSaveAs (on File popup menu)mnuFileSep2 (second separator bar on file popup menu)mnuFileExit (on File popup menu)mnuEdit (on menu bar)

21

Arteveldehogeschool – OSO VS Informatica – Visual Basic (D1) 2009-2010Samenvatting AHS/PBAOSO/3830/1 Sonny Coddens-Cornelis

15 Opmerkelijke stukjes code

Public Class frm10Namen

Private Sub cmdInvoer_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdInvoer.Click Dim strnaam As String Dim intteller As Integer pBar.Visible = True 'maakt de vooruitgangsbalk zichtbaar pBar.Minimum = 0 'stelt het minimum van de vooruitgangsbalk in op 0 pBar.Maximum = 10 ' stelt het maximum van de vooruitgangsbalk in op 10 pBar.Value = 0 'stelt de beginwaarde van de vooruitgangsbalk in op 0 pBar.Step = 1 'stelt de stapgroote van de vooruitgangsbalk in op 1

For intteller = 1 To 10 strnaam = InputBox("Geef naam " & intteller & " in", "Naam ingeven") 'lblUitvoer.Text = lblUitvoer.Text & strnaam & vbCrLf 'voor namen komen onderaan der bij

lblUitvoer.Text = strnaam & vbCrLf & lblUitvoer.Text 'voor namen komen bovenaan der bij pBar.PerformStep() 'laat de vooruitgangsbalk met één stapgrootte vooruit gaan

Next

End Sub

22

Arteveldehogeschool – OSO VS Informatica – Visual Basic (D1) 2009-2010Samenvatting AHS/PBAOSO/3830/1 Sonny Coddens-Cornelis

Public Class frmGeldTerug

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdBereken.Click 'declaratie van de variabelen Dim intBedrag, intB50, intB20, intB10, intB5 As Integer

'invoer en verwerking lblOpdracht.Visible = True intBedrag = txtBedrag.Text intB50 = intBedrag \ 50 intBedrag = intBedrag Mod 50 intB20 = intBedrag \ 20 intBedrag = intBedrag Mod 20 intB10 = intBedrag \ 10 intBedrag = intBedrag Mod 10 intB5 = intBedrag \ 5 intBedrag = intBedrag Mod 5 'uitvoer let op de & vbCrLf dit zorgt voor volgende regel lblOpl.Text = intB50 & " x 50 €" & vbCrLf & intB20 & " x 20 €" & vbCrLf & intB10 & " x 10 €" & vbCrLf & intB5 & " x 5 €" & vbCrLf & intBedrag & " €" lblOpl.Visible = True

End SubEnd Class

Public Class Form1

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdStart.Click 'programma dat het kleinste en het grootste getal uit een reeks van 20 ingegeven getallen bepaald Dim intklein, intgetal, intteller, intgroot As Integer intgetal = InputBox("Voer het eerste getal in", "Getal invoeren") intklein = intgetal intgroot = intgetal For intteller = 2 To 20 intgetal = InputBox("voer getal " & intteller & " in", "Getal invoeren")

If intgetal < intklein Then intklein = intgetal ElseIf intgetal > intgroot Then intgroot = intgetal End If

Next MsgBox("Het kleinste getal is " & intklein & "." & vbCrLf & "Het grootste getal is " & intgroot & ".", MsgBoxStyle.OkOnly)

End SubEnd Class

23

Arteveldehogeschool – OSO VS Informatica – Visual Basic (D1) 2009-2010Samenvatting AHS/PBAOSO/3830/1 Sonny Coddens-Cornelis

Programma dat, gegeven een oneven getal X, een diamant tekent met als middelste rij X sterretjes. Voorbeeld voor X=7:*************************

Public Class frmSterretjes

Private Sub cmdStart_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdStart.Click 'declareren van variabelen Dim intgetal, intteller As Integer Dim str1, str2 As String 'begin invoercontrole (invoer moet een oneven getal zijn) Do intgetal = InputBox("Geef een oneven getal in:") Loop Until intgetal Mod 2 = 1 'einde invoercontrole (invoer is een oneven getal)

'Vermeerderen str1 = "*" 'initialisering lblUitvoer.Text = str1 'initialisering

For intteller = 1 To intgetal \ 2 str1 = str1 & "**" lblUitvoer.Text = lblUitvoer.Text & vbCrLf & str1 str2 = lblUitvoer.Text Next 'Verminderen str1 = "*" 'initialisering str2 = str1 'initialisering

For intteller = 1 To (intgetal - 2) \ 2 str1 = str1 & "**" str2 = str1 & vbCrLf & str2 Next

lblUitvoer.Text = lblUitvoer.Text & vbCrLf & str2

End Sub

24

Arteveldehogeschool – OSO VS Informatica – Visual Basic (D1) 2009-2010Samenvatting AHS/PBAOSO/3830/1 Sonny Coddens-Cornelis

16 Voorbeeld examen

16.1 Vraag 1Het datatype integer gaat maar tot 2 147 483 647, na 5 stappen met het programma 65 536 vermenigvuldigen met 65 536 dit levert 4.294.967.296 op. Deze waarde is echter te groot voor het datatype integer.

16.2 Vraag 2 Dim intteller, intIngave, intsom, intklein, intgroot As Integer

For intteller = 1 To 12 intIngave = InputBox("Geef je score in jurylid nummer " & intteller & ".", "Score ingeven")

'bij elke ingave uitvoeren intsom = intsom + intIngave

'enkel initialiseren bij eerste keer ingave If intteller = 1 Then intklein = intIngave intgroot = intIngave End If

'de ingave vergelijken met de grootste en kleinste waarde en waar nodig de waardes van het grootste en het kleinste aanpassen Select Case intIngave Case Is < intklein intklein = intIngave Case Is > intgroot intgroot = intIngave End Select

'Kan ook met twee opeenvolgende if's 'If intklein > intIngave Then ' intklein = intIngave 'End If 'If intgroot < intIngave Then ' intgroot = intIngave 'End If

Next

lblGemiddelde.Text = "Het gemiddelde is " & intsom / 12 lblKlein.Text = "Het minimum is " & intklein lblGroot.Text = "Het maximum is " & intgroot lblGemiddelde.Visible = True lblKlein.Visible = True lblGroot.Visible = True

25

Arteveldehogeschool – OSO VS Informatica – Visual Basic (D1) 2009-2010Samenvatting AHS/PBAOSO/3830/1 Sonny Coddens-Cornelis

16.3 Vraag 3De uitvoer is Getal niet in orde.

Het moet een positief getal kleiner dan 10 zijn.

Dim intGetal, intz, intb, intstop, intc As Integer intGetal = InputBox("Geef een getal in", "Getal ingeven") intz = intGetal intb = 0 intstop = 0 While intstop = 0 And intGetal <> 0 intc = intGetal Mod 10 intGetal = intGetal \ 10 If intc > intb Then intstop = 0 Else : intstop = 1 End If intb = intc End While If intstop = 0 Then MsgBox("Getal in orde") Else : MsgBox("Getal niet in orde") End If

16.4 Vraag 4 Dim strVoornaam, strNaam, strLeerkracht As String strVoornaam = txtVoornaam.Text strNaam = txtNaam.Text strNaam = strVoornaam & " " & strNaam 'hiermee zorg je dat de achtergrondkleur na de tweede keer terug naar de biginsituatie wordt gesteld Me.BackColor = Color.Empty 'maakt groter en kleiner Me.AutoSizeMode = Windows.Forms.AutoSizeMode.GrowAndShrink ''maakt enkel groter 'Me.AutoSizeMode = Windows.Forms.AutoSizeMode.GrowOnly Me.AutoSize = True If optTeJong.Checked = True Then 'voeg hier gebeurtenissen te jong in Me.BackColor = Color.LightBlue strLeerkracht = ("Uw kind mag nog thuisblijven!") ElseIf optKlas1.Checked = True Then strLeerkracht = ("Juf Lut") ElseIf optKlas2.Checked = True Then strLeerkracht = ("Juf Ilse") ElseIf optKlas3of4.Checked = True And optJongen.Checked = True Then strLeerkracht = ("Meester Wim") ElseIf optKlas3of4.Checked = True And optMeisje.Checked = True Then strLeerkracht = ("Meester Danny") ElseIf optBasisschool.Checked = True Then 'voeg hier de gebeurtenissen te oud in Me.BackColor = Color.Red strLeerkracht = ("Uw kind moet naar de basisschool!")

End If lblUitvoer.Text = (strNaam & " - " & strLeerkracht) lblUitvoer.Visible = True

26

Arteveldehogeschool – OSO VS Informatica – Visual Basic (D1) 2009-2010Samenvatting AHS/PBAOSO/3830/1 Sonny Coddens-Cornelis

Ook juist is:

Dim strVoornaam, strNaam, strLeerkracht As String strVoornaam = txtVoornaam.Text strNaam = txtNaam.Text strNaam = strVoornaam & " " & strNaam 'hiermee zorg je dat de achtergrondkleur na de tweede keer terug naar de biginsituatie wordt gesteld Me.BackColor = Color.Empty 'maakt groter en kleiner Me.AutoSizeMode = Windows.Forms.AutoSizeMode.GrowAndShrink ''maakt enkel groter 'Me.AutoSizeMode = Windows.Forms.AutoSizeMode.GrowOnly Me.AutoSize = True Select Case True Case optTeJong.Checked Me.BackColor = Color.LightBlue strLeerkracht = ("Uw kind mag nog thuisblijven!") Case optKlas1.Checked strLeerkracht = ("Juf Lut") Case optKlas2.Checked strLeerkracht = ("Juf Ilse") Case optKlas3of4.Checked And optJongen.Checked strLeerkracht = ("Meester Wim") Case optKlas3of4.Checked And optMeisje.Checked strLeerkracht = ("Meester Danny") Case optBasisschool.Checked Me.BackColor = Color.Red strLeerkracht = ("Uw kind moet naar de basisschool!") End Select lblUitvoer.Text = (strNaam & " - " & strLeerkracht) lblUitvoer.Visible = True

i Voor meer informatie zie: http://msdn.microsoft.com/en-us/library/cy37t14y(VS.80).aspx ii Voor meer informatie zie: http://msdn.microsoft.com/en-us/library/sa3hh43e(VS.85).aspx iii Voor meer informatie zie: http://www.xoc.net/standards/rvbanc.asp