Small Basic Programmeren – Text Console - ca-ict.netca-ict.net/media/pdf/Programmeren H3V3.pdfICT...

23
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

Transcript of Small Basic Programmeren – Text Console - ca-ict.netca-ict.net/media/pdf/Programmeren H3V3.pdfICT...

Page 1: Small Basic Programmeren – Text Console - ca-ict.netca-ict.net/media/pdf/Programmeren H3V3.pdfICT H3 en V3 Colegio Arubano Page 1 of 23 Small Basic Programmeren – Text Console

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

Page 2: Small Basic Programmeren – Text Console - ca-ict.netca-ict.net/media/pdf/Programmeren H3V3.pdfICT H3 en V3 Colegio Arubano Page 1 of 23 Small Basic Programmeren – Text Console

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

Page 3: Small Basic Programmeren – Text Console - ca-ict.netca-ict.net/media/pdf/Programmeren H3V3.pdfICT H3 en V3 Colegio Arubano Page 1 of 23 Small Basic Programmeren – Text Console

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

Page 4: Small Basic Programmeren – Text Console - ca-ict.netca-ict.net/media/pdf/Programmeren H3V3.pdfICT H3 en V3 Colegio Arubano Page 1 of 23 Small Basic Programmeren – Text Console

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.

Page 5: Small Basic Programmeren – Text Console - ca-ict.netca-ict.net/media/pdf/Programmeren H3V3.pdfICT H3 en V3 Colegio Arubano Page 1 of 23 Small Basic Programmeren – Text Console

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 !

Page 6: Small Basic Programmeren – Text Console - ca-ict.netca-ict.net/media/pdf/Programmeren H3V3.pdfICT H3 en V3 Colegio Arubano Page 1 of 23 Small Basic Programmeren – Text Console

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.

Page 7: Small Basic Programmeren – Text Console - ca-ict.netca-ict.net/media/pdf/Programmeren H3V3.pdfICT H3 en V3 Colegio Arubano Page 1 of 23 Small Basic Programmeren – Text Console

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.

Page 8: Small Basic Programmeren – Text Console - ca-ict.netca-ict.net/media/pdf/Programmeren H3V3.pdfICT H3 en V3 Colegio Arubano Page 1 of 23 Small Basic Programmeren – Text Console

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?

Page 9: Small Basic Programmeren – Text Console - ca-ict.netca-ict.net/media/pdf/Programmeren H3V3.pdfICT H3 en V3 Colegio Arubano Page 1 of 23 Small Basic Programmeren – Text Console

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 ?

Page 10: Small Basic Programmeren – Text Console - ca-ict.netca-ict.net/media/pdf/Programmeren H3V3.pdfICT H3 en V3 Colegio Arubano Page 1 of 23 Small Basic Programmeren – Text Console

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.

Page 11: Small Basic Programmeren – Text Console - ca-ict.netca-ict.net/media/pdf/Programmeren H3V3.pdfICT H3 en V3 Colegio Arubano Page 1 of 23 Small Basic Programmeren – Text Console

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?

Page 12: Small Basic Programmeren – Text Console - ca-ict.netca-ict.net/media/pdf/Programmeren H3V3.pdfICT H3 en V3 Colegio Arubano Page 1 of 23 Small Basic Programmeren – Text Console

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 ...

Page 13: Small Basic Programmeren – Text Console - ca-ict.netca-ict.net/media/pdf/Programmeren H3V3.pdfICT H3 en V3 Colegio Arubano Page 1 of 23 Small Basic Programmeren – Text Console

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:

Page 14: Small Basic Programmeren – Text Console - ca-ict.netca-ict.net/media/pdf/Programmeren H3V3.pdfICT H3 en V3 Colegio Arubano Page 1 of 23 Small Basic Programmeren – Text Console

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?

Page 15: Small Basic Programmeren – Text Console - ca-ict.netca-ict.net/media/pdf/Programmeren H3V3.pdfICT H3 en V3 Colegio Arubano Page 1 of 23 Small Basic Programmeren – Text Console

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

Page 16: Small Basic Programmeren – Text Console - ca-ict.netca-ict.net/media/pdf/Programmeren H3V3.pdfICT H3 en V3 Colegio Arubano Page 1 of 23 Small Basic Programmeren – Text Console

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.

Page 17: Small Basic Programmeren – Text Console - ca-ict.netca-ict.net/media/pdf/Programmeren H3V3.pdfICT H3 en V3 Colegio Arubano Page 1 of 23 Small Basic Programmeren – Text Console

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

Page 18: Small Basic Programmeren – Text Console - ca-ict.netca-ict.net/media/pdf/Programmeren H3V3.pdfICT H3 en V3 Colegio Arubano Page 1 of 23 Small Basic Programmeren – Text Console

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.

Page 19: Small Basic Programmeren – Text Console - ca-ict.netca-ict.net/media/pdf/Programmeren H3V3.pdfICT H3 en V3 Colegio Arubano Page 1 of 23 Small Basic Programmeren – Text Console

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.

Page 20: Small Basic Programmeren – Text Console - ca-ict.netca-ict.net/media/pdf/Programmeren H3V3.pdfICT H3 en V3 Colegio Arubano Page 1 of 23 Small Basic Programmeren – Text Console

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:

Page 21: Small Basic Programmeren – Text Console - ca-ict.netca-ict.net/media/pdf/Programmeren H3V3.pdfICT H3 en V3 Colegio Arubano Page 1 of 23 Small Basic Programmeren – Text Console

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.

Page 22: Small Basic Programmeren – Text Console - ca-ict.netca-ict.net/media/pdf/Programmeren H3V3.pdfICT H3 en V3 Colegio Arubano Page 1 of 23 Small Basic Programmeren – Text Console

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.

Page 23: Small Basic Programmeren – Text Console - ca-ict.netca-ict.net/media/pdf/Programmeren H3V3.pdfICT H3 en V3 Colegio Arubano Page 1 of 23 Small Basic Programmeren – Text Console

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.