Small Basic Programmeren – Text Console - ca-ict.netca-ict.net/media/pdf/Programmeren H3V3.pdfICT...
Transcript of Small Basic Programmeren – Text Console - ca-ict.netca-ict.net/media/pdf/Programmeren H3V3.pdfICT...
ICT H3 en V3 Colegio Arubano Page 1 of 23
Small Basic Programmeren – Text Console
Jaaroverzicht 15/16:
Blok3: 23 november
1. (48): Sequentie
2. (49): Selectie
3. (50): Oefenen
4. (51/1): Oefenen
5. (2): Oefenen
Blok 4: 27 januari
1. (4): Oefenen
2. (5): Oefenen
3. (6): Oefenen
4. (7): Oefenen
5. (8/9): Toets (PSD/Broncode)
Blok 5: 14 maart
1. (11): While
2. (12): For
3. (14): Array
4. (15): Functies
5. (16/17): Online toets
Blok 6: 18 mei
1. (20): Oefenen
2. (21): Oefenen
3. (22): Practicum (PSD/Broncode)
4. (23): Buffer
5. (24): Buffer
ICT H3 en V3 Colegio Arubano Page 2 of 23
Small Basic Programmeren – Text Console
Lesdoelen blok 3/4:
Een leerling moet:
1. Kunnen uitleggen wat programmeren inhoudt
2. Kunnen uitleggen waarvoor programmeren dient
3. Kunnen uitleggen waarom er verschillende programeertalen zijn
4. Kunnen uitleggen wat een Object Oriented Programmeertaal is
5. Kunnen uitleggen wat een IDE is
6. Kunnen aangeven wat de voordelen van een IDE zijn
7. Kunnen opnoemen uit welke onderdelen een Object is samengesteld
8. Kunnen uitleggen wat een object property is
9. Kunnen uitleggen wat een object method is
10. Kunnen uitleggen wat een argument of parameter is
11. Kunnen uitleggen wat een resulterende functie waarde is
12. Kunnen demonstreren hoe een resulterende functie-waarde gebruikt kan worden
13. Kunnen laten zien hoe je Small Basic moet starten
14. Kunnen uitleggen wat een variabele is
15. Kunnen demonstreren hoe je constante numerieke waarden aan een variabele toekent
16. Kunnen demonstreren hoe je een uitgerekende waarde aan een variabele toekent
17. Kunnen demonstreren hoe je een variabele kunt gebruiken voor een berekening
18. Kunnen demonstreren hoe je na een berekening de uitkomst daarna weer toekent
19. Kunnen demonstreren hoe je een constante tekstuele string waarde aan een variabele toekent
20. Kunnen demonstreren hoe je een variabele kunt gebruiken voor tekstuele string manipulatie
21. Kunnen demonstreren hoe je na een string manipulatie de uitkomst daarna weer toekent
22. Kunnen demonstreren hoe je tekst naar het scherm kan schrijven met de method Write
23. Kunnen demonstreren hoe je tekst naar het scherm kan schrijven met de method WriteLine
24. Kunnen uitleggen waarom je als eerste afdrukt wat een programma doet
25. Kunnen demonstreren hoe je tekstuele strings kan combineren met getal uitkomsten
26. Kunnen demonstreren hoe je ingevoerde data van het scherm kan lezen
27. Kunnen uitleggen wat het verschil is tussen de begippen abstract en concreet
28. Kunnen uitleggen waar een variabele geldig gebruikt mag worden
29. Kunnen uitleggen wat het verschil is tussen design-time en run-time
ICT H3 en V3 Colegio Arubano Page 3 of 23
Small Basic Programmeren – Text Console
30. Kunnen uitleggen waarvoor commentaar tussen de broncode dient
31. Kunnen demonstreren hoe je simpele statements kunt toevoegen om stukken broncode te
debuggen
32. Kunnen uitleggen wat een sequentie is
33. Kunnen laten zie hoe je een sequentie aanbrengt in Small Basic
34. Kunnen aangeven wanneer de volgorde van een serie sequenties belangrijk is
35. Kunnen demonstreren hoe je Small Basic Broncode kan opslaan en inleveren
36. Weten wat de afkorting PSD betekent
37. Weten wat het doel is van het maken van een PSD
38. Kunnen laten zien hoe je structorizer moet starten
39. Kunnen laten zien hoe je de juiste default Structorizor waarden moet instellen
40. Kunnen laten zie hoe je een sequentie aanbrengt in een PSD
41. Kunnen demonstreren hoe je een PSD met sequenties omzet naar een werkend Small Basic
programma
42. Aan de hand van een PSD diagram kunnen vertellen wat het programma doet
43. Aan de hand van broncode kunnen vertellen wat het programma doet (ooggetuigen verslag)
44. Kunnen uitlegen wat een selectie is
45. Kunnen demonstreren hoe je een selectie toepast in Small Basic
46. Kunnen bepalen wat de uitkomst van een conditie is aan de hand van broncode
47. Kunnen laten zie hoe je een selectie aanbrengt in een PSD
48. Kunnen demonstreren hoe je een PSD met selecties omzet naar een werkend Small Basic
programma
ICT H3 en V3 Colegio Arubano Page 4 of 23
Small Basic Programmeren – Text Console
Introductie:
Aan de slag met deze module en wat er van je verwacht wordt.
Je zult al wel eens vaker de figuur uit afbeelding 1 hebben gezien:
Afbeelding 1
Het is een diagram van een functioneel blok dat ook wel eens black box wordt genoemd. Je weet niet wat
daarbinnen allemaal gebeurd maar als je er iets instopt dan komt er een resultaat uit. Zo kun je bijv. een
programma dat je niet zelf hebt gemaakt starten en resultaten zien op je scherm. Een voorbeeld is als
iemand het eindresultaat zou nemen van één van je turtle programma’s uit CB2. Die programma’s waren
wat bediening betreft simpel. Je hoeft het alleen te starten (IN) en het resultaat komt meteen (UIT).
Maar de meeste programma’s zijn wel iets ingewikkelder dan dat. Neem bijv. Photoshop, je start het en er
worden een heleboel aanvullende handelingen van je verwacht.
Afbeelding 2
In afbeelding 2 zie je dat er een koppeling kan bestaan tussen uitvoer en invoer. Dit is zelfs meestal het
geval. Neem bijv. het openen van een file. Eerst zal er een browse schermpje als uitvoer op het scherm
gezet moeten worden voordat je er met een muis of met je toetsenbord naartoe kan navigeren.
In deze module ga je leren wat er allemaal in de black box kan komen om van specifieke invoer gewenste
uitvoer te maken. Programmeren is een belangrijke algemene vaardigheid. Sommige leerlingen zeggen dat
ze toch geen informatica gaan kiezen of dat ze niets met computers te maken hebben. Het heeft echter
meer raakvlakken met je toekomstige taken dan je denkt.
ICT H3 en V3 Colegio Arubano Page 5 of 23
Small Basic Programmeren – Text Console
Afbeelding 3
Bekijk afbeelding 3. Je ziet dat er een aantal dingen worden genoemd die je misschien herkent als
bedrijfsafdelingen. En dat klopt ook precies. Je komt het woord programma ook in andere situaties tegen,
bijv. televisie-programma of programma van een muziek uitvoering. Een programma heeft dus kennelijk
iets te maken met het organiseren en coördineren van activiteiten. Deze vaardigheid geeft je dus inzicht
in het structureren en beheersen van taken die uitgevoerd moeten worden. Taken die niet alleen door
computers kunnen worden uitgevoerd maar ook door mensen zoals bijv. een afdeling in een bedrijf.
Duidelijke instructies over wat men dan moet doen, hoe en wanneer zijn vooral van groot belang. Hoe de
dingen uit Afbeelding 3 terugkomen in een programmeer taal zal later behandeld worden.
Vorig jaar heb je kennis kunnen maken met het programmeren in Small Basic. Het programmeren bestond
uit het maken van figuren door middel van het besturen van een virtueel schildpadje. Door het al
bewegend een lijn te laten tekenen ontstond er, zogenaamd, uitvoer op je scherm.
In deze module gaan we verder. De tekeningetjes zijn leuk om te maken en sporen op gemakkelijke wijze
je creativiteit aan maar zijn nog niet erg functioneel. Door uitvoer in tekstvorm op je scherm te zetten en er
ook invoer aan toe te voegen kunnen we programma’s een stuk functioneler en praktischer maken. Je zult
gaan ervaren hoe handig het is om zelf op eenvoudige wijze programma’s te ontwerpen en maken die je
vervelend werk uit handen kunnen nemen.
De lesstof is zodanig ingedeeld dat je in kleine stapjes je kennis opbouwt en uitbreidt. Eerst is er een stukje
lezen of een praktische opdracht waarna je vragen moet beantwoorden. Termen die belangrijk zijn om te
onthouden worden in bold weergegeven. Het is belangrijk om met een zekere continuïteit door de lesstof
heen te gaan omdat elk volgend hoofdstuk veronderstelt dat het vorige met succes is afgesloten. Je zult
veel zelfstandig moeten werken en in eigen tempo door de stof heen kunnen gaan. Let daarbij wel op dat
je tempo niet te laag is zodat je tegen het einde van een blok in de problemen komt.
Aan het einde van deze module zal je in staat zijn om kritisch een opdracht te analyseren en uit te voeren
of bijv. zelfstandig een eenvoudig programma te kunnen bedenken, ontwerpen en implementeren
(maken). Een vaardigheid die heel handig kan zijn bij het besparen van tijd en het voorkomen van fouten
in vervelend werk met veel herhaling. Met de basis kennis van Small Basic zul je ook snel in staat zijn om
met een andere IDE (zie hoofdstuk 1) en programmeertaal aan de slag te gaan.
Veel succes met deze module !
ICT H3 en V3 Colegio Arubano Page 6 of 23
Small Basic Programmeren – Text Console
Hoofdstuk 1:
Aansluiting bij kennis van vorig jaar. Verkennen van de lesomgeving.
Vorig jaar heb je kennis kunnen maken met de Small Basic ontwikkelomgeving, ook wel IDE genaamd. Dat
is een Engelse afkorting voor Integrated Development Environment. Het woord Integrated geeft aan dat
het een speciale ontwikkel omgeving is waarin alles is opgenomen om in die specifieke taal of methode
alles te kunnen maken. Dus bijv. een editor die afgestemd is op de gebruikte programmeer taal maar ook
tools om te kunnen testen, fouten op te sporen en een mogelijkheid om een eindproduct (bijv. een .exe
file) aan te maken.
Hoewel het je vorig jaar misschien niet eens meteen is opgevallen maakt de Small Basic IDE ook een .exe
file van je project aan. Je kunt je programma laten werken en verspreiden zonder Small Basic te hoeven
installeren op die PC’s. Dus je kunt met Small Basic meer dan alleen ‘spelen’ en ‘experimenteren’. Later zal
duidelijker worden hoe je het optimaal gebruikt.
Nadat je Small Basic hebt opgestart verschijnt er een editor die door middel van gekleurde tekst duidelijk
aangeeft hoe de syntax van je programma is opgebouwd. Als een kleur niet wordt weergegeven zoals je die
verwacht weet je meteen dat er nog ergens een fout moet zijn. Ook helpt de editor je zodra je gaat typen
door suggesties te tonen hoe de regel verder afgetypt kan worden.
Small Basic is een Object Oriented (object georienteerde) programmeer taal. Dit betekent, kort gezegd,
dat programma’s worden gebaseerd op een model van objecten zoals die in de werkelijke wereld te vinden
zijn. Objecten hebben Properties (eigenschappen) en kunnen middels Methods (operaties) handelingen
verrichten. Het schildpadje dat we gebruikt hebben vorig jaar is zo’n object. Een voorbeeld van een
eigenschap is Speed (snelheid) en een operatie of method is bijv. Move (beweeg). We komen er later nog
uitgebreider op terug.
Er zijn verschillende programmeer talen. Ze zijn meestal bedoeld voor een specifiek toepassingsgebied. Zo
heb je voor het toepassen van software in computer gestuurde hardware talen die technische
toepassingen ondersteunen terwijl er ook specifieke talen bestaan om bijv. verkeerslichten te besturen. In
ons geval gebruiken we Small Basic vanwege de eenvoud terwijl het ook Object georienteerd is.
ICT H3 en V3 Colegio Arubano Page 7 of 23
Small Basic Programmeren – Text Console
Paragraaf 1.1:
Simpele variabelen.
In Afbeelding 3 van de Introductie is de term Administratie opgenomen die de status moet bijhouden. Dat
is het onderdeel dat aangeeft waarom we variabelen nodig hebben. Het is vergelijkbaar met een ladenkast.
Voor gebruik is de kast leeg en kun je nog beslissen in welke lade je salaris gegevens van werknemers en ik
welke andere lade je bijv. gegevens over vakantie dagen zal opbergen. Als je een keuze hebt gemaakt plak
je er een label op welke aangeeft wat er in die lade behoort te zitten. De term variabele wordt gebruikt
omdat de waarden van moment tot moment kunnen veranderen. Zo heeft een werknemer minder
vakantie dagen over NA zijn vakantie.
Ook een computer kan niet functioneren zonder tijdelijk diverse waarden op te kunnen slaan in een
geheugen. In een programma noemen we die gereserveerde opslagruimte de variabelen. Gereserveerde
plaatsen geven we een naam en in deze gereserveerde plaatsen zijn waarden opgeborgen die steeds weer
veranderd kunnen worden.
Het zetten van een vaste constante waarde:
Bijv. een numerieke waarde:
dollarkoers = 1.78
Bijv. een tekstuele string:
voornaam = “Pietje”
Het werkt net als in leestaal van links naar rechts als je het werkwoord krijgt of wordt zou gebruiken. De
variabele dollarkoers wordt 1.78, de variabele voornaam krijgt de tekststring waarde “Pietje”. Je mag voor
de variabelen zelf een naam kiezen. Let er meteen vanaf het begin aan op dat je een zinvolle naam kiest
die goed beschrijft wat er in zit en die je makkelijk kan onthouden voor als je hem later verderop in je
broncode weer nodig hebt. Het voor het eerst zetten van een variabele met een gedefinieerde waarde
noemen we ook wel initialiseren van een variable.
Je kunt in een variabele ook de uitkomst van een berekening stoppen:
dollarkoers = 1 + 0.78
overhoring1 = 7.3
proefwerk1 = 5.4
rapportcijfer = (overhoring1 + proefwerk1) / 2
De syntax (verplichte manier van opschrijven) van variabelen kan verwarrend zijn met je kennis over
wiskundige vergelijkingen bijv.:
teller = teller + 1
Hier staat niets anders dan dat de waarde in teller met 1 wordt opgehoogd. Als teller bijv. de waarde 12
heeft VOOR het uitvoeren van deze regel dan heeft teller de waarde 13 NA het uitvoeren van de regel.
ICT H3 en V3 Colegio Arubano Page 8 of 23
Small Basic Programmeren – Text Console
LET OP !! In dit voorbeeld heeft teller al een waarde 12 maar aan het begin van het programma nog niet !
Dit is een typisch voorbeeld waarbij de variabele teller hoogst waarschijnlijk op 0 (nul) moet beginnen. Het
op nul zetten kun je het best aan het begin van een programma doen en is een voorbeeld van initialiseren.
Als we werken met variabelen dan doen we meestal berekeningen met getallen of anders bewerkingen op
een tekststring.
status = “Jarig”
vandaag = “Pietje is ” + status
In het laatste voorbeeld wordt de tekst “Pietje is “ gekoppeld met de waarde van status. Na het uitvoeren
van deze 2 regels zal dus de waarde in variabele vandaag zijn “Pietje is Jarig”
Paragraaf 1.2:
Invoer en uitvoer van en naar het scherm.
Het object dat we dit jaar veelvuldig zullen gaan gebruikten is TextWindow. Je kunt met dit object zowel
tekst op het scherm schrijven alsmede tekst, welke door een gebruiker is ingevoerd, van het scherm lezen.
Opdracht 1: download en start het programma Opdracht1.exe
Deze tekst is op het scherm gekomen door de simpele Small Basic regel:
TextWindow.WriteLine("Hallo wereld!")
WriteLine is een method (operatie) die het object TextWindow kan uitvoeren. Wat tussen haakjes
staat heet een argument of parameter. In dit geval een vaste tekststring die tussen dubbele quotes staat.
Een tekststring begint met een dubbele quote en eindigt met een dubbele quote. Het is, zoals
weergegeven in oranje, 1 geheel. De method WriteLine heeft dus slechts 1 parameter. Maar hierop
zullen we later uitgebreider terugkomen.
Opdracht 2: download en open de file Opdracht1.sb
Verander de oranje tekststring zodanig dat op het scherm geschreven wordt: Hallo naam. Hierbij mag je bij
‘naam’ je eigen naam invullen. Klik op Run om je programma opnieuw uit te voeren. Gefeliciteerd, je hebt
je eerste simpele Small Basic programma gemaakt !
Opdracht 3: verander de tekst in je programma naar:
TextWindow.Write("Hallo")
TextWindow.Write("Wereld")
1a: Welke tekst is er verschenen op het zwarte tekst scherm?
ICT H3 en V3 Colegio Arubano Page 9 of 23
Small Basic Programmeren – Text Console
Klik op Run.
Opdracht 4: verander de tekst in je programma naar:
TextWindow.Write("Wat is je naam: ")
jouwnaam = TextWindow.Read()
TextWindow.WriteLine("Hallo "+jouwnaam)
En klik op Run ...
In het bovenstaande voorbeeld zien we een aantal nieuwe dingen:
1. Write is handig gebruikt om de cursor achter de dubbele punt te laten wachten.
Zo’n tekst die je opdracht geeft iets te doen heet een prompt.
2. Read is een method die gebruikt wordt om van het scherm een waarde in te lezen of ook wel
invoeren genoemd. Merk op dat er geen parameters tussen de haakjes staan. De waarde die de
gebruiker invoert wordt in een variabele ‘jouwnaam’ gestopt (hierover later meer).
3. Met het koppelteken + plakken we de opgeslagen waarde uit de variabele ‘jouwnaam’ achter de
vaste tekststring "Hallo ". Deze tekst wordt nu als geheel op het scherm geschreven.
Naast de method Read() bestaat er ook een method ReadNumber() speciaal bedoeld om een getal in
te voeren. En daarmee zijn in principe alle simpele manieren van naar het scherm schrijven en van het
scherm lezen aan de orde gekomen. De moeilijkheid zit ‘m vooral in het ‘koppelen’ van tekststrings en het
begrijpen van de timing tijdens invoer. Hierover later meer.
Paragraaf 1.3:
Tips en achtergrond informatie bij het gebruik van in- en uitvoer.
Het is een goed gebruik om een programma direct te beginnen met 1 of 2 regels uitvoer waarmee
uitgelegd wordt wat het programma doet en wat er van de gebruiker verwacht wordt. Zorg er voor dat de
instructies om gegevens in te voeren (prompt tekst) duidelijk zijn en niet op meerdere manieren begrepen
kunnen worden.
3a: Welke tekst verschijnt er nu op het scherm ?
3b: Wat is het verschil tussen Write en WriteLine ?
ICT H3 en V3 Colegio Arubano Page 10 of 23
Small Basic Programmeren – Text Console
Paragraaf 1.4:
Toepassen van commentaar in je broncode.
Er is ook tekst die niets met de uitvoer van je programma te maken heeft maar juist heel handig kan zijn
tijdens het programmeren: commentaar tekst. De rest van een regel na een enkele quote zal groen
worden weergegeven en niet als broncode worden gezien. Als een enkele quote aan het begin van de
regel staat is de hele regel commentaar tekst:
' Deze broncode is geschreven door Pietje Puk
' op 12 januari 2011. De laatste versie is 3.1.4
' De belangrijkste wijzigingen zijn .... enz.
Een enkele quote kan ook na geldige broncode worden gezet voor korte uitleg:
dollarkoers = 1.78 ' Dit nemen we als vaste waarde
Paragraaf 1.5:
Toepassen van debug statements in je broncode.
Soms is het erg lastig, vooral bij grotere ingewikkelde programma’s, om te volgen wat er nu precies
gebeurd tijdens het uitvoeren of testen van je programma. Het kan om die reden handig zijn om zgn.
debug statements aan je broncode toe te voegen. Dat zijn eigenlijk alleen maar eenvoudige regels die bijv.
met WriteLine iets afdrukken.
Soms is het voldoende om alleen maar te laten weten dat een bepaald punt in je code wordt uitgevoerd
maar vaker is het ook nodig om bijv. bepaalde waarden van variabelen af te drukken. In dat soort gevallen
kun je meestal het beste vermelden wat je afdrukt bijv.:
De waarden op dit punt zijn A: 6 , B: 9 en C: 12
De getallen zijn dus de variabele waarden die op dat moment in A, B en C zitten. Tevens is het handig om
niet te proberen grotere en ingewikkelde programma’s in één keer te maken. Vaak is het handig om
stukjes te maken en dan te testen met debug statements. In paragraaf 1.4 heb je geleerd wat commentaar
tekst is. Tip: Als je nu een enkele quote aan het begin van je debug regel zet is die regel geen actieve
broncode meer en kan je het dus bewaren voor eventueel later gebruik als je het weer nodig hebt.
Paragraaf 1.6:
Bijzondere eigenschap van invoer: timing !
Er is een bijzondere eigenschap van invoer waarover nogal eens verwarring ontstaat nl. timing. Het is
inmiddels wel duidelijk hoe en wanneer er iets op het scherm verschijnt, we hebben immers zelf in de
broncode aangegeven hoe en wanneer dat gebeurt. Iets lastiger wordt het met invoer. De gebruiker
bepaalt, pas op een later tijdstip, NA het schrijven van de broncode, welke waarde hij gaat invoeren. Je
moet dus als programma ontwerper abstract kunnen denken tijdens het maken van de broncode.
ICT H3 en V3 Colegio Arubano Page 11 of 23
Small Basic Programmeren – Text Console
Neem als voorbeeld een rekenmachine. De fabrikant moet er vooraf alle mogelijke berekeningen in
stoppen terwijl nog niet bekend is welke berekeningen de gebruiker uiteindelijk allemaal gaat uitvoeren en
in welke volgorde. Stel we maken een programma dat kwadraten uit kan rekenen dat kan dan bijv. als
volgt:
kwadraat = 3 * 3
Ok, dat is nog makkelijk, daar komt natuurlijk de waarde 9 uit en wordt in de variabele kwadraat gestopt.
Dit noemen we concreet. Er is tijdens het ontwerpen en programmeren al bekend welke concrete
waarde(n) worden gebruikt. Dit tijdstip ook wel design-time genoemd.
Maar nu de volgende broncode:
getal = TextWindow.ReadNumber()
kwadraat = getal * getal
In dit geval wordt pas later door de gebruiker bepaald welk getal daadwerkelijk wordt gebruikt. Tot die tijd
kunnen we tijdens ontwerp en programmeren alleen in gedachten (abstract) voorstellen wat er tijdens het
uitvoeren van de broncode gebeurt. Het tijdstip waarop getal pas concreet een waarde krijgt wordt ook
wel run-time genoemd.
Nog weer een stapje lastiger wordt het wanneer we niet een kwadraat willen uitrekenen maar bijv. een
wortel uit een ingevoerd getal.
Oefeningen:
Open het programma Opdracht4.sb en voer het uit.
4b: Welke oplossing kun je bedenken om de fout op te lossen ?
leeftijd = 15
TextWindow.WriteLine("Jantje is " + leeftijd)
4a: Welke foutmelding krijg je en wat veroorzaakt het ?
5a: Welke tekst zal er op het scherm komen na het uitvoeren van de bovenste 2 regels:
Wat zou daar het probleem kunnen zijn?
ICT H3 en V3 Colegio Arubano Page 12 of 23
Small Basic Programmeren – Text Console
getal1 = 12
getal2 = 34
getal3 = 56
TextWindow. WriteLine (getal1 + getal2 + getal3)
Je hebt bovenstaande broncode en je wil de getallen 123456 naast elkaar afdrukken door de variabelen
met een + aan elkaar te koppelen.
5b: Welke uitbreiding is er nodig om “ jaar oud” toe te voegen aan de uitvoer ?
6a: Probeer bovenstaande code uit. Wat komt er op het scherm ?
6b: Hoe kun je dat verbeteren ? Probeer het uit ...
ICT H3 en V3 Colegio Arubano Page 13 of 23
Small Basic Programmeren – Text Console
Hoofdstuk 2:
Programmeren, de eerste stappen: sequentie.
Het woord sequentie betekent volgens enkele van de definities opeenvolging of volgorde. Dat is op zich
best een accurate beschrijving. Een CPU (Central Processing Unit) in een computer kan eigenlijk maar 1
ding tegelijk en het is dus belangrijk om de instructies in een opeenvolgende volgorde te verwerken en uit
te voeren. Programmeren is voor een belangrijk deel het organiseren en in volgorde zetten van instructies
zodat het uitvoeren ervan tot een gewenst resultaat leidt.
Opdracht 2.1: koffie zetten
Als je koffie gaat zetten heb je een aantal handelingen nodig om tot het gewenste resultaat te komen.
Hieronder hebben we de handelingen opgesomd.
1. Water in de koffie machine gieten
2. Koffie filter plaatsen
3. Koffie poeder inscheppen
4. Koffie machine aan zetten
5. Koffiepot vullen met water
6. Koffie poeder uit de kast pakken
7. Koffie filter uit de kast pakken
Vergelijk je antwoord met die van iemand anders. Heb je exact hetzelfde?
Nee, waarschijnlijk niet. Hoewel veel van de handelingen of instructies in een sequentie vereisen dat ze in
een bepaalde volgorde gebeuren kun je een aantal ervan in een willekeurige of minder belangrijke
volgorde doen. Zo moet je wel eerst een koffie filter pakken en plaatsen voordat je er koffie poeder in kan
doen. Maar of je deze 3 handelingen voor- of na het vullen van water doet is niet van invloed op het
eindresultaat.
Opdracht 2.2: bedenk zelf een voorbeeld van een reeks handelingen en de juiste volgorde
Een paar sequentie zaken zijn wel handig om te onthouden als je een programma ontwerpt:
1. Het is een goed gebruik om als eerste waneer een programma start met een korte tekst op het
scherm mede te delen wat het programma doet en wat er van de gebruiker verwacht wordt.
2. Als er van een gebruiker verwacht wordt dat hij iets moet invoeren zet dan eerst een duidelijke
prompt tekst op het scherm
3. Als je variabelen in een programma gebruikt vraag je dan op elk moment af welke waarde ze
hebben. Het komt vaak voor dat variabelen nog ongedefinieerd zijn. Het geven van een
gedefinieerde eerste geldige waarde noemen we initialiseren en doe je meestal aan het begin van
je programma.
Zet de handelingen nu in de juiste volgorde:
ICT H3 en V3 Colegio Arubano Page 14 of 23
Small Basic Programmeren – Text Console
Typische voorbeelden van sequentie ...
1. Uitvoer, het schrijven van een tekst op het scherm
2. Invoer, het inlezen van een door de gebruiker ingetypte waarde
3. Het toekennen van een waarde aan een variabele
4. Het uitvoeren van een berekening
5. Manipulatie of bewerking van een tekststring
6. Open/sluiten van een file of database
Paragraaf 2.1:
Oefeningen met sequenties
Schrijf alle broncode zo efficiënt mogelijk. Vergeet niet steeds als eerste af te drukken en uit te leggen wat
je programma doet. Denk ook aan de juiste prompt teksten. Naarmate een programma complexer of
uitgebreider wordt kun je het beste het proberen op te splitsen in kleinere sub-delen.
Opdracht 2.1: invoer / uitvoer met getallen oefenen
Schrijf een programma dat 2 getallen inleest en de som van die 2 getallen toont.
Opdracht 2.2: invoer / uitvoer met getallen oefenen 2
Schrijf een kort programma dat 2 getallen inleest (a en b) en via de stelling van Pythagoras (a2 + b
2 = c
2) het 3
e getal c
bepaalt. Je kunt Math.SquareRoot() gebruiken om een wortel uit te rekenen.
Opdracht 2.3: invoer / uitvoer met tekst oefenen
Schrijf een programma dat jouw naam en die van je duo partner inleest. Druk daarna beide namen af in 1 regel:
Hallo <naam1> en <naam2> hoe gaat het? Je moet dus vaste tekst en variabelen gaan koppelen. De namen tussen
de <> haakjes zijn de variabele waarden die zijn ingelezen.
Opdracht 2.4: invoer / uitvoer met tekst en getallen gecombineerd oefenen
Schrijf een programma dat jouw naam en en je geboortejaar inleest. Druk daarna je naam en je leeftijd af in 1 regel:
Hallo <naam1> je bent <leeftijd> jaar oud. Je moet eerst je leeftijd uitrekenen. Gebruik Clock.Year ( is een
property geen method) als huidig jaar van de systeem datum/tijd.
Hoe kun je in de Small Basic IDE zien dat Clock.Year geen method is?
ICT H3 en V3 Colegio Arubano Page 15 of 23
Small Basic Programmeren – Text Console
Hoofdstuk 3:
Programmeren, de volgende stap: selectie.
Als je in je programma geen beslissingen zou kunnen nemen dan zou het alleen maar voortdurend dezelfde
concrete handelingen verrichten. Om het interessanter en veelzijdiger te maken zijn er in de meeste
programmeer-talen mogelijkheden om beslissingen te nemen ingebouwd. De beslissing wordt genomen op
grond van een conditie. De simpelste conclusie die volgt uit een conditie heeft 2 mogelijke uitkomsten:
waar of niet waar. Er zijn verschillende structuren die met condities kunnen omgaan in paragraaf 3.1
behandelen we de simpelste structuur If ... Then ... Else ...
Paragraaf 3.1:
If ... Then ... Else ...
Deze selectie constructie wordt in het kort ook wel If-statement genoemd. Het is een simpele bepaling of
een conditie waar of niet waar is. Merk overigens op dat er slechts 2 uitkomsten mogelijk zijn en dat deze
dus altijd complementair zijn. Wat wil dat zeggen? Als je bijvoorbeeld een rode en een blauwe bal in een
doos hebt en je pakt er 1 uit dan betekent “niet rood” automatisch dat het de blauwe bal is enz.
De structuur ziet er volledig als volgt uit
If <conditie> Then
' Regels met code als de conditie waar is
‘ ...
Else
' Regels met code als de conditie niet waar is
‘ ...
EndIf
Het komt ook voor dat er geen broncode nodig is in geval de conditie niet waar is, dan ziet het er zo uit:
If <conditie> Then
' Regels met code als de conditie waar is
‘ ...
EndIf
ICT H3 en V3 Colegio Arubano Page 16 of 23
Small Basic Programmeren – Text Console
Paragraaf 3.2:
Condities
Waarden vergelijken:
A = B ' Waar als A gelijk is aan B
A <> B ' Waar als A ongelijk is aan B
A < B ' Waar als A kleiner is dan B
A > B ' Waar als A groter is dan B
A <= B ' Waar als A kleiner of gelijk is dan B
A >= B ' Waar als A groter of gelijk is dan B
Je kunt de lijst met vergelijkingen ook combineren met zgn logische operaties:
A > B And A < C ' Waar als A groter is dan B EN A kleiner is dan C
A > B Or A < C ' Waar als A groter is dan B OF A kleiner is dan C
Je mag haakjes gebruiken, aan te bevelen als de combinatie onduidelijk wordt:
(A > B) And (A < C) ' Waar als A groter is dan B EN A kleiner is dan C
(A > B) Or (A < C) ' Waar als A groter is dan B OF A kleiner is dan C
Praktisch voorbeeld:
If Clock.Day = 1 And Clock.Month = 1 Then
TextWindow.WriteLine(“Happy New Year”)
EndIf
Paragraaf 3.3:
Oefeningen met selecties
Opdracht 3.1: invoer / uitvoer met getallen oefenen
Schrijf een programma dat 2 getallen inleest en de grootste van die 2 getallen toont.
Opdracht 3.2: invoer / uitvoer met getallen oefenen
Schrijf een programma dat de wortel van een ingelezen getal weergeeft. Waarvoor heb je hier een selectie nodig?
Opdracht 3.3: invoer / uitvoer met tekst en getallen gecombineerd oefenen
Dit programma is een voortzetting van Opdracht 2.4 . Lees nu niet 1 naam in maar 2 en 2 geboortejaren.
Bepaal wie de oudste is en druk die naam af.
ICT H3 en V3 Colegio Arubano Page 17 of 23
Small Basic Programmeren – Text Console
Hoofdstuk 4:
Het ontwerpen van programma’s, Structorizer.
Je hebt al gemerkt dat de principe’s die aan de orde komen vaak algemeen van karakter zijn. Zo is er bijv.
een strategie om namen te sorteren, het maakt niet uit of het namen van leerlingen zijn of straatnamen.
De strategie is onafhankelijk van de computer taal waarin het gemaakt wordt. Een ontwerper die een auto
ontwerpt gebruikt een tekening om zijn ideeën vast te leggen. De tekening geeft echter nog niet aan hoe
de auto gebouwd gaat worden. Het kan zijn dat er een programma geschreven gaat worden voor robot
armen die de auto gaan maken of een papieren manual voor werknemers die de auto met de hand gaan
maken. Een programma ontwerpen doen we met Structorizer. Het maakt taal-onafhankelijke diagrammen
en geeft een ontwerper een betere mogelijkheid om abstract te kunnen denken en werken. Een
programmeur kan de broncode aanmaken in de specifieke taal waarin hij gespecialiseerd is. Zo blijven de
verschillende taken beter gescheiden.
Tijdens de lessen van Small Basic wordt er gebruik gemaakt van de schematechniek Programma Structuur
Diagram (PSD). Structorizer is een gratis verkrijgbaar programma waarmee deze schema’s eenvoudig op de
computer gemaakt kunnen worden.
Het programma is te verkrijgen op de volgende websites:
• http://structorizer.fisch.lu/
• http://sourceforge.net/projects/structorizer/
Het is een opensource programma en werkt onder Windows, MacOS en Linux. Wel is het noodzakelijk dat
de Java Environment aanwezig is op de computer. Deze is ook gratis te verkrijgen op de volgende website:
• https://java.com/en/download/index.jsp
ICT H3 en V3 Colegio Arubano Page 18 of 23
Small Basic Programmeren – Text Console
Paragraaf 4.1:
Het opstarten van Structorizer.
Na het starten van Structorizer krijg je het volgende scherm:
Als je Structorizer goed hebt geïnstalleerd en het programma voor de eerste keer opstart, is het
taalgebruik van het programma waarschijnlijk in het Frans. Dit is eenvoudig te wijzigen door naar de
menukeuzen Instellingen – Talen (Préférences - Langue) te gaan en de juiste taal te kiezen, bijvoorbeeld
Nederlands.
ICT H3 en V3 Colegio Arubano Page 19 of 23
Small Basic Programmeren – Text Console
Na de taal te hebben gekozen, ga naar de menukeuzes Instellingen – Structuren. Je krijgt dan het
onderstaande dialoogvenster te zien:
Maak de aanpassingen zodat ze overeen komen met het de afbeelding hierboven. Op je computer thuis
zullen deze instellingen bewaard blijven maar op de school laptops worden de instellingen na elke restart
verwijderd en teruggezet op de standaard waarden.
Paragraaf 4.2:
Een PSD maken.
Wanneer je het programma opstart of wanneer je een nieuw PSD schema wilt maken toont Structorizer
het schema hierna. Door te dubbel klikken op de ??? krijg je een dialoogvenster waar je de naam van het
programma/PSD kunt invullen.
ICT H3 en V3 Colegio Arubano Page 20 of 23
Small Basic Programmeren – Text Console
Structorizer wil eigenlijk dat programma namen met hoofdletters geschreven worden. Dit zie je onderaan
in de status balk van het programma. Voor de lessen van Small Basic is deze foutmelding niet zo belangrijk.
Na de ??? te verwijderen tik je in het venster de naam van de PSD die gemaakt gaat worden en druk dan
op de knop OK.
Paragraaf 4.3:
Structuren en opdrachten invoeren: sequentie.
Het programma laat automatisch altijd een lege sequentie structuur als eerste zien. Heb je deze nodig dan
kun je door te dubbel klikken op de structuur een dialoogvenster krijgen om de instructie die je wilt
hebben in te voeren:
ICT H3 en V3 Colegio Arubano Page 21 of 23
Small Basic Programmeren – Text Console
Wil je echter een andere structuur toevoegen dan moet je rechts klikken en kun je kiezen welke structuur
je wilt gebruiken en of deze voor of na de huidige structuur moet komen:
In de bovenstaande afbeelding is er rechts geklikt op de sequentie structuur (het gele vakje) om te laten
zien hoe je een andere structuur kunt toevoegen.
In de knoppenbalk boven kun je ook een structuur kiezen om toe te voegen voor of na de huidig
geselecteerde structuur. Voorlopig beperken we ons tot de sequentie. In de lijst vind je die terug onder de
Engelse naam Instruction.
Hoewel de toegepaste taal in een PSD abstract en schematisch behoort te blijven is het toch wel handig
om een paar regels aan te houden.
We gebruiken het keywoord SCHRIJF in hoofletters om uitvoer aan te geven. Vaste tekst strings zetten we
tussen dubbele quotes (“). Om in een PSD het koppelen van tekst en variabelen aan te geven wordt het ;
teken gebruikt. Het keywoord LEES gebruiken we voor invoer. Omdat het in de meeste gevallen nodig is
dat er een prompt tekst aan vooraf gaat integreren we dat in 1 regel. Voorbeeld:
LEES “Voer een getal in: “; AANTAL
In het bovenstaande voorbeeld zullen we met TextWindow.Write(“Voer een getal in: ”) de
prompt tekst op het scherm zetten en met AANTAL = TextWindow.ReadNumber() het getal inlezen. Een
LEES regel in PSD worden dus vaak 2 broncode regels in Small Basic.
ICT H3 en V3 Colegio Arubano Page 22 of 23
Small Basic Programmeren – Text Console
Het toekennen van een waarde aan een variabele lijkt op Small Basic maar om aan te geven dat het om een
abstracte handeling gaat is de notatie toch een beetje anders, we voegen een : toe voor het = teken. Voorbeeld:
TELLER := TELLER + 1
Deze sequentie zal de variabele TELLER met 1 verhogen.
Paragraaf 4.4:
Structuren en opdrachten invoeren: selectie.
ICT H3 en V3 Colegio Arubano Page 23 of 23
Small Basic Programmeren – Text Console
Paragraaf 4.5:
Oefeningen met sequenties en selecties in een PSD
Maak van de opdrachten 2.1 tot en met 2.4 uit hoofdstuk 2 en opdrachten 3.1 tot en met 3.3 uit hoofdstuk 3 een
PSD.