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 INIT ZOLANG IDNR <> 0 KERN SLOT Submoduul INIT som := 0 aantal := 0 av := 0 LEES IDNR Submoduul KERN LEES naam, leeftijd, geslacht som := som + leeftijd aantal := aantal + 1 ja geslacht = V nee av := av + 1 SCHRIJF naam LEES IDNR Submoduul SLOT gem := som / aantal SCHRIJF gem, av 1
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 ag := 0 ao:= 0 t := 1 zolang t < = 5 LEES titel, naam, aantal VERWERK t := t + 1 SCHRIJF ag, ao submoduul VERWERK ja aantal < 75 nee ao : = ao + 1 ja aantal > 300 nee ao : = ao + 1 ag : = ag + 1 p := "ongeschikt" p := "ongeschikt" p := "geschikt" SCHRIJF naam, titel, aantal, p 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 Uitvoer ag ao t titel naam aantal p 0 0 1 Au soleil Jaques 87 2
opgave 2 Een bedrijf heeft een lijst met de gegevens van alle werknemers. Deze gegevens zijn: - naam (nm) - adres (adr) - telefoon (tn) - leeftijd (lt) - aantal dienstjaren (adj) - salaris (sal) - aantal verzuimdagen (verz) Deze gegevens worden in een programma ingevoerd. Hieronder staat het hoofdmoduul ADMIN en submoduul INVOEREN. Hoofdmoduul ADMIN ENTREE ZOLANG nm < > "ZZZZ" JONG ARM VERVOLG INVOEREN SLOT Submoduul INVOEREN LEES nm, adr, tn, lt, adj, sal, verz 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
Werkblad Submoduul ENTREE Submoduul JONG INVOEREN laagste :=.. Submoduul ARM Submoduul VERVOLG ja.. nee.... Submoduul SLOT 3
Uitwerking Geheugentabel ag ao t titel naam aantal p 0 0 1 Au soleil Jaques 87 1 geschikt 2 Sous l arbre Pierre 173 2 geschikt 3 Zigzag Jeanne 67 1 ongesch 4 La mer Marquise 452 2 ongesch 5 A la lune Analise 201 3 geschikt 6 Uitvoer Au soleil Jacques 87 geschikt Sous l arbre Pierre 173 geschikt Zigzag Jeanne 67 ongeschikt La mer Marquise 452 ongeschikt A la lune Analise 201 geschikt 3 2 4
Submoduul ENTREE INVOEREN laagste := sal naamlaag := naam aantw := 0 soml := 0 Submoduul JONG ja lt < 30 nee ja adj < 5 nee SCHRIJF nm SCHRIJF adr SCHRIJF tn tav := 0 Submoduul ARM ja sal < laagste nee laagste := sal naamlaag := naam Submoduul VERVOLG aantw := aantw + 1 soml := soml + lt tav := tav + verz Submoduul SLOT gemlt := soml / aantw SCHRIJF gemlt SCHRIJF naamlaag SCHRIJF tav 5