Informaticasite van het Sondervick College te Veldhoven                 © L.J.M van Haperen (bron : R.J. van der Beek)
 

PO-Opgaven H8 (Visual Basic) deel 2

[VB opgaven deel 1]   [Theorie H8 (VB)  

Denk bij het maken van de opgaven om de naamconventies.
En voeg commentaar toe zodat de programma's begrijpelijk zijn voor anderen.

  1. Maak een programma waarin een label staat met "Geef een getal (0=stoppen)" en daarachter een tekstvenster waarin dat getal kan worden ingevoerd.
    Daaronder een button met als opschrift "Volgende"
    Daaronder een label waarop staat "Aantal ingevoerde getallen : " en daarachter een tekstvenster.
    Dit label en dit tekstvenster zijn in het begin onzichtbaar.
    Daaronder een label waarop staat "Som van de getallen : " en daarachter ook weer een tekstvenster.
    Ook dit label en dit tekstvenster zijn in het begin onzichtbaar.

    Elke keer als je in het bovenste tekstvenster een getal hebt ingevoerd, en daarna op de button "Volgende" klikt, dan wordt het bovenste tekstvenster leeg gemaakt, en dan kun je daar een nieuw getal invoeren.
    Dat gaat net zo lang door tot je het getal 0 (of niets) invoert.
    Als je het getal 0 invoert, en op Volgende drukt dan worden de onderste labels en tekstvensters zichtbaar, en dan wordt er in de onderste tekstvensters afgedrukt hoeveel getallen (ongelijk aan 0) je hebt ingevoerd en de som van die getallen. En de Volgende-knop wordt onzichtbaar.
    Aanwijzing :
    Denk er om dat het aantal en de som m.b.v. globale variabelen moeten worden vastgelegd.
    Zie daarvoor paragraaf 8.6.2. Gebruik verder: if (getal=0) then ............ else .................. endif
    Zie daarvoor bijvoorbeeld een stukje van het programma uit 8.2.7

  2. Maak een programma waarin een button staat met als opschrift "Geef som"
    Daaronder 5 tekstvenstertjes waarin een optelsom verschijnt met willekeurige getallen tussen 20 en 30 (en een antwoordvenster achter de som) zodra er op de button "Geef som" wordt geklikt. Daaronder een button met "klaar !" en daar onder een label met het opschrift "Tijd:" en een tekstvenster. Als er op de button "klaar" wordt geklikt (dat moet gebeuren direkt nadat iemand het antwoord van de som heeft ingevoerd) dan wordt er gecontroleerd of het antwoord goed is.
    Als het antwoord niet goed is dan wordt dat getal in het antwoordvenster gewist, en dan kan er een nieuw antwoord worden ingevoerd.
    Als het antwoord goed is dan verschijnt er in het laatste tekstvenster de tijd die verstreken is voordat het goede antwoord is gegeven.
    Aanwijzing :
    Voor het afdrukken van een optelsom in vier tekstvenster kijk naar paragraaf 8.2.4.

    Als je de volgende opdracht geeft:
    t = timer dan bevat de variabele t het aantal seconden vanaf middernacht. Dus als het precies 8 uur 's morgens is dan heeft t de waarde 8 x 3600 = 28800

    Denk er om dat t van het type single moet zijn omdat het een kommagetal is.
    Je moet de tijd twee keer opnemen : tijd1=vlak voor er met de som wordt begonnen (dus als er op "Geef som" wordt geklikt), en tijd2=vlak nadat de som af is (dus als er op "Klaar" wordt geklikt). Het verschil, dus tijd2-tijd1, is de tijd die er over gedaan is.

    Denk er om dat de begintijd onthouden moet worden, dus dat dat een globale variabele moet zijn, zie daarvoor paragraaf 8.6.2.

  3. Maak een programma waarin een label staat met "Geef getal nummer 1" en daarachter een tekstvenster waarin een getal kan worden ingevoerd.
    Daaronder nog een tekstvenster, dat in het begin onzichtbaar is.
    Als het getal is ingevoerd en er op enter is gedrukt wordt het opschrift van het label "Geef getal nummer 2" en het tekstvenster wordt leeggemaakt.
    Dit gaat zo lang door tot er een 0 wordt ingevoerd.
    Daarna wordt het onderste tekstvenster zichtbaar, en verschijnen de ingevoerde getallen in dat venster in omgekeerde volgorde. En het bovenste label en tekstvenster worden onzichtbaar.
    Aanwijzing :
    Gebruik een array voor de getallen, ga er van uit dat er niet meer dan 100 getallen worden ingevoerd. Declareer dat als: dim getal(100) as integer, en declareer dat bij General, Declarations want het moeten globale variabelen zijn !
    Je kunt dan de variabelen getal(1),getal(2), getal(3), enz. t/m getal(100) gebruiken, dus in het algemeen getal(i)
    Denk er om dat ook het nummer van het getal dat aan de beurt is, m.b.v. een globale variabele (bijv. n) moet worden vastgelegd.
    Zie daarvoor paragraaf 8.6.2.
    Het opschrift van het label leg je dan vast mb.v. label1.caption="Geef getal nummer " + str(n)
    Het eerste getal wordt getal(1), het tweede getal(2), het n-de getal wordt getal(n)
    Als er dus op enter is gedrukt moet het ingevoerde getal worden vastgelegd m.b.v. de opdracht getal(n) = val(text1.text)

    Tien regels onder elkaar in een tekstvenster kan m.b.v. de opdrachten:
    for i = 1 to aantal
    textvenster.text = textvenster.text + chr(13) + chr(10) + nieuw
    next i

    Tien dingen achter elkaar (met een spatie er tussen) in een tekstvenster kan m.b.v. de opdrachten:
    for i = 1 to aantal
    textvenster.text = textvenster.text + " " + nieuw
    next i

    Als het in omgekeerde volgorde moet dan moet de eerste regel worden vervangen door:
    for i = aantal to 1 step -1

  4. Maak een programma waarin een label staat met "Geef een getal (0=stoppen)" en daarachter een tekstvenster waarin dat getal kan worden ingevoerd.
    Daaronder een button met als opschrift "Volgende"
    Daaronder een label waarop staat "Grootste getal : " en daarachter een tekstvenster.
    Dit label en dit tekstvenster zijn in het begin onzichtbaar.
    Daaronder een label waarop staat "Kleinste getal : " en daarachter ook weer een tekstvenster.
    Ook dit label en dit tekstvenster zijn in het begin onzichtbaar.

    Elke keer als je in het bovenste tekstvenster een getal hebt ingevoerd, en daarna op de button "Volgende" klikt, dan wordt het bovenste tekstvenster leeg gemaakt, en dan kun je daar een nieuw getal invoeren.
    Dat gaat net zo lang door tot je het getal 0 (of niets) invoert.
    Als je het getal 0 invoert, en op Volgende drukt dan worden de onderste labels en tekstvensters zichtbaar, en dan wordt er in de onderste tekstvensters het grootste en het kleinste ingevoerde getal (ongelijk aan 0). En de Volgende-knop wordt onzichtbaar.
    Aanwijzing :
    Denk er om dat het aantal getallen dat is ingevoerd (bijv. aantal), het grootste (bijv. max) en het kleinste (bijv. min) m.b.v. globale variabelen moeten worden vastgelegd.
    Zie daarvoor paragraaf 8.6.2.
    Als het eerste getal is ingevoerd (dus als aantal = 1) dan geldt: max = ingevoerde getal en min = ingevoerde getal
    Bij elk getal daarna moet worden gecontroleerd of het ingevoerde getal groter dan max is, want dan wordt max gelijk aan het ingevoerde getal.
    En ook moet worden gecontroleerd of het ingevoerde getal kleiner dan min is, want dan wordt min gelijk aan het ingevoerde getal.
    En als het ingevoerde getal 0 is moeten max en min in de onderste tekstvensters verschijnen, en die moeten eerst zichtbaar worden gemaakt.
    Gebruik daarvoor: if (.............) then ............ else .................. endif
    Zie daarvoor bijvoorbeeld een stukje van het programma uit 8.2.

  5. Maak een programma waarin een label staat met "Geef getal nummer 1" en daarachter een tekstvenster waarin een getal kan worden ingevoerd.
    Daaronder nog een tekstvenster, dat in het begin onzichtbaar is.
    Als het getal is ingevoerd en er op enter is gedrukt wordt het opschrift van het label "Geef getal nummer 2" en het tekstvenster wordt leeggemaakt.
    Dit gaat zo door tot er tien getallen zijn ingevoerd.
    Daarna verandert het opschrift van het label in: "Geef de getallen nog eens".
    Als er dan Daarna wordt het onderste tekstvenster zichtbaar, en verschijnen de tien getallen in dat venster in omgekeerde volgorde. En het bovenste label en tekstvenster worden onzichtbaar.
    Aanwijzing :
    Gebruik een array voor de getallen. Declareer dat als: dim getal(10) as integer, en declareer dat bij General, Declarations want het moeten globale variabelen zijn !
    Je kunt dan de variabelen getal(1),getal(2), getal(3), enz. t/m getal(10) gebruiken, dus in het algemeen getal(i)
    Denk er om dat ook het nummer van het getal dat aan de beurt is, m.b.v. een globale variabele (bijv. n) moet worden vastgelegd.
    Zie daarvoor paragraaf 8.6.2.
    Het opschrift van het label leg je dan vast mb.v. label1.caption="Geef getal nummer " + str(n)
    Het eerste getal wordt getal(1), het tweede getal(2), het n-de getal wordt getal(n)
    Als er dus op enter is gedrukt moet het ingevoerde getal worden vastgelegd m.b.v. de opdracht getal(n) = val(text1.text)

    Tien regels onder elkaar in een tekstvenster kan m.b.v. de opdrachten:
    for i = 1 to aantal
    textvenster.text = textvenster.text + chr(13) + chr(10) + nieuw
    next i

    Tien dingen achter elkaar (met een spatie er tussen) in een tekstvenster kan m.b.v. de opdrachten:
    for i = 1 to aantal
    textvenster.text = textvenster.text + " " + nieuw
    next i

    Als het in omgekeerde volgorde moet dan moet de eerste regel worden vervangen door:
    for i = aantal to 1 step -1

  6. Maak een programma waarin een label staat met "Geef een naam" en daarachter een tekstvenster waarin een naam kan worden ingevoerd.
    Daaronder een label met als opschrift "Cijfer"
    Daarachter een tekstvenster waarin een cijfer kan worden ingevoerd
    Daaronder een button met als opschrift "Volgende"
    En daar weer onder een listbox, die in het begin leeg is.
    Als er een naam en een cijfer is ingevoerd, en er wordt op de volgende-button geklikt, dan verschijnt de naam met daarachter het cijfer in de listbox. En de twee tekstvensters worden leeggemaakt.
    Als er dan weer een naam en een cijfer is ingevoerd, en er wordt weer op de volgende-button geklikt, dan verschijnt ook die naam met daarachter het cijfer in de listbox. En de twee tekstvensters worden weer leeggemaakt.
    Zo gaat het verder, tot er tien namen en cijfers zijn ingevoerd.
    Daarna wordt de volgende-knop onzichtbaar.
    Aanwijzing :
    Denk er om dat het aantal ingevoerde namen m.b.v. een globale variabele (bijv. aantal) moet worden vastgelegd.
    Zie daarvoor paragraaf 8.6.2.
    Iets aan een listbox toevoegen (bijv. de inhoud van de variabele nieuw) doe je m.b.v. de opdracht:
    list1.additem(nieuw)
    Zie daarvoor paragraaf 8.3.2.

  7. Maak een programma waarin een label staat met "Geef getal nummer 1" en daarachter een tekstvenster waarin een getal kan worden ingevoerd.
    Daaronder een listbox, die in het begin leeg is.
    Als er een getal is ingevoerd en er op enter is gedrukt dan verschijnt het getal in de listbox.
    Verder wordt het opschrift van het label "Geef getal nummer 2" en het tekstvenster wordt leeggemaakt.
    Als er daarna weer een getal is ingevoerd en er op enter is gedrukt dan verschijnt ook dat getal in de listbox, en het opschrift van het label wordt "Geef getal nummer 3" en het tekstvenster wordt weer leeggemaakt.
    Dit gaat zo door tot het getal 0 wordt ingevoerd.
    Daarna worden het label en het tekstvenster onzichtbaar.
    Aanwijzing :
    Iets aan een listbox toevoegen (bijv. de inhoud van de variabele nieuw) doe je m.b.v. de opdracht:
    list1.additem(nieuw)
    Zie daarvoor paragraaf 8.3.2.

  8. Kleurinstellingen.

    Je weet dat elke kleur uit drie componenten bestaat: een rode, een groene en een blauwe. Maak een programma waarbij men d.m.v drie scrollbars de kleur van een rechthoek kan bepalen. Bij elke wijziging in één van de scrollbars moet de kleur van de rechthoek wijzigen, en ook is in labels onder de scrollbars te zien hoe groot de hoeveelheid rood, groen en blauw is. Hieronder zie je een voorbeeld:


    Aanwijzing :

    Je kunt een rechthoek, die gekleurd moet worden, tekenen door te klikken op Shape (dat is het icoontje waarop een cirkel, rechthoek en vierkant over elkaar zijn getekend), en dan een vorm neer te zetten.
    Bij de properties kun je dan bij Shape aangeven wat de vorm moet zijn, kies dan Rectangle
    De opdracht om de rechthoek in te kleuren is (als de naam shape1 is):
    shape1.FillColor = RGB(r, g, b)
    Daarbij zijn r, g en b de waarden voor rood, groen en blauw (variërend van 0 tot 255).
    Denk er wel om dat bij de properties van Shape moet de FillStyle op 0 = solid staan, en niet op 1 = transparent , want in het laatste geval zie je geen kleur.
    Een vertikale scrollbar teken je door te klikken op het icoontje waarin twee vertikale pijltjes boven elkaar zitten.
    Bij de properties van de scrollbar vul je bij max 255 in. Dat betekent dat als de balk maximaal verschoven is hij het getal 255 aangeeft, en dat is het grootste getal dat je voor de kleuren kunt gebruiken. Bij min (dat is het kleinste getal) vul je 0 in.

    Maak eerst de interface.
    Dan moet je programmeren dat, als je een scrollbalk verschoven hebt, de 3 scrollbalken worden gelezen en aan variabelen worden toegekend (r, g en b). Dat doe je m.b.v. de opdrachten:
    r = vscroll1.value: g = vscroll2.value: b = vscroll3.value:
    En daarna moet de rechthoek worden ingekleurd m.b.v. de opdracht shape1.FillColor = RGB(r, g, b)

  9. Landen met hoofdsteden

    Maak een programma waarin een label staat met als opschrift "Land" en daar achter een tekstvenster waarin de naam van een land verschijnt.
    Daar onder een label met als opschrift "Hoofdstad" en daar achter een tekstvenster waarin de naam van de hoofdstad ingevoerd kan worden.
    Daaronder een button met "Controleer" en daar onder een tekstvenster waarin Goedzo of Fout verschijnt.
    Bij de start van het programma (dus invoeren bij Sub Form_Load) wordt het bestand LANDEN.TXT ingelezen (zet dat bestand eerst even in de map D:\V4 van je eigen computer)
    In dat bestand LANDEN.TXT staan tien landen met de bijbehorende hoofdsteden in 20 regels opgeslagen, telkens een land en in de regel daarna de bijbehorende hoofdstad.
    En bij de start verschijnt de naam van het eerste land in het bovenste tekstvenster.
    Als er op de Controleer-knop wordt geklikt controleert het programma of de juiste hoofdstad in het tweede tekstvenster is ingevuld. Als het goed is verschijnt er in het onderste tekstvenster "Goedzo" en anders "Fout, het is ..." met op de stippen het goede antwoord.
    En tegelijk verschijnt de naam van het tweede land in het bovenste tekstvenster, en kan de hoofdstad daarvan worden ingevoerd. En zo gaat dat door tot de tien landen zijn geweest.
    Als er na het tiende land op de controleer-knop wordt geklikt verschijnt er weer Goedzo of Fout, maar ook verschijnt er hoeveel er in totaal goed waren, en de Controleer-knop verdwijnt.

    Aanwijzing :
    Een regel uit een bestand inlezen doe je m.b.v. de opdrachten:
    Open naambestand for input as #1
    line input #1, regel

    Op die eerste regel staat het eerste land, geef dan dus de opdracht land(1) = regel
    Als je daarna de laatste opdracht line input #1, regel nog eens geeft dan wordt de volgende regel ingelezen.
    Op die tweede regel staat de eerste hoofdstad, geef dan dus de opdracht hoofdstad(1) = regel
    En zo ga je door.
    Natuurlijk hoef je die opdrachten niet tien keer over te typen, het kan m.b.v.
    For i = 1 to 10
    .............
    next i


    Als je klaar bent met inlezen moet je nog de opdracht close #1 geven.

    Zie ook paragraaf 8.4.3. en paragraaf 8.4.4 en paragraaf 8.4.5


  10. Versje met regelnummers

    Maak een programma waarin een Button staat met als opschrift "Leesin" en daar onder een tekstvenster waarin een versje, dat uit meerdere regels bestaat, kan verschijnen.
    Als er op de Leesin-knop wordt geklikt dan wordt het bestand GEDICHT.TXT ingelezen (zet dat bestand eerst even in de map D:\V4 van je eigen computer)
    In dat bestand GEDICHT.TXT staat een gedicht, dat bestaat uit 14 regels (waarvan één lege regel).
    Daarna verschijnt dat gedicht in het tekstvenster, met de regelnummers er voor.
    En ook wordt er een nieuw bestand aangemaakt met de naam GEDICHT2.TXT. En in dat bestand staan dezelfde regels als in GEDICHT.TXT maar dan met de regelnummers ervoor.

    Aanwijzing :
    Een regel uit een bestand inlezen doe je m.b.v. de opdrachten:
    Open naambestand for input as #1
    line input #1, regel

    Dat is de eerste regel van het gedicht, geef dan dus de opdracht r(1) = regel
    Als je daarna de laatste opdracht line input #1, regel nog eens geeft dan wordt de volgende regel ingelezen.
    Dat is de tweede regel van het gedicht, geef dan dus de opdracht r(2) = regel
    En zo ga je door.
    Natuurlijk hoef je die opdrachten niet veertien keer over te typen, het kan m.b.v.
    For i = 1 to 14
    .............
    next i


    Als je klaar bent met inlezen moet je nog de opdracht close #1 geven.

    Zie ook paragraaf 8.4.3. en paragraaf 8.4.4 en paragraaf 8.4.5

    Een regel wegschrijven naar een bestand doe je m.b.v. de opdrachten:
    Open naambestand for output as #1
    print #1, regel


    Zie ook paragraaf 8.4.2. voor hoe dat werkt.

  11. Maak een programma waarin een label staat met "Gebruikersnaam : " en daarachter een tekstvenster waarin die naam kan worden ingevoerd.
    Daaronder een label met "Wachtwoord : " en daarachter een tekstvenster waarin het wachtwoord kan worden ingevoerd, en wel zo dat als je daarin iets typt er sterretjes verschijnen.
    Daar weer onder een label met "OK"
    In het gebruikers-tekstvenster verschijnt automatisch het woord dat daar de laatste keer is ingevoerd.
    En zodra je op -OK- klikt wordt gecontroleerd of de gebruikersnaam Informatica is, en het wachtwoord nachtvlinder, of eventueel de gebruikersnaam Administrator, en het wachtwoord geheim.
    Als het niet klopt dan verschijnt er een messagebox met -Wachtwoord foutief- en anders verschijnt er een messagebox met -wachtwoord OK. U wordt ingelogd-
    Aanwijzing :
    Bij de start (dus dat moet je programmeren onder Sub Form_Load) wordt het bestand GEBRUIKER.TXT ingelezen.
    Daarin staat namelijk de laatst gebruikte gebruikersnaam.
    En die naam wordt in het gebruiker-tekstvenster geplaatst.
    Een regel uit een bestand inlezen doe je m.b.v. de opdrachten:
    Open naambestand for input as #1
    line input #1, regel


    Als je klaar bent met inlezen moet je nog de opdracht close #1 geven.

    En als er op OK wordt geklikt dan wordt de ingevoerde gebruikersnaam in het bestand GEBRUIKER.TXT opgeslagen.
    Een regel wegschrijven naar een bestand doe je m.b.v. de opdrachten:
    Open naambestand for output as #1
    print #1, regel


    Er verschijnen bij het typen sterretjes in een tekstbox als je bij de eigenschappen van die tekstbox bij Passwordchar * zet.
    Je zorgt er voor dat er een messagebox verschijnt met daarin test door middel van de opdracht msgbox("test")

  12. Geboortedata in listbox
    Maak een programma waarin twee listboxen naast elkaar staan, de linker listbox voor tien namen en de rechter voor de bijbehorende geboortedata.
    Bij de start van het programma (dus invoeren bij Sub Form_Load) wordt het bestand NAMEN.TXT ingelezen (zet dat bestand eerst even in de map D:\V4 van je eigen computer)
    In dat bestand NAMEN.TXT staan tien namen en tien geboortedata in 20 regels opgeslagen.
    Telkens staat er een naam op een regel, en in de daarop volgende regel de geboortedatum van die persoon.
    De tien namen verschijnen dan in de linker listbox en de bijbehorende geboortedata in de rechter listbox.
    En als er op een naam in de linker listbox geklikt wordt (die naam wordt dan geselecteerd en wordt blauw) dan wordt in de rechter listbox de bijbehorende geboortedatum geselecteerd (die wordt dus blauw).

    Aanwijzing :
    Een regel uit een bestand inlezen doe je m.b.v. de opdrachten:
    Open naambestand for input as #1
    line input #1, regel

    Op die eerste regel staat de eerste naam, geef dan dus de opdracht naam(1) = regel
    Als je daarna de laatste opdracht line input #1, regel nog eens geeft dan wordt de volgende regel ingelezen.
    Op die tweede regel staat de eerste geboortedatum, geef dan dus de opdracht datum(1) = regel
    En zo ga je door.
    Natuurlijk hoef je die opdrachten niet tien keer over te typen, het kan m.b.v.
    For i = 1 to 10
    .............
    next i


    Als je klaar bent met inlezen moet je nog de opdracht close #1 geven.

    Zie ook paragraaf 8.4.3. en paragraaf 8.4.4 en paragraaf 8.4.5

    Iets aan een listbox toevoegen (bijv. de inhoud van de variabele nieuw) doe je m.b.v. de opdracht:
    list1.additem(nieuw)
    Zie daarvoor paragraaf 8.3.2.

    Als er op een element uit de listbox geklikt is dan zit het nummer van het geselecteerde item in list1.listindex
    Als je wilt dat item i van de tweede listbox geselecteerd wordt dan moet je de opdracht list2.selected(i)=true
    Zie daarvoor paragraaf 8.8.8.

  13. Maak een programma waarin een button staat met als opschrift "Geef som"
    Daaronder 5 tekstvenstertjes waarin een optelsom verschijnt (zie 8.2) met willekeurige getallen tussen 20 en 30 zodra er op de button "Geef som" wordt geklikt. Daaronder een button met "Controleer" en daar onder een label met het opschrift "Goedzo" of "Fout, nog eens".
    Als er op de controleer-button wordt geklikt dan wordt er gecontroleerd of het antwoord goed is.
    De som, met het ingevoerde antwoord, worden opgeslagen in een bestand met de naam "ANTWOORDEN.TXT".
    Als het antwoord niet goed is dan wordt dat getal in het antwoordvenster gewist, en dan kan er een nieuw antwoord worden ingevoerd.
    Als er daarna weer op de controleer-button wordt geklikt dan wordt het antwoord weer gecontroleerd.
    En ook nu wordt de som, met het nu ingevoerde antwoord, opgeslagen in het bestand met de naam "ANTWOORDEN.TXT".
    Als het antwoord goed is dan verschijnt er in het label "Goedzo"

    Aanwijzing :
    Voor het afdrukken van een optelsom in vier tekstvenster kijk naar paragraaf 8.2.4.

    Een regel wegschrijven naar een bestand doe je m.b.v. de opdrachten:
    Open naambestand for output as #1
    print #1, regel


    Zie ook paragraaf 8.4.2. voor hoe dat werkt.

  14.  Lotnummers controleren
    Maak een programma waarin een label staat met als opschrift "Lotnummer" en daar achter een tekstvenster waarin een getal kan worden ingevoerd.
    Daaronder een button met "Controleer" en daar onder een tekstvenster waarin Prijs ! of Geen prijs verschijnt.
    Bij de start van het programma (dus invoeren bij Sub Form_Load) wordt het bestand PRIJZEN.TXT ingelezen (zet dat bestand eerst even in de map D:\V4 van je eigen computer)
    In dat bestand PRIJZEN.TXT staan twintig getallen in 20 regels opgeslagen, dat zijn de nummers van loten waarop prijzen zijn gevallen.
    Als er een lotnummer in het tekstvenster wordt ingevoerd, en er wordt op de controleer-knop geklikt, dan controleert het programma of het ingevoerde lotnummer voorkomt bij de twintig getallen uit het bestand. Als het wel voorkomt dan is er een prijs op het lotnummer gevallen, en dan verschijnt er in het onderste tekstvenster "Prijs !" en anders "Geen prijs"

    Aanwijzing :
    Bij de start (dus dat moet je programmeren onder Sub Form_Load) wordt het bestand PRIJZEN.TXT ingelezen.
    Een regel uit een bestand inlezen doe je m.b.v. de opdrachten:
    Open naambestand for input as #1
    line input #1, regel


    Dat is het eerste lotnummer waar een prijs op valt, geef dan dus de opdracht prijs(1) = val(regel)
    Als je daarna de laatste opdracht line input #1, regel nog eens geeft dan wordt de volgende regel ingelezen.
    Dat is het tweede lotnummer waar een prijs op valt, geef dan dus de opdracht prijs(2) = val(regel)
    En zo ga je door.
    Natuurlijk hoef je die opdrachten niet 20 keer over te typen, het kan m.b.v.
    For i = 1 to 20
    .............
    next i


    Als je klaar bent met inlezen moet je nog de opdracht close #1 geven.

    Zie ook paragraaf 8.4.3. en paragraaf 8.4.4 en paragraaf 8.4.5

    Controleren of een bepaald getal bij de 20 nummers voorkomt doe je m.b.v. de opdrachten:
    gevonden=0
    for i=1 to 20
    if prijs(i)=getal then gevonden=i
    next i


    Als de variabele gevonden daarna nog de waarde 0 heeft, dan is het getal dus niet gevonden.
    En anders bevat de variabele gevonden het nummer van het juiste getal.

  15. Woorden met engelse vertaling
    Maak een programma waarin een label staat met als opschrift "Woord" en daar achter een tekstvenster waarin een nederlands woord verschijnt.
    Daar onder een label met als opschrift "Engels" en daar achter een tekstvenster waarin de vertaling van het woord in het engels ingevoerd kan worden.
    Daaronder een button met "Controleer" en daar onder een tekstvenster waarin Goedzo of Fout verschijnt.
    Bij de start van het programma (dus invoeren bij Sub Form_Load) wordt het bestand ENGELS.TXT ingelezen (zet dat bestand eerst even in de map D:\V4 van je eigen computer)
    In dat bestand ENGELS.TXT staan tien nederlandse woorden met de bijbehorende vertaling in het engels in 20 regels opgeslagen, telkens een nederlands woord en in de regel daarna de bijbehorende engelse vertaling.
    En bij de start verschijnt het eerste woord in het bovenste tekstvenster.
    Als er op de Controleer-knop wordt geklikt controleert het programma of de juiste vertaling in het tweede tekstvenster is ingevuld. Als het goed is verschijnt er in het onderste tekstvenster "Goedzo" en anders "Fout, het is ..." met op de stippen het goede antwoord.
    En tegelijk verschijnt het tweede woord in het bovenste tekstvenster, en kan de vertaling daarvan worden ingevoerd. En zo gaat dat door tot de tien woorden zijn geweest.
    Als er na het tiende woord op de controleer-knop wordt geklikt verschijnt er weer Goedzo of Fout, maar ook verschijnt er hoeveel er in totaal goed waren, en de Controleer-knop verdwijnt.

    Aanwijzing :
    Een regel uit een bestand inlezen doe je m.b.v. de opdrachten:
    Open naambestand for input as #1
    line input #1, regel

    Op die eerste regel staat het eerste woord, geef dan dus de opdracht woord(1) = regel
    Als je daarna de laatste opdracht line input #1, regel nog eens geeft dan wordt de volgende regel ingelezen.
    Op die tweede regel staat de vertaling van het eerste woord in het engels, geef dan dus de opdracht engels(1) = regel
    En zo ga je door.
    Natuurlijk hoef je die opdrachten niet tien keer over te typen, het kan m.b.v.
    For i = 1 to 10
    .............
    next i


    Als je klaar bent met inlezen moet je nog de opdracht close #1 geven.

    Zie ook paragraaf 8.4.3. en paragraaf 8.4.4 en paragraaf 8.4.5


  16. Hoevaak komt het woordje "de" voor
    Maak een programma waarin een Button staat met als opschrift "Leesin" en daar onder een tekstvenster waarin een versje, dat uit meerdere regels bestaat, kan verschijnen.
    Als er op de Leesin-knop wordt geklikt dan wordt het bestand GEDICHT.TXT ingelezen (zet dat bestand eerst even in de map D:\V4 van je eigen computer)
    Daar onder een label met het opschrift "Aantal keren de" en daar achter een tekstvenster waarin in het begin nog niets staat.
    En daar onder een picturebox waarin een gedicht, dat uit meerdere regels bestaat, kan verschijnen.
    Als er op de Leesin-knop wordt geklikt dan wordt het bestand GEDICHT.TXT ingelezen (zet dat bestand eerst even in de map D:\V4 van je eigen computer)
    In dat bestand GEDICHT.TXT staat een gedicht, dat bestaat uit 14 regels (waarvan één lege regel).
    Dat gedicht verschijnt in de picturebox.
    En ook wordt er geteld hoevaak het woordje "de" in het gedicht voorkomt, en dat aantal wordt afgedrukt in het tekstvenster achter het label met het opschrift "Aantal keren de".

    Aanwijzing :
    Een regel uit een bestand inlezen doe je m.b.v. de opdrachten:
    Open naambestand for input as #1
    line input #1, regel

    Dat is de eerste regel van het gedicht, geef dan dus de opdracht r(1) = regel
    Als je daarna de laatste opdracht line input #1, regel nog eens geeft dan wordt de volgende regel ingelezen.
    Dat is de tweede regel van het gedicht, geef dan dus de opdracht r(2) = regel
    En zo ga je door.
    Natuurlijk hoef je die opdrachten niet veertien keer over te typen, het kan m.b.v.
    For i = 1 to 14
    .............
    next i


    Als je klaar bent met inlezen moet je nog de opdracht close #1 geven.

    Zie ook paragraaf 8.4.3. en paragraaf 8.4.4 en paragraaf 8.4.5

    M.b.v. de volgende programmacode picture1.print regel wordt de regel in de picturebox afgedrukt.

    En m.b.v. de volgende regels tel je het aantal keren "de" in een regel:
    For i = 1 to len(regel)-1
    if mid(regel,i,2)="De" or mid(regel,i,2)="de" then aantal=aantal+1
    next i

  17. Landen met hoofdsteden in een Listbox
    Maak een programma waarin een Button staat met als opschrift "Leesin".
    Daar onder twee listboxen, waar in het begin nog niets in staat.
    Als er op de Leesin-knop wordt geklikt dan wordt het bestand LANDEN.TXT (zet dat bestand eerst even in de map D:\V4 van je eigen computer)
    In dat bestand LANDEN.TXT staan tien landen met de bijbehorende hoofdsteden in 20 regels opgeslagen, telkens een land en in de regel daarna de bijbehorende hoofdstad.
    De tien landen verschijnen dan in de linker listbox en de bijbehorende hoofdsteden in de rechter listbox.
    De leesin-knop wordt onzichtbaar.
    En als er op een land geklikt wordt (dat land wordt dan geselecteerd en wordt blauw) dan wordt in de rechter listbox de bijbehorende hoofdstad geselecteerd.

    Aanwijzing :
    Een regel uit een bestand inlezen doe je m.b.v. de opdrachten:
    Open naambestand for input as #1
    line input #1, regel

    Op die eerste regel staat het eerste land, geef dan dus de opdracht land(1) = regel
    Als je daarna de laatste opdracht line input #1, regel nog eens geeft dan wordt de volgende regel ingelezen.
    Op die tweede regel staat de eerste hoofdstad, geef dan dus de opdracht hoofdstad(1) = regel
    En zo ga je door.
    Natuurlijk hoef je die opdrachten niet tien keer over te typen, het kan m.b.v.
    For i = 1 to 10
    .............
    next i


    Als je klaar bent met inlezen moet je nog de opdracht close #1 geven.

    Zie ook paragraaf 8.4.3. en paragraaf 8.4.4 en paragraaf 8.4.5

    Iets aan een listbox toevoegen (bijv. de inhoud van de variabele nieuw) doe je m.b.v. de opdracht:
    list1.additem(nieuw)
    Zie daarvoor paragraaf 8.3.2.

    Als er op een element uit de listbox geklikt is dan zit het nummer van het geselecteerde item in list1.listindex
    Als je wilt dat item i van de tweede listbox geselecteerd wordt dan moet je de opdracht list2.selected(i)=true
    Zie daarvoor paragraaf 8.8.8.

  18. Wanneer geboren

    Maak een programma waarin een label staat met als opschrift "Naam" en daar achter een tekstvenster waarin een naam kan worden ingevoerd.
    Daaronder een button met "Wanneer geboren" en daar achter een tekstvenster waarin een geboortedatum kan verschijnen.
    Bij de start van het programma (dus invoeren bij Sub Form_Load) wordt het bestand NAMEN.TXT ingelezen (zet dat bestand eerst even in de map D:\V4 van je eigen computer)
    In dat bestand NAMEN.TXT staan tien namen en tien geboortedata in 20 regels opgeslagen.
    Telkens staat er een naam op een regel, en in de daarop volgende regel de geboortedatum van die persoon.
    Als er een naam in het naam-tekstvenster wordt ingevoerd, en er wordt op de wanneer_geboren-knop geklikt, dan controleert het programma of de ingevoerde naam voorkomt bij de tien namen uit het bestand. Als het wel voorkomt dan wordt de bijbehorende datum in het datum-tekstvenster afgedrukt, en anders verschijnt er in het datum-tekstvenster "komt niet voor"

    Aanwijzing :
    Bij de start (dus dat moet je programmeren onder Sub Form_Load) wordt het bestand NAMEN.TXT ingelezen.
    Een regel uit een bestand inlezen doe je m.b.v. de opdrachten:
    Open naambestand for input as #1
    line input #1, regel


    Op die eerste regel staat de eerste naam, geef dan dus de opdracht naam(1) = regel
    Als je daarna de laatste opdracht line input #1, regel nog eens geeft dan wordt de volgende regel ingelezen.
    Op die tweede regel staat de eerste geboortedatum, geef dan dus de opdracht datum(1) = regel
    En zo ga je door.
    Natuurlijk hoef je die opdrachten niet tien keer over te typen, het kan m.b.v.
    For i = 1 to 10
    .............
    next i


    Als je klaar bent met inlezen moet je nog de opdracht close #1 geven.

    Zie ook paragraaf 8.4.3. en paragraaf 8.4.4 en paragraaf 8.4.5

    Controleren of een bepaalde naam bij de 10 namen voorkomt doe je m.b.v. de opdrachten:
    gevonden=0
    for i=1 to 10
    if naam(i)=tekst then gevonden=i
    next i


    Als de variabele gevonden daarna nog de waarde 0 heeft, dan is de naam dus niet gevonden.
    En anders bevat de variabele gevonden het nummer van de juiste naam.

  19. Klassement van schaatswedstrijden
    Maak een programma waarin een label staat met "Naam:" en daarachter drie tekstvenster waarin de namen van de deelnemers kunnen worden ingevoerd.
    Daar onder een label met "tijd op de 500 m" en daarachter drie tekstvensters waarin de tijden van de deelnemers op de 500 m. kunnen worden ingevoerd.
    Daar onder een label met "tijd op de 1500 m" en daarachter drie tekstvensters waarin de tijden van de deelnemers op de 1500 m. kunnen worden ingevoerd.
    Daar weer onder een label met "tijd op de 5000 m" en daarachter drie tekstvensters waarin de tijden van de deelnemers op de 5000 m. kunnen worden ingevoerd.
    En tenslotte een label met "tijd op de 10000 m" en daarachter drie tekstvensters waarin de tijden van de deelnemers op de 10000 m. kunnen worden ingevoerd.
    Daar onder een label met "Klassement" en daarachter een listbox waarin de namen en daarachter het aantal punten van de deelnemers verschijnt, als er op de knop met Klassemnet wordt geklikt.
    Daarin moet zijn gesorteerd op het klassement van punten, de winnaar bovenaan.
    Houd ook rekening met de extra regel : wie 3 afstanden wint, is automatisch winnaar
    Aanwijzing :
    Het programma rekent tijden om naar seconden en berekent voor elke afstand de tijd om naar 10000 m.
    Tijden worden ingevoerd als minuten : seconden.
    Voorbeeld : tijd op 5000 m is 7:15,2 -> dat is 435,2 seconden
              Omrekenen naar 10000 m, dus 435,2 x 2 = 870,4 punten
    Het puntentotaal is de som van de punten behaald op de vier afstanden

  20. Sorteren van een reeks getallen
    Maak een programma waarin een label staat met "Getallen (gescheiden door puntkomma's:)" en daarachter een tekstvenster waarin een aantal getallen (gescheiden door puntkomma's) kunnen worden ingevoerd.
    Daar onder een knop met "Gesorteerd:" en daarachter een tekstvenster waarin de getallen nog eens staan, maar nu gesorteerd van klein naar groot, als er op de knop met Gesorteerd: wordt geklikt.

    Aanwijzing :
    Met de functie Split(..) wordt de lange String in afzonderlijke getallen gesplitst en met de functie UBound(..) kan het aantal getallen bepaald worden.

    Voorbeeld bij de functie Split en UBound

    Dim AantalGetallen As Integer
    Dim strGetallenReeks As String
    Dim strGetal() As String

    strGetallenReeks = "12 ; -1 ; 6 ; 18"
    strGetal() = Split(strGetallenReeks, ";", -1)
    AantalGetallen = UBound(Getal())
    Dit levert op :
    strGetal(0) = "12"
    strGetal(1) = "-1"
    strGetal(2) = "6"
    strGetal(3) = "18"
    AantalGetallen = 3

    - het array strGetal wordt dus genummerd vanaf index = 0
    - de upper boundary (UBound = hoogste index) van het array is dus 3
    - de functie Join doet het omgekeerde van Split, maar de &-operator is ook geschikt

  21. Gegevens van file lezen, tonen, aanpassen, weer in file wegschrijven
    Maak een programma waarin een label staat met "Naam (+pad) van het bestand:" en daarachter een tekstvenster waarin de naam en het pad van het bestand kan worden ingevoerd.
    Daar onder een knop met "Toon:" en daarachter een listbox waarin de gegevens van het bestand verschijnen, als er op de knop met Toon: wordt geklikt (ze worden dan eerst ingelezen uit het bestand, en dan in de listbox getoond).
    Een regel uit het bestand bestaat uit een string met daarin een naam en een cijfer, bijv. "Jannie, 5.6".
    De property Sorted van deze ListBox is true en hierdoor worden de gegevens gesorteerd in alfabetische volgorde.
    De gebruiker kan een nieuw gegeven in een TextBox schrijven en aan de lijst toevoegen door op een VoegToe-knop te drukken.
    De gebruiker kan een gegeven in de ListBox selecteren en verwijderen door te drukken op een Verwijder-knop.
    De gebruiker kan met een SlaOp-knop alle gegevens die in de ListBox staan weer opslaan in dezelfde file waaruit de gegevens zijn ingelezen.
    Zorg er voor dat tijdens het opslaan de aanwijzer verandert in een zandloper, zodat je kunt zien hoe lang de computer bezig is met opslaan.
    Omdat het waarschijnlijk heel snel gaat moet je er voor zorgen dat er tussen elk tweetal regels, dat wordt opgeslagen, een seconde wordt gewacht. Anders zie je de zandloper niet eens.
    Aanwijzing :
    Maak eerst een file aan met kladblok in dezelfde map als het project. In de file moeten de cijfers voor een Informatica toets van 4 leerlingen komen te staan. Bijvoorbeeld :
    Jannie, 5.6
    Klaas, 7.3
    Wim, 6.1
    Marie, 6.8

    M.b.v. de volgende code verandert de mousepointer in een zandloper: MousePointer = vbHourglass
    En m.b.v. de volgende code verandert de mousepointer weer in een pijltje: MousePointer = vbDefault

  22. De grafiek van y = ax3 + bx2 + cx + d tekenen
    Maak een programma waarin een label staat met "a = " en daarachter een tekstvenster waarin de waarde van a kan worden ingevoerd.
    Daaronder een label met "b = " en daarachter een tekstvenster waarin de waarde van b kan worden ingevoerd.
    Dan een label met "c = " en daarachter een tekstvenster waarin de waarde van c kan worden ingevoerd.
    Tenslotte een label met "d = " en daarachter een tekstvenster waarin de waarde van d kan worden ingevoerd.
    Daar onder een knop met "Toon:" en daar onder een picturebox waarin een assenstelsel getekend is (x en y lopen beide van -10 tot 10), en waarin de grafiek van y = ax3 + bx2 + cx + d getekend wordt als er op de knop met Toon geklikt wordt.
    Aanwijzing :
    Stel de property ScaleWidth en ScaleHeight van de PictureBox beide in op 100.
    Dit betekent dat de PictureBox wordt opgedeeld in 100 eenheden in x-richting en 100 eenheden in de y-richting.
    Houdt er wel rekening mee dat de linkerbovenhoek van de PictureBox het punt (0,0) is.
    - Je kunt een lijn in de PictureBox laten tekenen met : pictureboxnaam.Line (x1, y1) - (x2, y2)
    - Je kunt een PictureBox laten wissen met :pictureboxnaam.Cls
    - Je kunt tekst op een bepaalde plaats toevoegen aan een PictureBox met :
    pictureboxnaam.CurrentX = 200
    pictureboxnaam.CurrentY = 300
    pictureboxnaam.Print "test"
    (in dit geval wordt het woordje test op de plaats 200, 300 geplaats - Je kunt een punt op een bepaalde plaats laten tekenen in een PictureBox met : pictureboxnaam.PSet (x, y), RGB(255, 0, 0)
    Daarbij geeft RBG(255, 0, 0) aan dat de punten rood worden gekleurd.

  23. rekenmachine
    Maak een programma die de werking van een eenvoudige rekenmachine simuleert.
    Zorg er voor dat de interface net zo is als de interface van een een eenvoudige rekenmachine.
    Dus knoppen voor de 0, de 1, de 2, enz. t/m 9. Ook voor de decimaalpunt . en +/- voor een negatief getal. Verder knoppen voor +, -, x, /, CE (= wis laatste getal) en C (= wis alles) en =
    Tenslotte een tekstvenster, dat het display van de rekenmachine voorstelt.
    De werking van het programma moet identiek zijn aan die van gewone eenvoudige rekenmachine, met uitzondering van zogenaamde serieberekeningen als 3 + 4 - 2 * 8. Deze serieberekeningen zijn niet mogelijk (omdat je dan ook rekening moet houden met de voorrangregels bij het rekenen en dat maakt het te ingewikkeld).
    Dit betekent dat alleen berekeningen in de onderstaande vorm mogelijk zijn :
    eerste getal invoeren
    functieknop indrukken
    tweede getal invoeren
    '=' knop indrukken
    - mogelijke functies zijn +, -, x, /, CE (= wis laatste getal) en C (= wis alles)
    - bij delen door 0 verschijnt er 'Error' op het display
    - rekenmachine staat 'aan' zodra je het programma start en 'uit' als het programma wordt gestopt. Dus geen aparte aan/uit knoppen.
    - zodra het programma gestart wordt, bevat het display de waarde 0, net als bij een gewone rekenmachine en de ingetypte getallen (inclusief eventuele decimale punt en/of negatiefteken) worden direct op het display getoond

    Aanwijzing :
    - Maak het structuurdiagram om een "1" in te voeren.
    Denk eraan dat als er een "0" in het display van je rekenmachine staat, die "0" door een "1" vervangen moet worden als je op de 1-knop drukt. Maar als er iets anders dan een "0" staat, moet de "1" juist toegevoegd worden.
    Tenzij er net een berekening is uitgevoerd (d.w.z. op de "="-knop is gedrukt), dan moet het getal in het display gewist worden en moet er een "1" ingezet worden.
    Gebruik een globale variabele Wis om te 'onthouden' of het display gewist moet worden of niet.
    Bedenk dat ook het getal in het display overal bekend moet zijn, en dus als een globale variabele gedeclareerd moet worden.
    - Test de werking van de 1-knop.
    Maak zo ook de code voor de 0, 2 t/m 9-knop.

    - Maak het structuurdiagram om een decimale punt in te voeren.
    Bedenk dat een getal niet meer dan 1 decimale punt mag bevatten.
    Kijk hoe een eenvoudige rekenmachine reageert op het invoeren van een tweede decimale punt en zorg dat in dit programma hetzelfde gebeurt.

    - Maak de structuurdiagrammen voor de +/- knop, de CE knop en de C knop.
    - Voeg de bijbehorende code toe.


    Maak op vergelijkbare wijze de structuurdiagrammen en de code voor +, -, x, / en = knoppen.

    Bedenk dat de soort functie (+, -, x of /) onthouden moet worden tot er op het "="-teken wordt gedrukt. Dit kan met een globale variabele Functie.
    Test de gehele rekenmachine door allerlei soorten berekeningen in te voeren.
    Alleen series met na elke functie een druk op de '=' knop zijn toegestaan, dus bijv. 15 - 3 = + 12 = x 0.5 =

  24. Maak een programma om een factuurtje van een boekenwinkel in een formulier af te drukken.
    De gebruiker geeft eerst in hoeveel verschillende titels hij of zij wenst te kopen.
    aarna geeft de gebruiker de titel van een boek, de eenheidsprijs en het aantal exemplaren in.
    Ontwerp hiervoor zelf een formuliertje.
    Nadat de gegevens voor het eerste boek werd ingegeven, wordt het formuliertje leeggemaakt, en kan de gebruiker de gegevens van het volgende boek ingeven.
    Dit gaat zo door tot er evenveel titels werden ingegeven als het aantal dat de gebruiker vooraf heeft ingegeven.
    Wanneer alle titels ingegeven werden, verschijnt er in een nieuw formuliertje het hiernaast afgebeelde factuurtje op het scherm, waarin uiteraard de ingevoerde gegevens weergegeven worden, en de verschillende totale berekend.
    Door op de knop Stop te klikken, wordt het programma afgesloten.
    Door op de tweede knop te klikken, wordt het formuliertje met het factuur gesloten, en kan de gebruiker opnieuw gegevens ingeven.


  25. Rekenles
    Maak een programma waarin bij de start tien sommetjes verschijnen. De getallen voor de bewerkingen liggen tussen 1 en 10. Ook de bewerkingen zijn willekeurig. Gebruik hiervoor telkens de RND-functie. Onder de tien sommen staat een button met als opschrift "Controleer".
    En daar weer onder een label, die in het begin onzichtbaar is, maar waarin na de controle komt te staan hoeveel er goed waren.

    Na het drukken op de controletoets, wordt het onderste label zichtbaar en wordt er in afgedrukt hoeveel er goed waren.
    Verder krijgen de verkeerde antwoorden een rode kleur.
    En de tekst op de knop wordt gewijzigd in: Opnieuw.
    Als daar dan op geklikt wordt verschijnen er tien nieuwe sommen, en wordt het opschrift van de button veranderd in "Controleer"

    Aanwijzing :

    Je kunt de labels en de tekstvelden met behulp van arrays maken.
    Als je het eerste label hebt gemaakt en dat heb je lGetal1 genoemd, en je maakt een kopie van dat label door te kopieren en plakken, dan wordt er gevraagd of je er een array van wilt maken. Normaal beantwoord je die vraag met "no", maar nu met "yes".
    Dan krijgt het nieuwe label automatisch de naam lGetal1(1), het volgende lGetal1(2), enz. (er wordt met de index 0 begonnen, dus het eerste wordt lGetal1(0) ).
    Dan hoef je niet tien keer hetzelfde in te typen, want dan kun je bijvoorbeeld d.m.v. de opdrachten
    for i=0 to 9
    lGetal1(i).Caption = str(int(rnd*10+10))
    next i

    er voor zorgen dat er in alle tien labels een willekeurig getal verschijnt, enz.
    Lees in H8.6 verder na hoe dat moet.
    De bewerkingen (plus, min, keer, gedeeld door) zijn ook willekeurig. Dat doe je door een willekeurig getal tussen 1 en 4 te genereren m.b.v. int(rnd)*4 + 1.
    Als dat getal 1 wordt het een plus, bij 2 wordt het min, bij 3 keer en bij 4 gedeeld door.

  26. Mastermind
    Maak een programma waarmee Mastermind gespeeld kan worden.
    Er kan gekozen worden uit de kleuren rood, groen, geel, blauw, paars en zwart. Het programma kiest vier kleuren in een bepaalde volgorde uit die zes en toont voor elke kleur een vakje. Onder het eerste vakje staat een keuzelijst waarbij uit de zes kleuren gekozen kan worden. Als er op een kleur geklikt wordt dan krijgt het bijbehorende vakje die kleur, en dan verschijnt de keuzelijst onder het volgende vakje.
    Als er vier vakjes geweest zijn dan wordt aangegeven of de kleuren goed zijn of niet. Als de kleur van het vakje goed is verschijnt er een uitroepteken in het vakje. Als de kleur van het vakje wel voorkomt maar niet op de juiste plaats staat dan verschijnt er een k in het vakje. En als de kleur niet voorkomt dan verschijnt er een X in het vakje.
    Zijn alle kleuren goed en op de juiste plaats dan wordt er gestopt. En anders verschijnt de keuzelijst onder het eerstvolgende vakje en kan er opnieuw geraden worden. Net zolang tot de kleuren goed zijn of er vijf keer geraden is.

         

    Aanwijzing :

    Je kunt de labels van de hokjes met behulp van arrays maken.
    Als je het eerste label hebt gemaakt en dat heb je lVakje genoemd, en je maakt een kopie van dat label door te kopieren en plakken, dan wordt er gevraagd of je er een array van wilt maken. Normaal beantwoord je die vraag met "no", maar nu met "yes".
    Dan krijgt het nieuwe label automatisch de naam lVakje(1), het volgende lVakje(2), enz. (er wordt met de index 0 begonnen, dus het eerste wordt lVakje(0) ).
    Dan hoef je niet steeds hetzelfde in te typen, want dan kun je bijvoorbeeld d.m.v. de opdrachten
    for i=0 to 3
    lVakje(i).Caption = "X"
    next i

    er voor zorgen dat er in de bovenste rij kruisjes verschijnen, enz.
    Lees in H8.6 verder na hoe dat moet.
    De kleur van label1 wordt rood m.b.v. de volgende opdracht:
    label1.Backcolor=QBcolor(12)
    groen met label1.Backcolor=QBcolor(10)
    geel met label1.Backcolor=QBcolor(14)
    blauw met label1.Backcolor=QBcolor(9)
    paars met label1.Backcolor=QBcolor(13)
    zwart met label1.Backcolor=QBcolor(0)
    Een keuzelijst krijg je met een listbox. De kleuren krijg je er in m.b.v. list1.additem ("rood"), list1.additem ("groen"), enz.
    Je krijgt die lijst bijv onder label3 m.b.v. de opdrachten list1.left=label3.left en list1.top=label3.top+label3.height

    Lukt het je niet om vijf keer te laten raden, probeer het dan met één keer.

  27. Woorden raden
    Het programma kiest een woord van 10 letters en toont voor elke letter een tekstvakje.
    In het programma moeten minstens vijf van dat soort woorden zijn vastgelegd, en er wordt "at random" één van die vijf woorden gekozen.

    De speler vult telkens een letter in, in het vakje achter letter: en klikt op de knop met test. Als de letter voorkomt in het woord dan wordt die letter op alle plaatsen waar ze in het woord voorkomt ingevuld. Het programma houdt bij hoeveel letters de speler geprobeerd heeft en hoe vaak h

    Wanneer de speler denkt het woord te kennen, vult hij het in het tekstvak achter "woord:" in en klikt dan op de knop met "Gok het woord" Als hij goed heeft gegokt verschijnt het volledige woord in beeld en anders gaat het spel gewoon verder.

    Aanwijzing :

    Je kunt de labels met behulp van een array maken.
    Als je het eerste label hebt gemaakt en dat heb je lLetter genoemd, en je maakt een kopie van dat label door te kopieren en plakken, dan wordt er gevraagd of je er een array van wilt maken. Normaal beantwoord je die vraag met "no", maar nu met "yes".
    Dan krijgt het nieuwe label automatisch de naam lLetter(1), het volgende lLetter(2), enz. (er wordt met de index 0 begonnen, dus het eerste wordt lLetter(0) ).
    Dan hoef je niet tien keer hetzelfde te programmeren, want dan kun je bijvoorbeeld d.m.v. de opdrachten
    for i=0 to 9
    lLetter(i).Caption = mid(woord,i,1)
    next i

    er voor zorgen dat de tien letters van het woord in de tien labels verschijnen, enz.
    Lees in H8.6 verder na hoe dat moet.
    Verder moet je de volgende dingen over strings weten:
    MID(z, 5, 1) is de vijfde letter van de string z
    Len(z) is het aantal tekens van de string z

  28. Boter, kaas en eieren
    Maak een programma waarmee boter, kaas en eieren gespeeld kan worden. Telkens geeft het programma aan welke speler aan de beurt is, X of O
    Als er dan op een vakje geklikt wordt dan verschijnt daarin het bijbehorende teken, dus X of O
    De computer controleert na elke zet of een van beiden gewonnen heeft.
    Heeft iemand gewonnen dan wordt dat gemeld, anders gaat het gewoon verder.
    Behalve als alle hokjes vol zijn, dan wordt gemeld dat geen van beiden heeft gewonnen.
    Als het spelletje uit is wordt gevraagd of je het spelletje nog eens wilt spelen.
    Als die vraag met ja wordt beantwoord worden alle hokjes leeg gemaakt en begint het spel opnieuw.

    Aanwijzing :

    Je kunt de labels van de hokjes met behulp van een array maken.
    Als je het eerste label hebt gemaakt en dat heb je lVakje genoemd, en je maakt een kopie van dat label door te kopieren en plakken, dan wordt er gevraagd of je er een array van wilt maken. Normaal beantwoord je die vraag met "no", maar nu met "yes".
    Dan krijgt het nieuwe label automatisch de naam lVakje(1), het volgende lVakje(2), enz. (er wordt met de index 0 begonnen, dus het eerste wordt lVakje(0) ).
    Dan hoef je niet steeds hetzelfde in te typen, want dan kun je bijvoorbeeld d.m.v. de opdrachten
    for i=0 to 8
    lVakje(i).Caption = " "
    next i

    er voor zorgen dat alle hokjes leeg worden gemaakt, enz.
    Lees in H8.6 verder na hoe dat moet.

  29. Lingo
    Maak een programma waarmee Lingo gespeeld kan worden.
    Het programma kiest een woord van 5 letters en toont voor elke letter een tekstvakje, en de eerste letter van het woord wordt in het eerste vakje getoond.
    In het programma moeten minstens vijf van dat soort woorden zijn vastgelegd, en er wordt "at random" één van die vijf woorden gekozen.
    Als iemand een letter in een vakje typt springt de cursor automatisch naar het volgende vakje. En zodra de laatste letter van het woord is ingetypt controleert de computer of het woord goed is.
    Als het goed is verschijnt dat op het scherm, en het aantal beurten waarin het geraden is.
    Als het niet goed is verschijnen er 5 nieuwe tekstvakjes voor de 5 letters onder de vorige, en de eerste letter staat weer voorgedrukt.
    Verder worden van het ingetypte woord de letters die goed zijn en op de goede plaats staan rood gemaakt, en de letters die goed zijn maar op de verkeerde plaats staan blauw.
    Elk woord mag zo in maximaal vijf beurten worden geraden.
    Als het woord na vijf keer nog niet geraden is dan wordt dat gemeld, en het juiste woord wordt getoond.

         

    Aanwijzing :

    Je kunt de labels van de hokjes met behulp van een array maken.
    Als je het eerste label hebt gemaakt en dat heb je lVakje genoemd, en je maakt een kopie van dat label door te kopieren en plakken, dan wordt er gevraagd of je er een array van wilt maken. Normaal beantwoord je die vraag met "no", maar nu met "yes".
    Dan krijgt het nieuwe label automatisch de naam lVakje(1), het volgende lVakje(2), enz. (er wordt met de index 0 begonnen, dus het eerste wordt lVakje(0) ).
    Dan hoef je niet steeds hetzelfde in te typen, want dan kun je bijvoorbeeld d.m.v. de opdrachten
    for i=0 to 4
    lVakje(i).Caption = mid(woord,i+1,1)
    next i

    er voor zorgen dat de letters van het woord in de bovenste rij vakjes verschijnen, enz.
    Lees in H8.6 verder na hoe dat moet.
    De kleur van de letters worden rood m.b.v. de volgende opdracht:
    text1.forecolor=QBcolor(12)
    en blauw met text1.forecolor=QBcolor(9)
    De cursor wordt in vakje 2 gezet m.b.v. de volgende opdracht:
    text2.setfocus

    Lukt het je niet om vijf keer te laten raden, probeer het dan met één keer.

  30. Luciferspel
    Maak een programma waarmee het luciferspel gespeeld kan worden.
    In het begin zijn er 20 lucifers in beeld.
    Er zijn twee spelers, A en B. Ze moeten om de beurt een aantal lucifers weghalen, maximaal drie.
    En de speler die de laatste lucifer weghaalt heeft verloren.
    Steeds moet de speler, die aan de beurt is, aangeven of hij 1, 2 of 3 lucifers wil weghalen.
    Dat moet hij aangeven door in de checkbox van 1, 2 of 3 te klikken.
    Als hij dat doet dan verdwijnen die lucifers ook werkelijk.
    En daarna is de andere speler aan de beurt.
    Als de laatste lucifer is weggehaald verschijnt nog in beeld wie er heeft gewonnen.
 

Aanwijzing :
Je kunt de lucifers in pictureboxen plaatsen, en daar een array van maken.
Als je de eerste picturebox hebt gemaakt en dat heb je Picture genoemd, en je maakt een kopie van die picturebox door te kopieren en plakken, dan wordt er gevraagd of je er een array van wilt maken. Normaal beantwoord je die vraag met "no", maar nu met "yes".
Dan krijgt de nieuwe picturebox automatisch de naam Picture(1), de volgende Picture(2), enz. (er wordt met de index 0 begonnen, dus de eerste wordt Picture(0) ).
Dan hoef je niet steeds hetzelfde in te typen, want dan kun je bijvoorbeeld d.m.v. de opdrachten
for i=0 to 19
Picture(i).picture = Loadpicture("lucifer.gif")
next i

er voor zorgen dat in elke picturebox het plaatje met de naam "lucifer.gif" verschijnt, enz.
Lees in H8.6 verder na hoe dat moet.
Een lucifer laat je verdwijnen met de opdracht picture(i).visible=false