Informaticasite van het Lauwers College te Buitenpost                 © R.J. van der Beek
 
  Opgaven Hoofdstuk 8: Visual Basic      


1.Bij deze opgave gaan we ervan uit dat je het programma, dat besproken wordt in hoofdstuk 1 van Visual Basic, gemaakt hebt. Dat is het programma waarbij er twee getallen moeten worden ingevoerd. En als er dan op de knop met "Reken uit" wordt geklikt dan wordt de som, het verschil, het product en het quotiënt van die getallen berekend en afgedrukt.
a. Verander het programma zo, dat er op de knop "Geef het antwoord" staat i.p.v. "Reken uit! "
b. Verander de achtergrondkleur van het totale venster in zwart.
Aanwijzing: Je kunt dat invoeren in het propertiesvenster van het hele formulier.
c. Verander het programma zo, dat als g2 nul is, en er wordt op de knop "Reken uit!" geklikt, dat er in het laatste tekstvenster verschijnt: Sukkel, delen door nul is flauwe kul !
d. Verander het programma zo, dat er een knop met "Reset" bij staat, en wel zo dat als je op die knop klikt de tekst uit de tekstvenstertjes wordt verwijderd.
(aanwijzing : als je tekst uit tekstvenster 1 wilt verwijderen, dan moet je als programmaregel invoeren text1.text=""
e. Verander het programma zo dat er in plaats van het label met "quotient" een label met "kleinste" op het scherm komt, en dat er in de textbox daarachter het kleinste van de twee getallen wordt afgedrukt.


2.Een som op het scherm, waarbij het antwoord gecontroleerd wordt
a. Maak een programma waarbij bij het starten een keer-som verschijnt met getallen tussen 5 en 10 (zoiets als 7 x 8 =). En als het antwoord is ingetypt, en er is op enter gedrukt, verschijnt er op een label "Goed zo" als het goed is. En als het fout is, verschijnt er op het label: "Fout, het goede antwoord is ..." met op de stippeltjes natuurlijk het goede antwoord.
b. Maak een programma waarbij bij het starten alleen maar een knop zichtbaar is, waarop staat "Geef een som".
Als je daarop klikt verschijnt er een optelsom met getallen tussen 20 en 30 (zoiets als 27 + 21 =). En als het antwoord is ingetypt, en er is op enter gedrukt, verschijnt er op een label "Goed zo" als het goed is. En de som verdwijnt.
En als het fout is, verschijnt er op het label: "Fout, nog eens", en het antwoord wordt gewist (maar de som blijft staan).
En dan kan er een nieuw antwoord worden ingevoerd.
c. Maak een programma waarbij bij het starten een label staat met "Vertaal in het engels", en daar achter een tekstbox met het woord "tafel".
Daar onder staat een label met "Vertaling:", en daar achter een tekstbox waarin het antwoord kan worden ingevoerd.
En als het antwoord is ingetypt, en er is op enter gedrukt, verschijnt er op een label "Goed zo" als het goed is. En als het fout is, verschijnt er op het label: "Fout, het goede antwoord is ..." met op de stippeltjes natuurlijk het goede antwoord.
d. Maak een programma waarbij bij het starten een keer-som verschijnt met getallen tussen 5 en 10 (zoiets als 7 x 8 =). En als het antwoord is ingetypt, en er is op enter gedrukt, verschijnt er op een label "Goed zo, je tijd was ..." als het goed is.
Op de stippeltjes verschijnt de tijd (in seconden) die het maken geduurd heeft.
En als het fout is, verschijnt er op het label: "Fout, nog eens", het antwoord wordt gewist en er kan een nieuw antwoord worden ingevoerd.
Aanwijzing: 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 : vlak voor er met de som wordt begonnen, en vlak nadat hij af is. Het verschil is de tijd die er over gedaan is. Als je de volgende opdrachten geeft: u = Hour(Time), m = Minute(Time), s = Second(Time) en het is 15.30 uur precies, dan heeft u de waarde 15, m de waarde 30 en s de waarde 0. Die kun je eventueel ook gebruiken, maar timer is handiger.


3. Werken met een listbox
a. Je gaat in deze opgave een programma maken waarmee je een lijst van namen kunt bijwerken.
Je maakt eerst de interface op de volgende manier:
Zet op het formulier een listbox, een tekstvenster, en daaronder een knop met als opschrift Voegtoe onder de geselecteerde
En zet er nog een knop onder met als opschrift Wijzig de geselecteerde
En nog een knop met als opschrift Verwijder de geselecteerde
Zet in de lijst via het Propertiesvenster van de listbox de namen Jeanet, Tim en Marian



b. Maak het programma uit opdracht 3a zo, dat als je op een naam in de listbox klikt, deze naam ook in het tekstvenster ernaast verschijnt.
c. Maak het programma uit opdracht 3b zo dat als je de naam in de tekstbox verandert, en je klikt op de voegtoe-onder-geselecteerde-knop, de naam aan de lijst wordt toegevoegd en wel onder de geselecteerde.
d. Maak het programma uit opdracht 3c zo dat als je de naam in de tekstbox verandert, en je klikt op de wijzig-geselecteerde-knop, de geselecteerde naam in de lijst wordt gewijzigd.
Aanwijzing:
In de listbox kun je een naam niet rechtstreeks wijzigen.
Verwijder daarom de geselecteerde en voeg de gewijzigde naam op die zelfde plaats toe.
e. Maak het programma uit opdracht 3d zo, dat als je een naam aanklikt in de listbox, en je klikt op de verwijder-knop, de naam uit de lijst verwijderd wordt.
f. Maak het programma uit opdracht 3e zo dat als je de naam in de tekstbox verandert (of een naam invoert), en je drukt op de entertoets, de naam aan de lijst wordt toegevoegd en wel onderaan.


4. Een bestand inlezen, tekst afdrukken in een tekstbox, listbox of picturebox
a. Maak eerst m.b.v. Kladblok een tekstbestand met minstens vijf regels tekst, sla het op onder de naam PROEF.TXT
Maak dan een programma, waarbij er drie tekstvenstertjes van één regel op het scherm staan, en een knop met "Lees".
Als je op die knop klikt dan wordt de tekst ingelezen, en in het eerste tekstvenstertje verschijnt dan de eerste regel van het bestand, in het tweede tekstvenstertje verschijnt de tweede regel van het bestand , en in het derde tekstvenstertje verschijnt de derde regel van het bestand; de rest van de regels wordt niet ingelezen.
b. Verander het vorige programma zo, dat er in plaats van drie tekstvensters een Listbox op het formulier staat, en zorg er voor dat de regels in die Listbox getoond worden.
c. Verander het vorige programma zo, dat de naam van het bestand niet moet worden ingevoerd in een tekstvenstertje, maar zorg er voor dat er een DriveListbox, een DirListbox, en een FileListbox op het formulier staan en dat het tekstbestand op die manier kan worden uitgekozen.
d. Verander het vorige programma zo, dat er alleen wordt afgedrukt (in het eerste tekstvenster) uit hoeveel regels het bestand bestaat. De inhoud van het bestand wordt dus niet afgedrukt.
e. Maak een programma waarin een label staat met "Tafel van:" en daarachter een tekstvenstertje waarin een getal getypt moet worden.
Daaronder een picturebox, waarin de tafel van het getal komt dat is ingevoerd in het tekstvenster. Dus als het getal 7 is ingevoerd, dan verschijnt er 1 x 7 = 7 , 2 x 7 = 14 enz. Zet er ook nog een tekstvenster bij, waarin die tafel ook komt.
f. Maak een programma waarin een label staat met "Tafel van:" en daarachter een tekstvenstertje waarin een getal getypt moet worden.
Daaronder een tekstvenster, waarin de tafel van het getal komt dat is ingevoerd. Dus als het getal 7 is ingevoerd, dan verschijnt er 1 x 7 = 7 , 2 x 7 = 14 enz.
g. Je kunt een tekst laten zien in een picturebox, je kunt er tekst in laten zien maar je kunt ook tekenen in een picturebox.
Maak een programma, waarop een picturebox staat met de naam picAfdruk
Zet in de form_load procedure: picAfdruk.AutoRedraw = True
picAfdruk.line(0,0)-(100,200)
picAfdruk.circle(400,300),300
Je kunt ook de kleuren, de dikte, de opvulkeur enz. bepalen.
Als je dat wilt weten kun je dat opzoeken bij het overzicht van Visual Basic


5. Beweging
a. Maak een programma waarbij er twee pictureboxen (in het begin) onder elkaar staan. Ze bewegen beide naar rechts, maar de onderste beweegt twee keer zo snel als de bovenste.
b. Maak een programma waarbij een picturebox heel langzaam omlaag beweegt.
c. Maak een programma waarbij een picturebox flikkert.
Telkens is de picturebox een halve seconde wel te zien, dan een halve sec. niet, dan weer een halve sec. wel, enz.
Aanwijzing : om en om moet de computer de opdrachten picture1.visible = true en picture1.visible = false uitvoeren.
d. Maak een programma waarbij een picturebox in een cirkel beweegt.
Aanwijzing:
Als je een cirkel met middelpunt (2000,2000) en straal 1000 hebt, dan geldt :
x = 2000 + 1000 * cos(h)
en y = 2000 + 1000 * sin(h)
waarbij h de draaihoek is.
Neem de hoek h als globale variabele (noem die dus h), en geef h als beginwaarde 0
Die moet je ook nog declareren, en wel als single !
(want een hoek wordt in VB in radialen gerekend, in komma-getallen)
Elke keer als de timer afloopt verhoog je de draaihoek een beetje, bijvoorbeeld h=h+0.1
Verder moet de plaats van de linkerrand en de bovenrand van de picturebox berekend worden met de formules hierboven.
Dus picture1.left = 2000 + 1000 * cos(h)
en picture1.top = 2000 + 1000 * sin(h)
Dat zet je ook in de eventhandler van de timer
e. Maak een programma waarop twee knoppen en een tekstvenster staan.
Op de eerste knop staat: Geef na 1 seconde de datum.
En als je daar op klikt verschijnt na 1 seconde de datum in het tekstvenster, die datum blijft 2 seconden staan en dan wordt hij weer verwijderd.
Op de tweede knop staat: Geef na 2 seconden de tijd.
En als je daar op klikt verschijnt na 2 seconden de tijd in het tekstvenster, die tijd blijft 3 seconden staan en dan wordt hij weer verwijderd.


6. Een bestand wegschrijven.
a. Verander het programma uit opgave 3a zo, dat er een knop op het formulier bij geplaatst wordt waarop "Save" staat.
En wel zo dat als je op die knop klikt de namen uit de listbox in een tekstbestand worden opgeslagen. Zodat je na afloop m.b.v. Kladblok het bestand kunt bekijken.


7. Theorie
a. Je hebt twee tekstvensters: Text1 en Text2, en een opdrachtknop waarop Reset staat.
Als je op die reset-knop klikt dan wordt de tekst uit de beide tekstvensters verwijderd.
Hoe programmeer je dat in de procedure die hoort bij die reset-knop?
En hoe noem je die programmaregels ook wel?
b. Je hebt drie tekstvensters: txtGetal1, en txtGetal2 en txtGrootste, en een opdrachtknop waarop Grootste staat.
Als je op die knop klikt dan wordt het grootste van de getallen, die in de beide tekstvensters txtGetal1 en txtGetal2 staan, afgedrukt in het tekstvenster txtGrootste.
Hoe programmeer je dat in de procedure die hoort bij de grootste-knop?
c. Er staat een label met de naam lblHallo op het scherm, en een knop waarop staat: Verdwijn.
Als je op die knop klikt dan verdwijnt het label.
Hoe programmeer je dat in de procedure die hoort bij die verdwijn-knop?
d. Er staat een tekstvenster met de naam Text1 op het scherm, en een knop waarop staat: Verbied.
Als je op die knop klikt dan kun je daarna niets meer in het tekstvenster typen.
Hoe programmeer je dat in de procedure die hoort bij die verbied-knop?
e. Je hebt drie tekstvensters: txtGetal1, txtGetal2 en txtAntwoord, en een opdrachtknop waarop Controleer staat.
In de eerste twee tekstvensters komen automatisch getallen te staan (dat hoef je nu niet te programmeren). In het derde tekstvenster moet de som van die eerste twee getallen worden ingevuld.
Als je op de controleer-knop klikt dan controleert de computer of het goede antwoord is ingevuld. Als het goed is verschijnt er een messagebox waarin staat: Goed zo, en anders verschijnt er een messagebox waarin staat: Fout!.
Hoe programmeer je dat in de procedure die hoort bij de controleer-knop?
f. Er staat een listbox met de naam lstGetallen op het formulier, en een knop met het opschrift Vul!.
Als je op de vul-knop klikt dan verschijnen de getallen 1 t/m 100 in de listbox.
Hoe programmeer je dat in de procedure die hoort bij de vul-knop?
g. Er staat een listbox met de naam lstLetters op het formulier, en een knop met het opschrift Vul!.
Als je op de vul-knop klikt dan verschijnen de letters a t/m z in de listbox.
Hoe programmeer je dat in de procedure die hoort bij de vul-knop?
h. Er staat een label met de naam lblHallo op het scherm. Hoe kun je er voor zorgen dat dat label langzaam naar rechts opschuift?
Welk object moet je daarvoor gebruiken, en hoe programmeer je dat in de procedure die hoort bij dat object?
i. Je hebt een tekstvenster met de naam Text1 en een opdrachtknop waarop Save staat. Als je op de Save-knop klikt dan wordt de tekst uit het tekstvenster in het bestand TEST.TXT opgeslagen.
Hoe programmeer je dat in de procedure die hoort bij die save-knop?
j. Er staat een tekstvenster met de naam txtGetal1 op het scherm, en een knop waarop staat: Volgende, en een tekstbox met de naam txtSom, en een tekstbox met de naam txtAantal.
Het is de bedoeling dat er een getal in het tekstvenster txtGetal1 wordt getypt. En als je dan op de volgende-knop klikt dan verschijnt de som van de getallen, die tot dan toe zijn ingevoerd, in de tekstbox txtSom, en het aantal tot dan toe ingevulde getallen in de tekstbox txtAantal.
Hoe programmeer je dat in de procedure die hoort bij de verder-knop?
k. Wanneer gebruik je een globale variabele. Hoe en waar moet je die declareren?