Modulair Programmeren Voorbeeld Van een aantal leerlingen worden IDNR, naam, leeftijd en geslacht ingelezen. Het programma bepaalt: Gemiddelde leeftijd Aantal meisjes Verder worden de namen van alle jongens afgedrukt. Hoofdmoduul
Submoduul KERN
INIT
LEES naam, leeftijd, geslacht
ZOLANG IDNR <> 0
som := som + leeftijd
KERN SLOT
aantal := aantal + 1 ja
geslacht = “V”
av := av + 1 Submoduul INIT
nee
SCHRIJF naam
LEES IDNR
som := 0 aantal := 0
Submoduul SLOT
av := 0
gem := som / aantal
LEES IDNR
SCHRIJF gem, av
1
Modulair Programmeren opgave 1 De leraar Frans geeft aan zijn leerlingen de opdracht om een literatuurlijst samen te stellen. Op die lijst moet van elk boek de TITEL (titel), NAAM VAN DE SCHRIJVER (naam) en AANTAL BLADZIJDEN (aantal) staan. Met behulp van onderstaand programma worden de gegevens van 5 boeken ingelezen. Hiervan wordt het aantal geschikte (ag) en het aantal ongeschikte (ao) boeken afgedrukt. Een boek is geschikt als het aantal bladzijden tussen 75 en 300 ligt. Anders is het boek ongeschikt. Hieronder staan het hoofdmoduul en submoduul VERWERK. Hoofdmoduul
submoduul VERWERK
ag := 0
ja
ao:= 0
aantal < 75
ao : = ao + 1
t := 1
ja
nee aantal > 300
ao : = ao + 1
nee
ag : = ag + 1
zolang t < = 5 p := "ongeschikt" p := "ongeschikt" p := "geschikt"
LEES titel, naam, aantal
SCHRIJF naam, titel, aantal, p
VERWERK t := t + 1 SCHRIJF ag, ao
Maak onderstaande geheugentabel af en geef de uitvoer als onderstaande gegevens ingelezen worden: Au soleil, Jacques, 87, Sous l’arbre, Pierre, 173, Zigzag, Jeanne, 67, La mer, Marquise, 452, A la lune, Analise, 201 Geheugentabel ag ao
t
titel
naam
0
1
Au soleil
Jaques
0
Uitvoer aantal
p
87
2
Modulair Programmeren opgave 2 Een bedrijf heeft een lijst met de gegevens van alle werknemers. Deze gegevens zijn: - naam (nm) - adres (adr) - aantal dienstjaren (adj)
- telefoon (tn) - leeftijd (lt) - salaris (sal) - aantal verzuimdagen (verz)
Deze gegevens worden in een programma ingevoerd. Hieronder staat het hoofdmoduul ADMIN en submoduul INVOEREN. Hoofdmoduul ADMIN
Submoduul INVOEREN
ENTREE
LEES nm, adr, tn, lt, adj, sal, verz
ZOLANG nm < > "ZZZZ" JONG ARM VERVOLG INVOEREN SLOT In dit programma gebeurt het volgende: • Naam, adres en telefoonnummer van alle werknemers jonger dan 30 jaar met minder dan 5 dienstjaren worden bepaald en afgedrukt. • Naam en salaris van de werknemer met het laagste salaris worden bepaald en afgedrukt. Er zijn geen twee werknemers met hetzelfde salaris. • De gemiddelde leeftijd en het totaal aantal verzuimdagen van alle werknemers worden bepaald en afgedrukt. Omschrijving van de submodules: INVOEREN: hierin worden alle gegevens ingelezen. ENTREE: hierin wordt eerst submoduul INVOEREN aangeroepen, waarna de nodige gegevens een beginwaarde krijgen. JONG: hierin worden naam, adres en telefoonnummer van alle werknemers jonger dan 30 jaar, die minder dan 5 dienstjaren hebben, bepaald en afgedrukt. ARM: hierin worden naam en salaris van de werknemer met het laagste salaris bijgehouden. VERVOLG: hierin worden de nodige gegevens bijgehouden voor het berekenen van het gemiddelde en het bepalen van het totaal aantal verzuimdagen. SLOT: hierin worden die dingen gedaan die aan het einde van het programma nog gedaan moeten worden. In submoduul ENTREE moeten 5 variabelen een beginwaarde krijgen. Het PSD hiervan staat op het werkblad getekend. a. Maak submoduul ENTREE verder af. b. Maak submoduul JONG verder af. c. Maak submoduul ARM verder af. d. Maak submoduul VERVOLG verder af. e. Maak submoduul SLOT verder af.
2
Modulair Programmeren Werkblad Submoduul ENTREE
Submoduul JONG
INVOEREN laagste := …………….. ………………………… ………………………… ………………………… …………………………
Submoduul ARM ja
Submoduul VERVOLG
………………….. nee ……………………………………
……………………..
……………………………………
……………………..
……………………………………
Submoduul SLOT
3
Modulair Programmeren Uitwerking
Geheugentabel
Uitvoer
ag ao
t
titel
naam
0 1
1
Au soleil
Jaques
87
2
Sous l’arbre
Pierre
173
3
Zigzag
Jeanne
67
4
La mer
Marquise 452
0
aantal
p
geschikt
2
Au soleil Sous l’arbre Zigzag La mer A la lune 3 2
Jacques Pierre Jeanne Marquise Analise
87 173 67 452 201
geschikt geschikt ongeschikt ongeschikt geschikt
geschikt 1
ongesch
2
ongesch 5
3
A la lune
Analise
201 geschikt
6
4
Modulair Programmeren
Submoduul ENTREE
Submoduul JONG
INVOEREN
ja
lt < 30
ja
laagste := sal
adj < 5
nee
nee
SCHRIJF nm naamlaag := naam
SCHRIJF adr
aantW := 0
SCHRIJF tn
somL := 0 tav := 0
Submoduul ARM ja
Submoduul VERVOLG
sal < laagste nee aantW := aantW + 1
laagste := sal
somL := somL + lt
naamLaag := naam
tav := tav + verz
Submoduul SLOT gemLT := somL / aantW SCHRIJF gemLT SCHRIJF naamLaag SCHRIJF tav
5