Small Basic Programmeren Text Console



Vergelijkbare documenten
Uitleg: In de bovenstaande oefening zie je in het eerste blokje een LEES en een SCHRIJF opdracht. Dit is nog lesstof uit het tweede trimester.

Small Basic Programmeren Text Console 2

van PSD naar JavaScript

Je gaat leren programmeren in Ruby. En daarna in Ruby een spelletje maken. Websites zoals Twitch en Twitter gemaakt zijn met behulp van Ruby?

Excel reader. Beginner Gemiddeld.

Een spoedcursus python

Je gaat leren programmeren en een spel bouwen met de programmeertaal Python. Websites zoals YouTube en Instagram zijn gebouwd met Python.

Simon de schildpad J van Weert 1

BEGINNER JAVA Inhoudsopgave

Small Basic Console Uitwerking opdrachten

Simon de schildpad J van Weert 1

Stap 1. Bepalen van invoer Het makkelijkst kun je dit vinden uit de zwarte vlakken met voorbeelden:

HANDLEIDING PROGRAMMEREN IN PASCAL (LAZARUS)

Afhankelijk van wanneer je het programma uitvoert, zie je een van de volgende resultaten:

3/3/2013 By Ing. R. Ellis 1

Zo gaat jouw kunstwerk er straks uitzien. Of misschien wel heel anders.

Programmeren: Visual Basic

Informatie gebruik Digi Bord

VAN HET PROGRAMMEREN. Inleiding

Variabelen en statements in ActionScript

Programmeerstructuren met App Inventor

5. Functies. In deze module leert u:

SB Console Deel 1. In deze les module wordt gewerkt met het programma Small Basic en het programma Structorizer.

Scratch in drie uur. Hallo, mijn naam is Minti Mint! Ik ga je uitleggen hoe je je eigen computerspel kunt maken. We gaan een racespel maken!

WELKOM BIJ BOMBERBOT! LES 2: SEQUENTIES I LES 2: SEQUENTIES I WAAR GAAT DEZE LES OVER? INTRODUCTIE

Informatie voor de leerkracht Introductie nieuw concept (pagina 1) Programmeren met Bomberbot (pagina 1)

Werken op afstand via internet

Handleiding ZKM Online. Versie 2.1

Gebruiksvriendelijkheid: Gebruiksaanwijzing:

PROS1E1 Gestructureerd programmeren in C Dd/Kf/Bd

Samenvoegen met Word en Excel 2010

Beknopte handleiding Overhoor NL (Efka-soft)

Javascript oefenblad 1

Datum. Vraag het bedrag in BEF. Reken om naar EURO. Toon het bedrag in EURO. --- Vraag het bedrag in BEF Reken om naar EURO---

Numerieke benadering van vierkantwortels

Dit is een artikel uit de Peter van Olmen serie: Handleidingen Voor Iedereen AUDACITY HANDLEIDING. Voor audacity versie 1.2.6

3. Structuren in de taal

Screencast-O-Matic HANDLEIDING

Variabelen gebruiken in ons programma

Bijlage Inlezen nieuwe tarieven per verzekeraar

Landelijk Indicatie Protocol (LIP)

Module 3: Scratch programmeren: is het logisch of is het niet logisch?

Hoofdstuk 7: Werken met arrays

1. Over LEVIY 5. Openen van de activiteit 2. Algemene definities 6. Inloggen op het LEVIY dashboard 3. Inloggen 6.1 Overzichtspagina 3.

Cursus Onderwijs en ICT. Programmeren met Visual Basic

Leerpaden maken. 1. Account en wachtwoord. 2. Maak een nieuw leerpad aan. 3. Inhoud aan een leerpad toe voegen. 4. Structuur aanbrengen op een pagina.

HOOFDSTUK 3. Imperatief programmeren. 3.1 Stapsgewijs programmeren. 3.2 If Then Else. Module 4 Programmeren

Symbol for Windows Planner Versie 0.8

Handleiding bij de Booktest Generator

Handleiding Pivot docent Wendy Bruins versie 1.2 december 2008

Selenium IDE Webdriver. Introductie

Aan de slag met AdminView

Hoe arbeidsovereenkomsten online ondertekenen vanaf januari 2016?

Basistechnieken Microsoft Excel in 15 minuten

Java Les 3 Theorie Herhaal structuren

Basisvaardigheden Microsoft Excel

LESBRIEF Aan de slag met Schoolwise

1 BUSINESS INTERNET SUPPORT

HANDLEIDING DOIT BEHEER SYSTEEM

TIPS EN HINTS VOOR BEGINNERS. Klik nu in de Menu balk op het menu item ELEMENT. Onder het woord Element gaat er nu vervolgens nu een sub menu open

PROS1E1 Handleiding ( ) Kf/Dd/Bd

Aan de slag met Acadin

TI-SMARTVIEW. Installeren op Windows PC

Beginnersles 2 Computerles Windows 7

Programmeren: Visual Basic

6. Tekst verwijderen en verplaatsen

Programmeren. Inleiding

Download DIGIPRAAT in de Google playstore! Zoek naar eu.desmidt om DIGIPRAAT en DIGITAAL te vinden!

Gebruikershandleiding BosorNet

1 Besturingssysteem. 1.1 Wat is een besturingssysteem? 1.2 Verschillende besturingssystemen. 1.3 Windows, verschillende versies

ES1 Project 1: Microcontrollers

In de tweede regel plaatsen we in het gereserveerde stukje geheugen een getal.

Lab Webdesign: Javascript 3 maart 2008

Online c++ leren programmeren:

1. Achtergronden verwijderen (op basis van Photoshop CS2/CS3)

Hoofdstuk 26: Modelleren in Excel

Handleiding bij de workshop Animatie in Microsoft PowerPoint Hoe maak je een animatie in Microsoft PowerPoint 2010? Handleiding voor kinderen

Verbinden met FTP server

HANDLEIDING Q1600 Fashion

Bijlage bij Getting Started Guide International English Edition

VBA voor doe-het-zelvers

Hoe moet je een prachtige presentatie maken?

Handleiding 103: Collecte Database (CDB) voor Wijkhoofden

Handleiding Zermelo. roosterwijzigingen gaat importeren. Allereerst wordt u gevraagd of u de wijzigingen wilt importeren. U kiest hier voor Ja.

Boekje met opdrachten

Cursus RegCleaner <freeware>

Symbol for Windows BlissEditor

GO x40, GO x30, GO x20, GO x10, GO,XXL IQ Routes, XL IQ Routes, XL,ONE, ONE 2nd edition, Urban Rider, Rider Pro

HET BESTURINGSSYSTEEM

Handleiding harde schijf wissen:

Basisvaardigheden Microsoft Excel

MINDSTORM LEGO ROBOTS

Legal Eagle Agenda handleiding versie 2.8 december 2007

HANDLEIDING PROGRAMMEREN IN PASCAL (LAZARUS)

PSD Turtle. Om op een goede manier een programma te schrijven wordt er ook een algoritme gevolgd. Dit algoritme bestaat uit de volgende stappen/fasen:

Transcriptie:

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 1 of 23

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 2 of 23

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 3 of 23

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 4 of 23

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 5 of 23

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 6 of 23

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 7 of 23

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 1a: Welke tekst is er verschenen op het zwarte tekst scherm? 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") ICT H3 en V3 Colegio Arubano Page 8 of 23

Klik op Run. 3a: Welke tekst verschijnt er nu op het scherm? 3b: Wat is het verschil tussen Write en WriteLine? 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. ICT H3 en V3 Colegio Arubano Page 9 of 23

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 10 of 23

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. Wat zou daar het probleem kunnen zijn? Oefeningen: Open het programma Opdracht4.sb en voer het uit. 4a: Welke foutmelding krijg je en wat veroorzaakt het? 4b: Welke oplossing kun je bedenken om de fout op te lossen? leeftijd = 15 TextWindow.WriteLine("Jantje is " + leeftijd) 5a: Welke tekst zal er op het scherm komen na het uitvoeren van de bovenste 2 regels: ICT H3 en V3 Colegio Arubano Page 11 of 23

5b: Welke uitbreiding is er nodig om jaar oud toe te voegen aan de uitvoer? 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. 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 12 of 23

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 Zet de handelingen nu in de juiste volgorde: 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. ICT H3 en V3 Colegio Arubano Page 13 of 23

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 (a 2 + 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 14 of 23

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 15 of 23

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 16 of 23

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 17 of 23

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 18 of 23

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 19 of 23

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 20 of 23

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 21 of 23

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 22 of 23

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. ICT H3 en V3 Colegio Arubano Page 23 of 23