You are on page 1of 33

Hoofdstuk 1 Programmastructuurdiagrammen

Als je iets wilt programmeren, dan is het handig dat je eerst een programmastructuurdiagram
gaat maken. In deze lessen leer je hoe je een programmastructuurdiagram (PSD) kunt maken.

Een PSD is een schema die je helpt om een
probleem optelossen. Eigenlijk is een PSD de
presentatie van een algoritme. Een algoritme is
een voorschrift dat stap voor stap aangeeft hoe
een bepaald probleem opgelost kan worden.

Stel je wilt het gemiddelde uitrekenen van twee getallen. Het algoritme kan zijn:

• Geef twee getallen
• Tel de getallen op
• Deel door 2
• Geef de uitkomst

Een PSD kan bestaan uit de volgende figuren:

1.
handelingssymbool

2.
beslissingssymbool
ja nee

In een handelingssymbool komt een opdracht te staan en in een beslissingsymbool zet je een
vraag. Deze vraag kan je alleen met ja of met nee beantwoorden.

1

Een PSD van het bovenstaande algoritme kan zijn:

lees getal1,getal2

som := getal 1 + getal2

gemiddelde:= som/2

schrijf gemiddelde

Je ziet dat er gebruik is gemaakt van de woorden lees en schrijf. Met lees wordt er bedoeld dat
je gegevens gaat invoeren , dat kan zijn door middel van een toetsenbord. Met schrijf wil je
gegevens tonen, dat kan zijn op het scherm.

Je hebt een spelletje dat niet kan draaien op een computer waarvan de grafische kaart een
geheugen heeft van 4 mb. Als je nu wilt weten of je het spelletje kan instaleren, dan je stel de
volgende vraag: is het geheugen van de grafische kaart 4 mb?
Hier kan je een PSD van maken

grafische kaart = 4 Mb

ja nee

installeer spel

Je merkt dat er onder ja niks staat. Dat is logisch, want je hoeft niks te doen. Het spel werkt
immers niet.
Bij een beslissingsymbool moet je de vraag zorgvuldig stellen. Je kan niet vragen: Hoeveel
Mb is de grafisch kaart? Omdat je hier niet met nee of met ja kan antwoorden.

Een wat oudere man heeft een bepaalde versie van
windows. Het kan zijn 98, xp of vista.
Met behulp van een PSD kun je er achter komen welke
versie de man heeft. (*bs = besturingssysteem)

versie = 98

ja nee

*bs = 98 versie = xp
ja nee

bs = xp bs = vista

opdracht 1: Een PSD maak je met behulp van een potlood en liniaal. Over het algemeen
bezitten ICT-leerlingen niet over deze attributen. Maak een PSD dat als resultaat

2

heeft, dat je volgende les een potlood en liniaal bij je hebt.

Vul hieronder in het PSD de volgende vragen en opdrachten:

• Heb je een potlood?
• Schaf een potlood aan
• Neem de volgende les mee (4* keer gebruiken)
• Heb je een liniaal/geodriehoek?
• Schaf een liniaal/geodriehoek aan

ja nee

ja nee

opdracht 2: Maak een PSD waarin staat hoe je een auto moet starten.
Gebruik hierbij:

• start auto
• doe autodeur open
• doe sleutel in contact
• stap in auto
• doe autodeur van slot
• zit sleutel in contact?
• Is autodeur open

3

is het aantal exemplaren 6 of meer? enz. leeftijd niet jonger dan 18 jaar 2. 50 % korting op artikelen waarvan slechts 1 exemplaar in voorraad is. weet je dat de korting 50 % is. in het bezit van een ict-diploma niveau 3 + cisco certificaat 3. 4 . tenzij er een mooi programma op de televisie is. 10 % korting op artikelen waarvan 6 of meer exemplaren in voorraad zijn Je gaat hier een PSD van maken. Hoe moet je nu beginnen? Er zijn drie verschillende kortingen. 40 % korting op artikelen waarvan 2 tot en met 5 exemplaren in voorraad zijn. 3. exemplaren = 1 ja nee korting = 50 exemplaren >= 6 ja nee korting = 10 korting = 40 opmerking: = betekent gelijk aan > groter dan < kleiner dan >= groter dan of gelijk aan <= kleiner dan of gelijk aan opdracht 3: Je studeert elke avond. Schrijf een PSD uitsluitend met behulp van de volgende vragen: • Mooi tv-programma? • Vrienden verhinderd? • Zaterdagavond? Opdracht 4: Een bedrijf hanteert bij een sollicitatieprocedure voor de functie netwerkbeheerder de volgende selectiecriteria: 1. Zijn je vrienden verhinderd en er is geen mooi tv-programma. in het bezit van een ict-diploma niveau 4 Schrijf voor deze procedure een PSD. 2. Het is dus handig om te beginnen met de vraag. behalve op zaterdagavond. Dan kan je vragen. dan ga je naar de bioscoop. Is het aantal exemplaren gelijk aan 1. Dan ga je met je vrienden uit. Welke korting je krijgt hangt af van het aantal exemplaren.Een winkel hanteert tijdens de uitverkoop de volgende kortingsregels: 1. Als dat het geval is.

2boek c. een letter of een zin. Met behulp van de opdracht lees getal1. som en gemiddelde. • manier 2 Met behulp van een waarde toekenning opdracht de := Als je de lees opdracht gebruikt (manier 1). Voordat je iets in la stopt moet je deze la eerst een naam geven. x Je hebt een la de naam getal1 gegeven. Bijvoorbeeld een getal.getal2 som := getal 1 + getal2 gemiddelde:= som/2 schrijf gemiddelde Je hebt vier laatjes gebruikt en je hebt ze genoemd: getal1. Hier zijn een aantal regels voor. dan wordt er een getal op het toetsenbord ingetikt. x. getal2. • De naam van een la begint met een letter nooit met een cijfer • Er mag nooit een leesteken in de naam voorkomen.y d. boek1 f. Bijvoorbeeld getal1 := 5.Hoofdstuk 2 variabelen Een simpele voorstelling van het geheugen van een computer is een grote ladekast. • Een naam bestaat uit één woord Een la is niks anders dan een geheugenplaats. Gebruik je manier 2 dan stop je er zelf een waarde in. 5 . Dat getal komt in het laatje met de naam getal1. opdracht5. getal b. Noteer welke van de volgende namen er goed zijn: a. Je wilt er nu een waarde instoppen. som% e. In ieder la kan je iets opbergen. Dat kan op twee manieren • manier 1. Dit spreek je als volgt uit getal1 wordt 5 (:= betekent wordt) Kijk nog eens na het eerste voorbeeld lees getal1.

(In het laatje getal1 blijft het getal 10 en in het ander laatje 20) getal1 getal2 som gemiddelde 10 20 30 Met de opdracht gemiddelde := som/2 wordt het getal uit het laatje som gehaald. 6 . getal1 getal2 som gemiddelde Met de opdracht lees getal1. Gaan er twee laatjes open en worden twee getallen in gestopt bijvoorbeeld 10 en 20 getal1 getal2 som gemiddelde 10 20 Met de opdracht som:= getal1 + getal 2 worden de getallen opgeteld en de uitkomst wordt in het laatje met de naam som gestopt. (In het laatje som blijft het getal 30) getal1 getal2 som gemiddelde 10 20 30 15 Met de laatste opdracht wordt de inhoud van laatje gemiddelde op het scherm getoond. gedeeld door 2 en opgeborgen in het laatje gemiddelde. getal2.

Bekijk het onderstaande PSD T1 := 1 T1 := T1 + 2 T2 := T1 + T1 schrijf T1.T2 Met de opdracht T1 := 1 wordt in geheugenadres T1 het cijfer 1 gezet. Je moet de straal inlezen. Je weet nu dat een laatje een visualisering van een geheugenplaats of geheugenadres is. Zo’n tabel noem je een geheugentabel. In dit geval 3) 7 . Met de volgende opdracht T1 := T1 + 2 wordt in adres T1 het cijfer 1 als ware uitgewist en vervangen door de uitkomst 1 + 2 oftewel 3 (Je kunt ook zeggen het laatje gaat open. Je haalt het cijfertje eruit. (oppervlakte cirkel = 2 * 3. 4 en 5. deling en de som berekent van de getallen 3. opdracht 6: Schrijf een PSD dat de oppervlakte van een cirkel berekent.14 * straal2) opdracht 7: Schrijf een PSD dat het product. Het geheugentabel van dit voorbeeld ziet als volgt uit getal1 10 getal2 20 som 30 gemiddelde 15 Je hebt gezien dat je voor delen het teken / gebruikt en voor de optelling de + Zo gebruik je voor de vermenigvuldiging het teken * . voor aftrekken de – en voor machtsverheffen ^. Bedenk goede namen voor de ‘laatjes’.In plaats van laatjes te tekenen is handiger om een tabel te maken. tel er 2 bij op en stop de uitkomst er weer in .

opdracht 8: Schrijf een PSD waarin: • De getallen K en L via het toetsenbord ingelezen worden. • De uitkomst van de onderstaande formule berekend en afgedrukt wordt.Met deze opdracht T2 := T1 + T1 Krijgt T2 de waarde 6. UIT := (K+L)2/ (K-L)2 8 .

Dit is echter niet goed. Op de volgende blz. kun je vragen: aantalKinderen = 1 en daarna aantalKinderen > 3. Dit leest niet echt plezierig. Je begint met de opdracht lees aantalKinderen Om er achter te komen wat er is ingevoerd . Daarom laat je het tweede woord beginnen met een hoofdletter. De naam van dit plaats kan zijn: aantal kinderen. De tweede opdracht is dan aantalKinderen = 1 ja nee aantalKinderen > 3 ja nee Nu kun je aangeven wat het lesgeld moet worden.Hoofdstuk 3 problemen omzetten in een PSD Het lesgeld van een muziekschool is afhankelijk van het aantal kinderen uit één gezin dat lid is. Je zal nu een aantal geheugen plaatsen gaan benoemen. Je hebt nog een geheugen plaats nodig voor het lesgeld. Je weet namelijk dat een naam maar uit één woord mag bestaan. heb je het aantal kinderen nodig. Om te weten hoeveel lesgeld er betaald moet worden. aantalKinderen. dus zo aantalkinderen. 9 . Het lesgeld bedraagt bij: • 1 kind € 300 • 2 of 3 kinderen € 500 • 4 of meer kinderen € 650 Je wilt nu een PSD maken dat inleest hoeveel kinderen lid zijn en dan het lesgeld afdrukt. Met de opdracht schrijf lesgeld komt het op het scherm te staan. Die noem je dan lesgeld. Je hebt een geheugen plaats nodig waarin het aantal kinderen wordt opgeslagen. Dit los je op door het aan mekaar te schrijven. zie je het uiteindelijke PSD.

05 per bladzijde Schrijf een PSD dat aan de hand van het ingelezen aantal bedrukte bladzijden het te betalen bedrag inclusief 19 % BTW afdrukt Bedenk juiste namen voor de geheugenadressen. Dit is een lastige opdracht. Je verwisselt de inhoud van twee geheugenadressen. opdracht 10: Schrijf een PSD dat de getallen X en Y inleest. X Y 10 . waarna de inhoud van de getallen X en Y verwisseld wordt.en drukkosten: €0. maar je zal hiervan vaak gebruik maken. Bedenk een formule waarmee je de BTW snel kan uitrekenen. lees aantalKinderen aantalKinderen = 1 ja nee lesgeld := 300 aantalKinderen > 3 ja nee lesgeld := 650 lesgeld := 500 schrijf lesgeld opdracht 9: Voor het afdrukken van een reclamefolder wordt door een drukkerij het te betalen bedrag zonder BTW als volgt bepaald: • zetkosten: vast bedrag van € 75 • papier.

Hint: noem de getallen klein. lees G1 . dat voor G1 de waarde 6 en voor G2 de waarde 9 wordt ingelezen. Ga ervan uit. Toch moet je dit kunnen oplossen. We noemen de twee geheugenadressen X en Y. In X komt bijvoorbeeld 10 en in Y 40 X Y 10 40 De opdracht is nu zorg ervoor dat in X 40 komt en in Y 10 (Hint maak gebruik van nog een geheugenplaats) opdracht 11: Maak van het hier onderstaande PSD een geheugentabel en geef aan wat de uitvoer is. 11 . Schrijf een PSD dat drie willekeurig ingelezen getallen sorteert van klein naar groot. Dat is niet de bedoeling . middel en groot en zorg ervoor dat in klein het kleinste getal komt enz. Je kan de opdracht doorlezen en dan zeggen deze snap ik niet dus sla ik hem over. Maak gebruik van internet of van personen die volgens jou je verder kunnen helpen. opdracht 13: Dit is een moeilijke opgave. G2 G3 := G1 + G2 + 15 G3 < 25 ja nee G3 = 25 schrijf G3 opdracht 12: Schrijf een PSD dat van twee willekeurig ingelezen getallen het kleinste getal afdrukt.

opdracht 14: Een energie bedrijf hanteert 2 tarieven voor het waterverbruik. • code 21 t/m 25: € 20. Schrijf een PSD dat van de werknemer het jaarsalaris en het aantal dienstjaren inleest en vervolgens het bedrag van de gratificatie afdrukt... + € 30. Bestudeer ook bijlage 2 fouten opsporen.snijkosten per bestelling Schrijf het PSD dat.per jaar en een bedrag van 50 cent per m3 • tarief 2: vastrecht € 150.. Vanaf opdracht 14 kun je het programma gebruiken. bijvoorbeeld: • code 1 = 0 % • code 2 = 6 % • code 3 = 19 % Schrijf een PSD dat de prijs van een artikel en de code van de BTW via het toetsenbord inleest en de prijs van het artikel inclusief BTWW afdrukt.Het maken van een PSD gaat steeds makkelijker als je veel oefent. opdracht 17: In verband met het 100 –jarig bestaan van bedrijf ’Shopping’ is besloten elk personeelslid iets extra te geven een zogenaamde gratificatie.per m2 glas.5 % per dienstjaar..snijkosten per bestelling. Voor de inhouding geldt het volgende: 12 . De prijs exclusief BTW van elk glassoort wordt op basis van de code als volgt samengesteld: • code 1 t/m 10: € 10.per m2 glas. uitgaande van het ingelezen aantal m2 glas en de glascode. • code 11 t/m 20: € 15.per m2 glas. opdracht 18: Schrijf een PSD dat van een willekeurig ingelezen brutoloon het nettoloon berekent en afdrukt. en wel • tarief 1 : vastrecht € 200.. De BTW bedraagt 19 %. + € 25. Voor de werking van de StruktoGraaf. verhoogd met 0..per jaar en een bedrag van 75 cent per m3 Schrijf een PSD dat het waterverbruik en tariefgroep inleest en vervolgens het te behalen bedrag inclusief 19 % BTW afdrukt. De gratificatie bedraagt maximaal 20 % van het jaarsalaris. afdrukt hoeveel men voor een bepaalde bestelling moet betalen. Ten behoeven van de afdeling administratie heeft elk glassoort een code. zie bijlage 1.. Je kan een PSD ook maken met behulp van het programma StruktoGraaf.. Deze gratificatie bedraagt per personeelslid 5 % van zijn jaarsalaris.snijkosten per bestelling. opdracht 15: Het BTW-tarief wordt dikwijls met een bepaalde code aangegeven. + € 15. Daarom volgen hieronder nog een aantal opdrachten. opdracht 16: In glasfabriek Splinters worden 25 soorten glas vervaardigd.

. Bijvoorbeeld 17. artikelen die goedkoper zijn dan € 55 worden 11% duurder. Maak het stukje PSD dat bij elk tijdstip de volgende minuut bepaalt.59 uur. 1. krijgen € 20.59 uur wordt 19. • Leden die langer dan 10 jaar lid zijn. de rest wordt 16% in prijs verhoogd.en voor sportcode 2 € 225. 2. • De contributie voor sportcode 1 bedraagt € 50.- • Leden ouder dan 40 jaar krijgen € 25. Als het weekloon minder dan € 200 bedraagt.. 3.korting. opdracht 19: De hoogte van de contributie van een sportvereniging is afhankelijk van de sport die men beoefent. Schrijf een PSD dat van een lid de sportcode. Ze stellen een tijdstip voor in uren en minuten.. de leeftijd en het aantal jaren lidmaatschap inleest en het bedrag van de verschuldigde contributie afdrukt opdracht 20: Van een aantal artikelen wordt de prijs verhoogd op de volgende manier: als de prijs meer is dan € 150 komt er 19% bij. wordt er niet ingehouden. 13 . opdracht 21: Maak een PSD voor het omrekenen van een temperatuur in graden Celsius naar graden Fahrenheit: F = 1.25 uur en 18.24 uur wordt 17.8*C+32 opdracht 22: Maak een PSD voor een stukje programma in een digitale radiowekker Twee getallen vormen de invoer. noem ze UUR en MIN.00 uur. Als het weekloon meer dan € 300 wordt er 30 % ingehouden.korting. Bijvoorbeeld: 18 en 59 staan voor 18. de leeftijd e3n het aantal jaren dat men lid is van de vereniging. Als het weekloon niet minder dan € 200 en niet meer dan € 300 wordt er 10 % ingehouden. Maak een PSD dat een prijs leest en de nieuwe prijs afdrukt.

namelijk lees getal. 14 . daarna worden ze bij elkaar opgeteld en als laatste wordt het gemiddelde uitgerekend. Nu moet je ervoor zorgen dat je in de lus komt en er natuurlijk ook weer een keer uit. Het gene wat je steeds herhaald. Je maakt een PSD dat 10 getallen inleest.Hoofdstuk 4 De herhaling Je krijgt de opdracht om van 10 getallen het gemiddelde uit te rekenen. dit is de lus. Een lus is niks anders dan een programmadeel dat steeds herhaald wordt. In een PSD ziet een lus er als volgt uit hier staat de voorwaarde om in de lus te komen. Dit kun je als volgt oplossen. Zie onder staande PSD lees getal1 lees getal2 lees getal3 lees getal4 lees getal5 lees getal6 lees getal7 lees getal8 lees getal9 lees getal10 som:= getal1+getal2+getal3+getal4+getal5+getal6+getal7+ getal8+getal9+getal10 gemiddelde := som /10 schrijf gemiddelde Je merkt dat je iets steeds herhaalt. kun je in een lus zetten.

In de lus ga je de teller steeds met 1 op hogen. Dat kun je als volgt doen teller := teller +1 De voorwaarde om met de lus door te gaan is nu vrij eenvoudig te bedenken. Zolang de teller kleiner of gelijk is aan 10 ga door met de lus.Dit gaat als volgt. De teller krijgt een startwaarde van 1. teller:= 1 regel 1 zolang teller < = 10 regel 2 teller := teller + 1 regel 3 Onthoud nu: • regel 1 heb je nodig om in de lus te komen • regel 2 is de voorwaarde om met de lus door te blijven gaan • regel 3 zorgt ervoor dat je een keer uit de lus kan komen. Je weet dat je 10 getallen moet inlezen. In onderstaande PSD is dit nu ingevuld. Je geeft een geheugenplaats de naam teller. In de lus ga je nu getallen inlezen en bij elkaar optellen en buiten de lus wordt het gemiddelde berekend. Op de volgende bladzijde zie je het resultaat getal1 getal2 som 15 gemiddelde .

Deze lus wordt 31 keer uitgevoerd. Om deze vraag te beantwoorden is het handig om het volgende te doen. b. 6. Wat is de som dan? Je krijgt van een medewerker van het K.M. De PSD staat op de volgende bladzijde. Stel dat voor getal de volgende getallen zijn ingetikt: 1. 3. 5. 16 . In de maand januari willen ze iedere dag om 12:00 uur de temperatuur buiten meten. Wel. teller := 1 som := 0 regel 1 zolang teller <= 10 lees getal som:= som + getal regel 2 teller := teller + 1 gemiddelde:= som /teller schrijf gemiddelde opdracht 23: a. en 7. Maak dan een geheugentabel voor som en getal. Wat gebeurt precies bij regel 2. Ze willen weten hoe vaak de temperatuur onder nul is. die bijhoudt hoe vaak de temperatuur onder nul is geweest. je weet dat januari 31 dagen heeft en iedere dag moet je een temperatuur invoeren.N.I de opdracht om een PSD te schrijven voor het volgende probleem. Het invoeren van de temperatuur doe je dan in een lus. Leg uit waarom bij regel 1 de som op nul wordt gezet. In de lus maak je een tweede teller. Deze teller noem je bijvoorbeeld onderNul. 3.

50. 25. 30 . 10. 40. Hoeveel geheugen adressen heb je nodig ? Hoe ziet de lus eruit? opdracht 29: Maak een PSD dat een positief geheel getal vraagt en vervolgens laat aftellen tot 0. 20.70. 0 en –5 opdracht 28: Schrijf een PSD voor het volgende probleem. teller := 1 onderNul := 0 zolang teller <= 31 lees temperatuur temperatuur < 0 ja nee onderNul := onderNul + 1 teller := teller + 1 schrijf onderNul opdracht 24: Schrijf een PSD waarin de som van de getallen 1 tot en met 20 bereken en afgedrukt wordt. 10. 17 .50. opdracht 26: Schrijf een PSD (zonder lees opdracht) dat de som bepaald en afdrukt van de volgende reeks getallen. Van 8 getallen moet je het kleinste getal eruit halen en op het scherm worden getoond. 80 . 60 . 35. 45. 20. 15. 30.40 .90 en 100 opdracht 27: Schrijf een PSD (zonder lees opdracht) dat de som bepaald en afdrukt van de volgende reeks getallen. opdracht 25: Schrijf een PSD dat de uitkomsten van de tafel van 6 afdrukt. 5.

Als je niet weet wat GGD is. Het is gebaseerd op delen met rest. opdracht 32: Schrijf een PSD dat eerst één getal inleest en vervolgens van dit ingelezen getal de machten 0 tot en met 16 afdrukt. Het getal waardoor gedeeld werd is dan de GGD Voorbeeld: De GGD van 791 en 175: 791 : 175 = 4 rest 91 175 : 91 = 1 rest 84 91: 84 = 1 rest 7 84:7 = 12 rest 0 De GGD is 7 Maak gebruik van de volgende twee bewerking mod en div. Deel vervolgens de kleinste door de rest. Het gaat als volgt: Deel de grootste door de kleinste. Gebruik de herhalingsstructuur. zoekt het dan even op (internet?) 18 . Ga zo door tot de rest 0 is. opdracht 33: Er bestaat een methode om van twee getallen de grootste gemene deler (GGD) uit te rekenen. Met behulp van mod bepaal je de rest en met div bepaal je het gehele deel van de deling Voorbeeld 27 div 4 = 6 27 mod 4 = 3 ( ga dit na) Maak hiervan een PSD.opdracht 30: Een docent wenst met behulp van de computer een overzicht van het totaal aantal behaalde voldoendes en het totaal aantal behaalde onvoldoendes voor een proefwerk. Schrijf een PSD dat • het totaal aantal leerlingen inleest dat aan het proefwerk heeft deelgenomen • van elke leerling het behaald cijfer inleest • de gewenste gegevens afdrukt opdracht 31: Maak een PSD dat maximaal 3 keer om een wachtwoord vraagt en controleert of het ingevoerde woord klopt.

Het kan ook gebeuren dat je niet weet hoe vaak een lus herhaald moet worden. Deze lussen worden dan ook een tellend lus genoemd. Je weet dat de getallen die je intikt groter dan nul zijn.tellende lus genoemd. lees getal Zolang getal > 0 Als je nu voor getal een waarde intikt die groter is dan 0 is dan kom je in de lus. Dus er staat zolang het getal niet kleiner dan0 is ga verder met de lus. -3500 enz. komen er zeker niet in voor. Je weet wel dat de getallen allemaal groter zijn dan nul. Als je één van de vorige getallen intikt moet je uit de lus gaan Je maakt een PSD met de volgende voorwaarde: Zolang getal > 0 De uitdrukking > betekent groter dan . Kijk eens naar het volgende probleem. Je moet ervoor zorgen dat je in de lus komt en er weer uit zonder dat je een teller gebruikt. daarvan weet je van te voren hoe vaak het herhaald moet worden.De lussen die je tot nu hebt gemaakt. Zo’n lus wordt dan een niet. 19 . Maar je wilt er ook een keer uit. Je wilt van een aantal getallen het grootste getal eruit halen. Je moet dan de mogelijkheid krijgen om het getal in te tikken dat kleiner is dan 0. Je weet niet precies uit hoeveel getallen. Dat kan je als volgt gaan doen. De getallen –1. Hoe kom je nu in de lus? Door getal een waarde te gegeven. Dit kun je voor mekaar krijgen door in de lus de opdracht lees getal te plaatsen. -2 . Dit kan bijvoorbeeld met lees getal.

geef je de opdracht grootsteGetal := getal In de lus ga je na of het volgende getal. groter is. lees getal Zolang getal > 0 lees getal Nu nog het probleem oplossen. grootsteGetal >= getal ja nee grootsteGetal := getal Dit alles moet samen worden gevoegd in één PSD lees getal grootsteGetal := getal zolang getal > 0 grootsteGetal >= getal ja nee grootsteGetal:= getal lees getal schrijf grootsteGetal 20 . Als dat het geval is dan krijgt grootsteGetal de waarde van dat getal. Onder de opdracht lees getal. nog buiten de lus. wat ingelezen wordt. Als je één getal in voert is dat meteen het grootste getal.

Nog een voorbeeld. lees proefwerkCijfer teller:= 0 som := 0 zolang proefwerkCijfer <> = 11 som:= som + proefwerkCijfer teller := teller + 1 lees proefwerkCijfer gemiddelde : =som /teller schrijf gemiddelde opdracht 34: Beantwoord de volgende vraag Waarom begint de teller niet met 1? opdracht 35: Schrijf een PSD dat van een groep leerlingen: • de proefwerkcijfers inleest • berekent hoeveel leerlingen een cijfer lager dan 6 behaald hebben • het aantal leerlingen afdrukt met een lager cijfer dan 6 Neem als sluitgetal het getal 101. Omdat je gemiddelde wilt bepalen moet je achteraf wel weten hoeveel cijfers er zijn ingetikt. Van te voren staat niet vast over hoeveel leerling het gaat. Welk getal kun je niet halen voor een proefwerk? Bijvoorbeeld een 11. Tevens moeten de cijfers worden opgeteld in de lus. Een docent wil van een klas het gemiddelde cijfer bepalen van een proefwerk. Je laat dus een teller meelopen. Je moet nu eerst een sluitgetal bedenken. opdracht 36: Schrijf een PSD dat van een aantal ingevoerde positieve en negatieve getallen de som afdrukt van: • de positieve getallen • de negatieve getallen Wat is een geschikt sluitgetal? 21 . Het PSD is dan als volgt.

de leeftijd en het aantal dienstjaren inleest.. Neem als sluitgetal 99 opdracht 40: Maak een PSD dat laat raden naar een getal onder de 10. de nieuwe waarde hiervan weer met 3 enz. opdracht 39: Schrijf een PSD dat van een bedrijf: • Van elke werknemer het werknemersnummer. 22 .opdracht 37: Schrijf een PSD dat een aantal getallen inleest en alleen van de getallen die groter zijn dan 100. de som bepaalt en afdrukt. • Het gemiddelde aantal dienstjaren berekent en afdrukt van alle werknemers die ouder dan zijn dan 40. Tenslotte dienen de laatste waarde van het getal en het aantal herhalingen afgedrukt worden. zolang de waarde kleiner is dan 500. Het sluitgetal = 0 opdracht 38: Schrijf een PSD dat een ingelezen getal alleen vermenigvuldig met 3.

Vermenigvuldig die INT-uitkomst met 10 en trek dit af van het oorspronkelijke getal.1) = -3. opdracht 44: Maak een PSD dat de laatste twee cijfers van een ingevoerd getal geeft.23) = 5. 23 . opdracht 42: Marloes heeft een prijs gewonnen van € 100. 12500. opdracht 41: Maak een PSD dat een dobbelsteen simuleert. Wil je een toevalsgetal tussen 1 en 8.000 en zet dit bedrag per 1 januari a. Ook StruktoGraaf heeft zo'n functie: RANDOM. Alle programmeertalen bevatten een functie die willekeurige getallen kan genereren. Bijvoorbeeld: INT(5. dan geef je de opdracht a:= 7 * RANDOM + 1 Een andere functie die in veel programmeertalen voorkomt is INT (van integer. geheel getal). 'afronden' en rijen. Deze levert toevalsgetallen tussen de 0 en 1 op. en als uitvoer de grootte van het kapitaal. INT(0.hoofdstuk 5 programmeren (verdieping) Toevalsgetallen. 3458910. gebruik de random functie. Controleer je programma met: 156. Het getal dat je nu vindt is het laatste cijfer. 12 en 5. ofwel de functies RANDOM en INT. afgerond op hele euro's. dan geef je de opdracht a:= 7 * RANDOM. verwijdert het gedeelte achter de komma) zodat er een geheel getal overblijft. opdracht 43: Maak een PSD dat het laatste cijfer geeft het van het getal 175. 753) het laatste cijfer wilt hebben kan je de INT-functie op de volgende manier gebruiken: deel het getal door 10 en neem de INT van de uitkomst. Deze functie kapt een (positief) reëel getal af (dwz. en arrays. INT(√10) = 3. wat zij opneemt. Wil je een toevalsgetal tussen 0 en 7 toekennen aan een variabele a ( een variabele is een wezen een laatje). Aan het eind van ieder jaar neemt zij een willekeurig bedrag op.s op de bank tegen 4% rente per jaar. maar INT(-3. steeds per 1 januari.6)= -4 en INT(-2. Maak een PSD dat als invoer heeft dat bedrag. Als je van een geheel getal (bijv.731) = 0.

Stel je voor dat je 10 getallen in een array wilt plaatsen. Daarvoor heb je de beschikking over arrays. geef je de opdracht schrijf getallenRij [4] . Hoe gaat dat in z’n werk? index 1 2 3 4 5 6 7 8 9 10 getallenRij 23 175 25 34 4 76 12 33 66 9 De naam van de array is getallenRij. Wil je achtste getal veranderen dan geef je de opdracht getallenRij [ 8] := 3. Het vullen van een array doe je met behulp van een luststructuur. Zie onderstaande PSD i := 1 zolang i <= 10 schrijf getallenRij[i] i: = i+1 24 . enz.Arrays Soms is het handig om een hele rij variabelen (van hetzelfde type) met één naam te beschrijven. Een array die bestaat uit getallen kan je dan getallenRij noemen en een letterRij bestaat uit letters. Als je nu het vierde getal wilt hebben. Een array is een tabel die bestaat uit één rij. zie onderstaande tabel. De naam van een array eindig altijd met Rij. i := 1 t := 2 zolang i <= 10 getallenRij[i] := t t := t +2 i: = i+1 Als je de inhoud van een array op het scherm wilt tonen. Zie onderstaande PSD. maak je ook gebruik van een lusstructuur.

strings Strings zijn variabelen die tekst bevatten in plaats van getallen. korter of even lang is als het eerste woord. opdracht 48: Maak een PSD dat een woord inleest (van minimaal 8 karakters) en daarna de substring afdrukt die bestaat uit de laatste vijf karakters. een hele zin (in StruktoGraaf max 200 karakters) of helemaal geen karakters (een lege string). Daarvan het gemiddelde uitrekent. moet er een foutmelding afgedrukt worden. Bijvoorbeeld naam[1] is "J" en naam[6] is "i". dus "laas". bijv. Uit twee strings kan een nieuwe string gemaakt worden door ze aan elkaar te rijgen (concateneren betekent plakken). Met de functie LEN kan je het aantal karakters van een string te weten komen: LEN(naam) heeft de waarde 11. LET OP: de spatie naam[4] telt ook mee! Met naam[5:8] krijg je de substring die bestaat uit het 5e tot en met 8e karakter. De karakters uit zo'n string kan je apart in een variabele opslaan. Bijvoorbeeld: na de opdrachten naam := "Jan" en woord := "Klaassen" geeft de opdracht nieuw := naam + woord aan de string nieuw de waarde "JanKlaassen" (zonder spatie!). en hoeveel karakters dat scheelt. opdracht 47: Maak een PSD dat vier getallen inleest en deze getallen sorteert van klein naar groot. We gebruiken daarvoor de + operator. 25 . naam := "Jan Klaasen". Is het woord korter dan 8 karakters. Maak gebruik van een array. Als uitvoer moet er op het scherm komen te staan de vijf getallen plus het gemiddelde. opdracht 46: Maak een PSD dat vijf getallen inleest (maak gebruik van een array). opdracht 47: Maak een PSD dat twee woorden (of zinnen) leest en dan afdrukt of het tweede woord langer. Een string is een bijzonder array. Als je een string karakter voor karakter wil opbouwen (in een lus bijvoorbeeld) is het vaak handig om met de lege string te beginnen.opdracht 45: Voeg de laatst twee PSD’s samen en geef aan wat de uitkomst is. Zie het volgende PSD. Die tekst kan bestaan uit één karakter (letter of symbool). Een stringvariabele krijgt een waarde door een toekenning.

zoals ‘lepel’. ‘negen’. 26 . etc.nieuw Dit PSD levert op het scherm de string 'adgjmpsvy'. Ga dit na.46564. opdracht 49: Maak een PSD dat een ingelezen woord 'achterstevoren' weer afdrukt. Maak een PSD dat bepaalt of een ingelezen woord een palindroom is en de juiste conclusie afdrukt. opdracht 50: Een palindroom is een woord of getal dat achterstevoren gelezen hetzelfde woord of getal oplevert. naam := “abcdefghijklmnopqrstuvwxyz” nieuw := “ “ {lege string} i := 1 zolang i <= 26 nieuw := nieuw + naam [i] i := i + 3 schrijf “de gemaakte string is : “.

Ga w oord:= "tabel " i := 1 ZOLANG i< =5 schri j f asc(w oord[i ]) i := i+1 dit na. bestaande uit de hoofdletters A t/m J en drukt dit af. bij de letters a t/m z horen de getallen 97 t/m 122 en de spatie heeft ASCII-waarde 32. opdracht 53: Maak een PSD dat van een ingelezen zin (bestaande uit (hoofd-)letters. Ga dit ni euw:="" voor i : =0 tm9 ni euw:=ni euw +chr(65+i) schri j f ni euw na. opdracht 51: Maak een PSD dat van een ingelezen karakter de ASCII. vinden dat de letters A t/m Z de ASCII-waarden 65 t/m 90 gekregen hebben. spaties en een punt) uitzoekt welke letters er in voorkomen en van elke letter zegt hoeveel er voorkomen. met daaronder een lijstje van de voorkomende letters met de aantallen.d. Voorbeeld: Dit programma maakt een ‘woord. Bijvoorbeeld: ASC(“a”) geeft de ASCII-waarde van de kleine letter a. 27 . leestekens e. Er is een afspraak gemaakt welk karakter door welk getal voorgesteld wordt. e en l af. Zoals je weet worden ook letters. Deze lijst is de ASCII-tabel (Zoek op internet naar een ASCII-tabel) Daarin kan je o. ofwel de kleine letter d. omgekeerd.waarde de bijbehorende karakter geeft. a. in een computer voorgesteld door getallen. opdracht 52: Maak een PSD dat van een ASCII. die je bij een opgegeven waarde (van 0 t/m 255) het bijbehorende karakter geeft.waarde geeft. In Struktograaf geldt dit ook: het zijn de functies ASC en CHR. b. Vb: Dit programma drukt achtereenvolgens de ASCII-waarden van de letters t. CHR(100) geeft het karakter met ASCII-waarde 100. In programmeertalen bestaan er functies die bij een karakter vertellen welke ASCII-waarde hij heeft en.De functies ASC en CHR. De uitvoer is de zin. ofwel 97.a.

opdracht 55: Er zijn talen die geen klinkers kennen. k ≡ o en p ≡ t. Test je programma met: aardbei. alle klinkers uit die zin verwijdert en het resultaat afdrukt. Dus dan a ≡ e. Maak een PSD dat een zin inleest. zwaardvis en informatica. 4) verderop in het alfabet staat. b ≡ f.opdracht 54: Je kunt een simpel geheimschrift maken door alle letters in een woord te vervangen door een letter die een vast aantal plaatsen (bijv. Maak een PSD dat een woord inleest en daar dan zo'n codering op toepast. Ga er van uit dat het woord alleen kleine letters bevat. 28 .

zodat je direct kunt controleren of het PSD doet wat je bedoelde. Er verschijnt een leeg rechthoekje (met de cursor).  Maak nu het diagram verder af door een klik op de knop met de horizontale lijn en tot slot een klik binnen het door het zolangdiagram omsloten PSD.  Klik vervolgens ergens in het tekenvenster.bijlage 1 werking StruktoGraaf Het werken met StruktoGraaf Je gaat nu werken met het programma StruktoGraaf: een programma dat je in staat stelt om op een eenvoudige manier (het technische gedeelte van) PSD's te maken.  Klik op de knop met de rode rechthoek in de verticale knoppenbalk. Het totaal moet er nu als volgt uitzien (afgezien van de zeven extra regels tekst aan de linkerkant): 29 . Start het programma StruktoGraaf. Bovendien kan het je PSD vertalen naar een programmeertaal (genereren) en het programma laten werken. Zet de cursor links bovenin het scherm en typ: {De tafel van 7}.  Klik dan op de knop met de horizontale lijn en vervolgens op de onderkant van of binnen in het zojuist getekende diagram. Het PSD bestaat nu uit een lege rechthoek (een procesdiagram) gevolgd door een herhalingsdiagram.  Klik op de knop met het zolangdiagram (het herhalingsdiagram) en vervolgens binnen het onderste rechthoekje. (Start – Programma's – Informatica)  Kies BestandNieuw of druk op Ctrl-N of klik op de knop met het lege vel in de horizontale knoppenbalk. Er is een nieuw rechthoekje bijgemaakt. (zie ook de afbeelding hieronder)  Je maakt als voorbeeld de tafel van 7.

Verbeter de fout(en) en genereer opnieuw. Als het compileren lukt krijg je de melding hiernaast: Als het PSD niet in één keer goed genereerd wordt krijg je een foutmelding. Onderaan in het venster staan foutmeldingen.n :=n+1 aanhalingstekens.” x 7 = “. ook teruglezen bij de helpfunctie. Let op de scheidingskomma's en het gebruik van spaties binnen de . dan verschijnt er een venster als hieronder. Je ziet dat de breedte van de figuur vanzelf aangepast wordt.a. Veeg nu die uitroeptekens weer uit. Opmerkingen: • Typ eens achter de laatste opdracht (n:=n+1) een lange rij uitroeptekens. Het PSD wordt nu door Struktograaf vertaald naar een echt computerprogramma. Dit heet compileren. Je kunt e. • Als je na het maken van het 'frame' van het PSD wil gaan beginnen met het typen van tekst. Je kunt dan met de muis de cursor overal neer zetten om te typen of te wissen. is het handig om eerst op het schuine pijltje linksboven ('selecteren') te klikken. het PSD blijft even breed! Om het PSD de best passende afmeting te geven druk je nu op de knop met de twee pijlen in de horizontale menubalk (links naast de 'ongedaan-maken’- knop). ( help – inhoudsopgave – introductie). Je kunt o.In de afbeelding hierboven is ook van de zes belangrijkste knoppen in de verticale balk de betekenis gegeven. n*7 opdracht. ze worden nu op één regel afgedrukt. Klik op de knop. In dit geval is er een dubbele punt getypt. Als je die aanklikt gaat de cursor naar de regel waar een fout zit.  Completeer het PSD door de programmaregels in het diagram in te typen en wel als volgt: . De helpfunctie is ook handig als je de opdrachten moet maken.e. waar een := teken had moeten staan. 30 .ZOLANG n<=10 Bij de schrijfopdracht staan er nu drie opdrachten in één .a.SCHRIJF n.n:=1 . zonder dat er nieuwe cellen ingevoegd worden. ο Kies CodeGenereren. een aantal voorbeelden bekijken en de syntax van StruktoGraaf.

Met een druk op een toets verdwijnt dit scherm weer. …. Neem als naam voor het bestand: opgave nr.ο Kies na correcte compilatie CodeUitvoeren of Ctrl-F9 of de knop met de raket. 31 . Om je PSD op te slaan: klik op het diskette-symbool links in de menubalk en geef in het dan geopende venster aan waar je het PSD wil bewaren: neem een (aparte) diskette (A:) of gebruik je eigen gedeelte van de harde schijf (H:). Nu wordt de uitvoering gestart en de tafel van 7 verschijnt op het scherm.

3 3 2 waar 3 is groter dan (-3*2=) -6 {6} s c hr i j f " p=" . 5 7 -4 q krijgt waarde –2q. Zie het volgende voorbeeld. Dat doe je door na een geslaagde compilatie te kiezen voor: Code/Doorlopen. dus 2. dat na compilatie géén 6 7 -4 Afgedrukt wordt: p=7 foutmeldingen meer geeft wat 7 7 -4 Afgedrukt wordt: q=-4 betreft de syntax. Ooggetuigenverslag 4 3 -1 p krijgt waarde p+2q. q terug naar regel 3. maar toch niet doet wat je er van verwacht. Een manier om zo'n fout te ontdekken is het maken van een ooggetuigenverslag van het gedeelte van het PSD waar je vermoedt dat de fout zit.Bijlage 2 Fouten opsporen Een PSD dient (rechtstreeks) om te zetten te zijn in een correct functionerend programma.3q 3 5 -1 waar 5 is groter dan (-3*-1=) 3.2q naar regel 3. Een andere manier is om StruktoGraaf het PSD stap voor stap te laten doorlopen. Dit heet een ooggetuigenverslag. dus 3. Voor het programmaatje van bladzijde 6 bovenaan krijg je dan het volgende venster te zien: 32 . Voorbeeld PSD {1} p: =5 regel p q p>-3q commentaar 1 5 Toekenning van waarde 5 aan p {2} q: =. dus -4.1 2 5 -1 Toekenning van waarde –1 aan q {3} ZOL ANG p>. p 4 7 2 p krijgt waarde p+2q. bevat het een logische fout. Daarbij worden de opdrachten stap voor stap op papier uitgevoerd. dus 7. Nu terug {5} q: =. Nu {7} s c hr i j f " q=" . 3 7 -4 niet 7 is niet groter dan (-3*-4=) 12. dus Als je een PSD gemaakt hebt waar nu naar regel 6. {4} p: =p+2q 5 3 2 q krijgt waarde –2q. Om de werking van een PSD te begrijpen of te controleren is het noodzakelijk om de opdrachten na te lopen.

Daarbij worden de waarden van de variabelen in het linker schermpje getoond. dat is de regel die door de zwarte balk aangegeven wordt. Elke klik op die knop laat de volgende opdracht uitvoeren. Probeer dit uit! Deze 'debugger' (foutenzoeker) komt vaak van pas! 33 .Klik op de knop 'Stappen' en de volgende opdracht. terwijl het scherm rechtsonder de uitvoer (of invoer) van het programma laat zien. wordt uitgevoerd.