|
Pascal Opgaven voor de PO
-
Maak een programma waarin gevraagd wordt "Geef de temperatuur in graden Celsius :".
En als die temperatuur is ingevoerd verschijnt er in de regel er onder "De temperatuur in graden Fahrenheit is "
met het juiste getal er achter.
En in de regel daar onder "De temperatuur in graden Kelvin is " met het juiste getal er achter.
Aanwijzing :
Tfahrenheit = (9*Tcelsius/5) + 32 → temperatuur van graden Celsius naar graden Fahrenheit
Tkelvin = Tcelsius + 273 → temperatuur van graden Celsius naar graden Kelvin
Kijk verder goed naar het eerste programma uit hoofdstuk 1.
-
Maak een programma waarin gevraagd wordt "Geef de lengte van een rechthoek : " en in de regel
er onder wordt gevraagd "Geef de breedte van de rechthoek : "
En als de lengte en de breedte zijn ingevoerd verschijnt er in de regel er onder
"De oppervlakte is " met het juiste getal er achter.
En in de regel daar onder "De omtrek is " met het juiste getal er achter.
Aanwijzing :
-
Maak een programma waarin gevraagd wordt "Geef een getal : "
En als dat getal is ingevoerd verschijnt er in de regel er onder
"Dat getal gedeeld door drie is: " met het juiste getal er achter.
En in de regel daar onder "Vijf keer dat getal is " met het juiste getal er achter.
Aanwijzing :
-
Maak een programma waarin gevraagd wordt "Geef je voornaam : "
en in de regel er onder wordt gevraagd "Geef je achternaam : "
En daar onder "Geef je Woonplaats : "
En als de voornaam en achternaam en woonplaats zijn ingevoerd verschijnt er in de regel er onder
Dus je heet .......... ............... en je woont in ............. waarbij op de stippeltjes de
ingevoerde voornaam, achternaam en woonplaats staan.
Aanwijzing :
Zinnen of woorden aan elkaar plakken doe je met behulp van de + ("abc" + "defg" levert "abcdefg" op)
Dus als v := "Piet" en w := "de Boer" en u := v + w dan geldt: u := "Pietde Boer"
Kijk verder goed naar het eerste programma uit hoofdstuk 1.
-
Maak een programma waarin gevraagd wordt "Geef een bedrag (exclusief BTW) : "
en in de regel er onder wordt gevraagd "Geef de BTW (in procenten) : "
En als het bedrag (excl. BTW) en het BTW-percentage zijn ingevoerd verschijnt er in de regel er onder
"Het bedrag inclusief BTW is :" met het juiste bedrag er achter.
Aanwijzing :
Als de BTW 6 % is en het bedrag 540,- dan is het BTW-bedrag (6/100) x 540 en het totale bedrag (incl. BTW) is dan 540 + (6/100) x 540
In het algemeen geldt dus: het totale bedrag (incl. BTW) is
dan beginbedrag + (btw/100) x beginbedrag
Kijk verder goed naar het eerste programma uit hoofdstuk 1.
-
Er zijn veel automobilisten die het verbruik van hun auto bijhouden.
Als je elke keer als je tankt opschrijft wat op dat moment je kilometerstand is, en je doet elke keer de
tank vol, dat kun je uitrekenen wat het verbruik is.
Maak een programma waarin gevraagd wordt "Geef de begin-kilometerstand : "
en in de regel er onder wordt gevraagd
Geef de eind-kilometerstand : "
In de regel daar onder wordt gevraagd "Geef het aantal liters dat getankt is : "
Als die aantallen zijn ingevoerd verschijnt op de volgende regel:
"Aantal km per liter :" met daarachter het aantal kilometers dat per liter gereden is
Aanwijzing :
Als de beginstand 20000 is en de eindstand 20540 en het aantal liters 45 dan heeft die auto 540 km gereden op 45 liter, en per liter is dat 540 / 45 km
In het algemeen geldt dus: het aantal km. per liter is (eindstand - beginstand) / aantal-liters
Kijk verder goed naar het eerste programma uit hoofdstuk 1.
-
Als je de verkoopprijs en de inkoopprijs weet dan kun je uitrekenen hoeveel procent winst er gemaakt wordt.
Maak een programma waarin gevraagd wordt Geef de verkoopprijs : " en in de regel er onder wordt
gevraagd: "Geef de inkoopprijs : "
Als die prijzen zijn ingevoerd verschijnt er op de volgende regel:
"Winst (in procenten) :" met daarachter het percentage
Aanwijzing :
Als de verkoopprijs 200,- is en de inkoopprijs 172,- dan is de winst 200 - 172 = 28 en het percentage is dan (28 / 172 ) x 100
In het algemeen geldt dus: het percentage winst is 100 * (verkoopprijs - inkoopprijs)/ inkoopprijs
Kijk verder goed naar het eerste programma uit hoofdstuk 1.
-
Tegenwoordig wordt er bij het schriftelijk examen voor elk vak een L-waarde en een N-waarde gegeven.
De L-waarde is het maximale aantal punten dat je voor het examen kunt scoren.
En de N-waarde wordt na het examen bepaald. Als het moeilijk was dan wordt de N-waarde zo gekozen dat het cijfer iets wordt
opgehoogd (N=1 is normaal, N=2 betekent dat er 1 punt bijkomt, N=0.8 betekent dat er 0.2 punt afgaat)
Maak een programma waarin wordt gevraagd "Geef de score op het examen : " (de score is het aantal
punten dat iemand bij het examen voor een vak krijgt, meestal iets tussen 0 en 90).
Op de regel er onder wordt gevraagd "Geef de L-waarde : " en op de volgende regel wordt
gevraagd: "Geef de N-waarde : " (dat is een kommagetal, meestal iets tussen de 0.8 en 2.5)
Als die drie getallen zijn ingevoerd verschijnt op de vierde regel: "CSE-Cijfer (tussen 10 en 100): "
met daarachter het cijfer voor het centraal schriftelijk eindexamen (CSE)
Aanwijzing :
Het CSE-cijfer op de honderd-schaal wordt berekend met de formule cse = (90 * score)/L + 10 * N
Als dat een cse-cijfer oplevert dat hoger dan 100 is of lager dan 10 dan wordt er een andere formule toegepast, maar
die laten we buiten beschouwing.
Kijk verder goed naar het eerste programma uit hoofdstuk 1.
-
Maak een programma waarin om drie getallen wordt gevraagd. Op de eerste regel wordt het
eerste getal gevraagd: "Geef getal 1 : ", op de tweede regel "Geef getal 2 : "
en op de derde regel "Geef getal 3 : "
Als de drie getallen zijn ingevoerd verschijnt er op de volgende regel: De getallen in volgorde van grootte:
..... en ..... en ...... waarbij op de stippeltjes de getallen staan. En wel zo dat het kleinste
getal voorop staat en het grootste achteraan.
Aanwijzing :
Je moet eerst uitzoeken wat het kleinste getal is.
Als g1<=g2 en g1<=g3 dan is dat g1. (dat programmeer je zo: if (g1<=g2) and (g1<=g3) then
kleinste:=g1)
Als g2<=g1 en g2<=g3 dan is dat g2. En als g3<=g1 en g3<=g2 dan is het g3.
Daarna het middelste getal op dezelfde manier.
En daarna het grootste getal op dezelfde manier.
Kijk goed naar de programma's uit 1.2
En denk er om dat, als er aan twee voorwaarden voldaan moet zijn, het als volgt geprogrammeerd wordt:
if (.........) and (............) then ...........;
-
Een groep die naar de bioscoop gaat, krijgt korting. Een toegangskaartje kost
normaal 8 euro. Vanaf 10 personen geeft de bioscoop reductie. Zijn er
minder dan 20 bezoekers dan bedraagt de korting 15%, in het andere geval 30%.
Maak een programma waarin gevraagd wordt: "Geef het aantal in de groep : "
Als dat aantal is ingevoerd verschijnt op de volgende regel: "Te betalen" met daarachter
het bedrag dat er in totaal betaald moet worden.
Aanwijzing :
Normale prijs = aantal x 8
Als het aantal groter dan 10 maar kleiner dan 20 is wordt de prijs : aantal x 8 x 0,85
(Als je 15 % korting krijgt moet je 85 % betalen, dan kun je het bedrag keer 0,85 doen)
Als het aantal groter dan 20 is wordt de prijs : aantal x 8 x 0,70
Kijk goed naar de programma's uit 1.2
-
Als je je als automobilist niet houdt aan de toegestane maximale snelheid dan kun je een bekeuring krijgen.
Je krijgt dan een boete die afhangt van de gereden snelheid. Je moet in ieder geval 30 euro betalen. En elke km boven het
maximum kost de overtreder nog 5 euro extra.
Maak een programma waarin gevraagd wordt: "Geef de toegestane snelheid : "
Op de tweede regel wordt gevraagd: "Geef de gereden snelheid : "
En als die snelheden zijn ingevoerd verschijnt op de volgende regel: "Boete: " met daarachter
het bedrag van de boete (dat kan ook nul zijn, dan is er dus geen boete)
Aanwijzing :
Als de snelheid kleiner is dan het maximum dan is de boete 0
Als de snelheid groter is dan het maximum dan is de boete 30 + (snelheid - maximum) x 5
Kijk goed naar de programma's uit 1.2
-
Als je een computer in een netwerk opstart moet je altijd beginnen met het invoeren van een gebruikersnaam en een wachtwoord.
Maak een programma waarin gevraagd wordt: "Geef de gebruikersnaam : "
En op de tweede regel wordt gevraagd: "Geef het wachtwoord : "
Als die twee dingen zijn ingevoerd verschijnt er op de volgende regel:
OK. U wordt ingelogd, als bij gebruikersnaam leerling is ingevoerd en als wachtwoord
wxpwxp
Als het niet klopt dan verschijnt er Gebruikersnaam en/of wachtwoord foutief, u wordt niet ingelogd
Aanwijzing :
Kijk goed naar de programma's uit 1.2
En denk er om dat, als er aan twee voorwaarden voldaan moet zijn, het als volgt geprogrammeerd wordt:
if (.........) and (............) then ...........;
-
Maak een programma om het loon van een verkoper te bereken.
Er wordt gevraagd "Geef het maandloon (in euro)" en op de volgende regel wordt gevraagd
"Geef het totaalbedrag van de verkoop (in euro)"
Op de volgende regel wordt dan vermeld wat het totale bedrag is, dat de verkoper aan het eind van de maand
krijgt (maandloon + premie).
Als de verkoper voor minder dan 5000 euro heeft verkocht, krijgt hij geen premie.
Als hij voor meer dan 5000 euro maar minder dan 10000 euro (of gelijk) heeft verkocht, krijgt hij een premie van 3% van
de verkoop
Als hij voor meer dan 10000 euro maar minder dan 20000 euro (of gelijk) heeft verkocht, krijgt hij
een premie van 5% van de verkoop
Aanwijzing :
Kijk goed naar de programma's uit 1.2
En denk er om dat, als er aan twee voorwaarden voldaan moet zijn, het als volgt geprogrammeerd wordt:
if (.........) and (............) then ...........;
-
Maak een programma waarin de computer een getal onder de 100 bedenkt, en dat moet geraden worden.
Op de eerste regel wordt gevraagd "Geef een getal onder de 100 : "
En als dat getal is ingevoerd verschijnt er: "Te hoog, het was ..." als het te hoog was, en op de
stippeltjes staat dan het getal dat de computer bedacht had.
Er verschijnt "Te laag, het was ..." als het te laag was, en op de
stippeltjes staat dan het getal dat de computer bedacht had.
En als het juist was verschijnt er: "Goed zo!"
Aanwijzing :
Kijk goed naar de programma's uit 1.2
Daar lees je ook hoe je moet programmeren dat de computer een getal bedenkt.
-
Maak een programma waarin gevraagd wordt "Geef een getal onder de 100 : "
Als het getal is ingevoerd verschijnt op de volgende regel "Dit getal is deelbaar door drie en deelbaar
door zeven" als het getal deelbaar door 3 en door 7 is (zoals bijv. 21)
Er verschijnt "Dit getal is deelbaar door drie en niet door zeven" als het getal deelbaar door 3 en
niet door 7 is (zoals bijv. 12)
Er verschijnt "Dit getal is niet deelbaar door drie en wel door zeven" als het getal niet deelbaar door 3 en
wel door 7 is (zoals bijv. 14)
Er verschijnt "Dit getal is niet deelbaar door drie en niet door zeven" als het getal niet deelbaar
door 3 en ook niet door 7 is (zoals bijv. 13)
Aanwijzing :
Als je het getal aangeeft met g, dan is g deelbaar door 3 als g mod 3 gelijk is aan 0
Op dezelfde manier kan er worden gecontroleerd of het getal deelbaar is door zeven.
Kijk goed naar de programma's uit 1.2
En denk er om dat, als er aan twee voorwaarden voldaan moet zijn, het als volgt geprogrammeerd wordt:
if (.........) and (............) then ...........;
-
Maak een programma waarin gevraagd wordt "Geef je naam"
Op de volgende regel wordt gevraagd "Ben je man of vrouw (m/v)"
(Het is de bedoeling dat daar een m (van man) of een v (van vrouw) wordt ingevoerd)
Als je als naam Piet hebt ingevoerd, en een m van man, dan verschijnt er op de volgende regel:
Hallo meneer Piet.
Als je als naam Jeanet hebt ingevoerd, en een v van vrouw, dan verschijnt er op de volgende regel:
Hallo mevrouw Jeanet.
Als je iets anders dan een m of een v hebt ingevoerd, dan verschijnt er in op de volgende regel:
Voer een m of een v in !
Aanwijzing :
Kijk goed naar de programma's uit 1.2
En denk er om dat, als er aan twee voorwaarden voldaan moet zijn, het als volgt geprogrammeerd wordt:
if (.........) and (............) then ...........;
-
Maak een programma waarin om drie namen wordt gevraagd. Op de eerste regel wordt de
eerste naam gevraagd: "Geef naam 1 : ", op de tweede regel "Geef naam 2 : "
en op de derde regel "Geef naam 3 : "
Als de drie namen zijn ingevoerd verschijnt er op de volgende regel: De namen in alfabetische volgorde:
..... en ..... en ...... waarbij op de stippeltjes de namen staan. En wel zo dat ze in alfabetische
volgorde staan.
Aanwijzing :
Als je de namen aangeeft met n1, n2 en n3 en n1="Piet" en n2="Klaas" dan geldt n1 > n2
Alfabetisch de eerste naam vind je zo:
Als n1<=n2 en n1<=n3 dan is dat n1. (dat programmeer je zo: if (n1<=n2) and (n1<=n3) then eerste=n1)
Als n2<=n1 en n2<=n3 dan is dat n2. En als n3<=n1 en n3<=n2 dan is het n3.
Daarna de middelste naam op dezelfde manier.
En daarna de laatste naam op dezelfde manier.
Kijk goed naar de programma's uit 1.2
En denk er om dat, als er aan twee voorwaarden voldaan moet zijn, het als volgt geprogrammeerd wordt:
if (.........) and (............) then ...........;
-
Een kwadratische vergelijking is van de vorm ax2 + bx + c = 0
Zo'n vergelijking kun je oplossen met de abc-formule.
Maak een programma waarin je om de waarden van a, b en c vraagt, en dat dan de oplossing van de
vergelijking geeft.
Doe dat op de volgende manier:
Op de eerste regel wordt om de waarde van a gevraagd: "a = ", op de tweede regel "b = "
en op de derde regel "c = "
Als de drie waarden zijn ingevoerd verschijnt er op de volgende regel:
"D =" en daarachter de waarde van de discriminant
( D = b2 - 4ac )
Daaronder komt "x1 =" en daarachter de waarde van de eerste oplossing
( x1 = (-b + √ D)/(2a) ), tenminste als die oplossing bestaat.
Als die oplossing niet bestaat, dus als D < 0, dan moet er achter "x1 =" "bestaat niet" verschijnen.
En daar weer onder verschijnt "x2 =" en daarachter de waarde van de van de tweede oplossing
( x1 = (-b - √ D)/(2a) ) als die bestaat, en als die oplossing niet bestaat
moet er "bestaat niet" verschijnen.
Aanwijzing :
Als de waarden van a, b en c zijn ingevoerd dan moet eerst de discriminant D = b 2 - 4ac worden
berekend, en afgedrukt.
Als D<0 is dan moet er "x1 = bestaat niet" en "x2 = bestaat niet" worden afgedrukt.
En anders moeten de twee oplossingen x1 = (-b + √ D)/(2a) en
x2 = (-b - √ D)/(2a) worden berekend en worden afgedrukt.
√ D bereken je in Pascal m.b.v. de opdracht sqrt(D)
Zie voor het gebruik van if (..............) then (................) goed naar
de programma's uit 1.2 van Pascal
-
Als je 93 cent moet betalen en je hebt alleen centen, dubbeltjes (van 10 cent) en twintigjes (van 20 cent)
bij je, dan geef je 4 twintigjes, 1 dubbeltje en 3 centen als je met zo weinig munten wilt betalen.
Maak een programma waarin gevraagd wordt "Geef een bedrag in centen : "
En als het bedrag is ingevoerd verschijnt er in de regel er onder
"Aantal twintigjes :" met het juiste aantal er achter.
Op de volgende regel verschijnt "Aantal dubbeltjes :" met het juiste aantal er achter.
En daar onder "Aantal centen :" met het juiste aantal er achter.
De aantallen moeten zo worden berekend dat het totaal aantal munten zo klein mogelijk is.
Aanwijzing :
Als je het aantal centen c noemt, en het aantal twintigjes t, dan geldt: t := c div 20
Daarna moet worden berekend hoeveel centen er over blijven (c := c - 20*t of c := c mod 20)
Vervolgens moet het aantal dubbeltjes worden berekend, dat gaat bijna net zo als met de twintigjes.
En tenslotte moet er worden berekend hoeveel centen er dan nog overblijven.
Kijk goed naar het eerste programma uit hoofdstuk 1.
-
Als je een lat van 465 cm hebt dan kun je zeggen dat die lat 4 meter en 6 dm en 5 cm is.
Maak een programma waarin gevraagd wordt "Geef een lengte in cm : "
En als die lengte is ingevoerd verschijnt er in de regel er onder
"Aantal meters :" met het juiste aantal er achter.
Op de volgende regel verschijnt "Aantal decimeters :" met het juiste aantal er achter.
En daar onder "Aantal centimeters :" met het juiste aantal er achter.
Aanwijzing :
Als je de lengte in cm aangeeft met c, en het aantal meters met m, dan geldt: m := c div 100
Daarna moet worden berekend hoeveel cm er over blijft (c := c - 100*m of c := c mod 100)
Vervolgens moet het aantal dm worden berekend, dat gaat bijna net zo als met de meters.
En tenslotte moet er worden berekend hoeveel cm er dan nog overblijft.
Kijk goed naar het eerste programma uit hoofdstuk 1.
-
Als iets 200 minuten duurt, dan kun je zeggen dat het 3 uren, 1 kwartier en 5 minuten duurt.
Maak een programma waarin gevraagd wordt "Geef een tijd in minuten : "
En als die tijd is ingevoerd verschijnt er in de regel er onder
"Aantal uren :" met het juiste aantal er achter.
Op de volgende regel verschijnt "Aantal kwartieren :" met het juiste aantal er achter.
En daar onder "Aantal minuten :" met het juiste aantal er achter.
Aanwijzing :
Als je het aantal uren u noemt, en het aantal minuten t, dan geldt: u := t div 60
Daarna moet worden berekend hoeveel minuten er over blijven (t := t - 60*u of t := t mod 60)
Vervolgens moet het aantal kwartieren worden berekend, dat gaat bijna net zo als met de uren.
En tenslotte moet er worden berekend hoeveel minuten er dan nog overblijven.
Kijk goed naar het eerste programma uit hoofdstuk 1.
-
Maak een programma waarin gevraagd wordt "Hoe lang ben je (in centimeters) " .
Als de lengte is ingevoerd wordt er gevraagd "Hoeveel weeg je (in kg) "
Als het gewicht is ingevoerd wordt er gevraagd "Ben je man (m) of vrouw (v), tik m of v in "
Als dat is ingevoerd wordt de Quetelet-index berekend en afgedrukt, en er wordt gemeld of je te zwaar bent of niet.
De Quetelet-index (QI) bereken je zo: QI=gewicht/(lengte*lengte), maar bij vrouwen wordt de lengte eerst verminderd met
6 cm.
Als de QI tussen 20 en 25 zit is het goed.
Als QI>25 dan is de persoon te zwaar, bij QI>30 is er een ernstig overgewicht.
Als QI<20 dan is de persoon te licht, bij QI<15 is er een ernstig ondergewicht.
(dit geldt voor volwassenen, bij kinderen zijn de getallen anders)
Aanwijzing :
-
Maak een programma waarin gevraagd wordt "Geef je pincode " .
Als de pincode is ingevoerd wordt er gevraagd "Hoeveel geld wil je pinnen "
(We gaan ervan uit dat de persoon € 1000,- op zijn rekening heeft, en dat zijn pincode 3192 is)
Als het bedrag is ingevoerd wordt er eerst gecontroleerd of de juiste pincode is ingevoerd.
Als die niet goed is dan verschijnt er op het scherm: "Onjuiste pincode", en er wordt gestopt.
Als de pincode goed is maar het bedrag is meer dan € 1000,- dan verschijnt er: "Het saldo is niet toereikend",
en er wordt gestopt.
En anders verschijnt er: "OK. Uw nieuwe saldo is ..." (met op de puntjes het nieuwe saldobedrag)
Aanwijzing :
-
Maak een programma waarin om een getal gevraagd wordt. Als dat getal is ingevoerd dan wordt de tafel
van dat getal afgedrukt, dus als er 7 is ingevoerd: 1 x 7 = 7, 2 x 7 = 14, enz. t/m 10 x 7
Aanwijzing :
-
Maak een programma waarin om een getal gevraagd wordt. Als dat getal (dat we g noemen) is ingevoerd
dan wordt
de tafel van 8 afgedrukt, die bestaat uit g regels, dus bijv. 1 x 8 = 8, 2 x 8 = 16, enz. t/m g x 8
Aanwijzing :
-
Maak een programma waarin om een getal gevraagd wordt. Als dat getal (dat we g noemen) is ingevoerd
dan wordt een tabel afgedrukt
met kwadraten, die bestaat uit g regels, dus bijv. 1 in het kwadraat = 1, 2 in het kwadraat = 4, enz.
t/m g in het kwadraat
Aanwijzing :
-
Maak een programma waarin om een getal gevraagd wordt. Als dat getal (dat we g noemen) is ingevoerd
dan wordt een tabel afgedrukt
met wortels, die bestaat uit g regels, dus bijv. de wortel uit 1 = 1, de wortel uit 2 = 1.41, enz. t/m
de wortel uit g
Aanwijzing :
-
Maak een programma waarin om een getal gevraagd wordt. Als dat getal (dat we g noemen) is ingevoerd
dan wordt er een tabel afgedrukt
met de derde machten, die bestaat uit g regels, dus bijv. 1 tot de derde = 1, 2 tot de derde = 8, enz. t/m
g tot de derde
Aanwijzing :
-
Maak een programma waarin om een zin wordt gevraagd. En op de tweede regel wordt gevraagd om een
letter. En als die zin en die letter zijn ingevoerd dan wordt geteld en
afgedrukt hoevaak die letter in de zin voorkomt.
Aanwijzing :
-
Maak een programma waarin gevraagd wordt om een getal.
Als dat getal (dat we g noemen) is ingevoerd
dan wordt er g keer met een dobbelsteen gegooid.
En daarna wordt afgedrukt hoevaak er een zes is gegooid.
Aanwijzing :
-
Maak een programma waarin twintig keer achter elkaar gevraagd wordt een getal in te typen.
En daarna wordt afgedrukt hoevaak het getal 8 bij die getallen voorkwam.
Aanwijzing :
-
Maak een programma waarin om een getal tussen 1 en 6 wordt gevraagd. Als dat getal (dat we g
noemen) is ingevoerd dan wordt er 100 keer met een dobbelsteen gegooid.
En daarna wordt afgedrukt hoevaak het getal g is gegooid.
Aanwijzing :
-
Maak een programma waarin waarin er een willekeurige som op het scherm verschijnt, zoiets
als 24 + 37 =, waarbij de twee gehele getallen tussen 20 en 50 zitten.
Er moet een antwoord worden ingevuld. En nadat het is ingevuld
wordt gekeken of het goed was. Als het goed was verschijnt er: Goed zo, en anders verschijnt hetzelfde
sommetje nog eens, net zolang tot het goed beantwoord is.
Aanwijzing :
Hoe je er voor kunt zorgen dat er een optelsom verschijnt kun je nalezen in
paragraaf 1.2 van Pascal
En hoe kun je er voor zorgen dat de som herhaald wordt als het antwoord fout was ?
Gebruik daarvoor de opdracht:
while (antwoord<>a+b) do
BEGIN
....................
END;
Kijk ook goed naar de programma's in
paragraaf 1.4 van Pascal
-
Maak een programma waarin waarin er een willekeurige som op het scherm verschijnt, zoiets
als 24 + 37 =, waarbij de twee gehele getallen tussen 20 en 50 zitten.
Er moet een antwoord worden ingevuld. En nadat het is ingevuld
wordt gezegd of het goed of fout is, en verschijnt er ook hoelang erover gedaan is (het aantal seconden)
Aanwijzing :
Hoe je er voor kunt zorgen dat er een optelsom verschijnt kun je nalezen in
paragraaf 1.2 van Pascal
De tijd vraag je op m.b.v. de opdracht GetTime(uur,minuut,seconde)
(daarbij zijn uur, minuut en seconde en honderdste variabelen van het type word. Dat zijn
niet-negatieve
getallen, ongeveer hetzelfde als integer)
Als je die opdracht geeft, en het is 12,5 min. over 10, dan krijgt uur de waarde 10, minuut de waarde 12,
seconde de waarde 30).
Die tijd zet je om in alleen seconden: tijd:=uur*3600+minuut*60+seconde
Die opdracht moet je geven voor de som verschijnt (tijd1), en nadat het goede antoord is gegeven (tijd2).
En dan moet je de tussentijd laten berekenen (tijd2-tijd1).
-
Maak een programma waarin waarin er een willekeurige som op het scherm verschijnt, zoiets
als 24 + 37 =, waarbij de twee gehele getallen tussen 20 en 50 zitten.
Er moet een antwoord worden ingevuld. En nadat het is ingevuld
wordt gekeken of het goed was. Als het goed was verschijnt er: Goed zo! en dan stopt het programma.
Als het fout was verschijnt er: Fout, je krijgt nog een som. En dan verschijnt er een nieuwe som.
Dat gaat net zolang door tot er een goed antwoord wordt gegeven.
Aanwijzing :
Hoe je er voor kunt zorgen dat er een optelsom verschijnt kun je nalezen in
paragraaf 1.2 van Pascal
En hoe kun je er voor zorgen er steeds een nieuwe som verschijnt als het antwoord fout is ?
Gebruik daarvoor de opdracht:
while (antwoord<>a+b) do
BEGIN
....................
END;
Kijk ook goed naar de programma's in
paragraaf 1.4 van Pascal
-
Maak een programma waarin waarin er een willekeurige som op het scherm verschijnt, zoiets
als 24 + 37 =, waarbij de twee gehele getallen tussen 20 en 50 zitten.
Er moet een antwoord worden ingevuld. En nadat het is ingevuld
wordt gekeken of het goed was. Als het fout was verschijnt er: Fout, sufferd, en dan stopt het programma.
Als het goed was verschijnt er: Goedzo, je krijgt nog een som. En dan verschijnt er een nieuwe som.
Dat gaat net zolang door tot er een fout antwoord wordt gegeven.
Aanwijzing :
Hoe je er voor kunt zorgen dat er een optelsom verschijnt kun je nalezen in
paragraaf 1.2 van Pascal
En hoe kun je er voor zorgen dat er steeds een nieuwe som verschijnt als het antwoord goed is ?
Gebruik daarvoor de opdracht:
while (antwoord=a+b) do
BEGIN
....................
END;
Kijk ook goed naar de programma's in
paragraaf 1.4 van Pascal
-
Maak een programma waarin gevraagd wordt "Geef de tafel van : "
En op de tweede regel wordt gevraagd "tot hoever:"
En als die getallen zijn ingevoerd verschijnt de tafel van het getal dat is ingevoerd op de eerste
regel, en dat gaat niet tot 10 door maar tot het getal dat op de tweede regel is ingevoerd.
Dus als achter "Geef de tafel van:" het getal 7 is ingevoerd, en achter "tot hoever" is het getal 15
ingevoerd dan verschijnt er 1 x 7 = 7 , 2 x 7 = 14 enz. t/m 15 x 7 = 105 (onder elkaar)
Aanwijzing :
Hoe zorg je er voor dat iets herhaald wordt ?
Als je de volgende programmaregels invoert:
For i: = 1 to 15 do
...................................
dan worden de opdrachten op de stippeltjes 15 keer uitgevoerd, en i doorloopt daarbij
achtereenvolgens de waarden 1 tot en met 15
Kijk goed naar de programma's uit 1.3 van Pascal
-
Maak een programma waarin gevraagd wordt "Geef een kapitaal:"
En op de tweede regel wordt gevraagd "hoeveel % rente ? "
En als die twee getallen zijn ingevoerd dan verschijnt op de volgende regels
de waarde van het kapitaal na 1, 2, 3, ... jaren (waarbij er elk jaar rente bij komt, zoveel procent als
op de tweede regel is ingevoerd).
En dat gaat net zo lang door tot het kapitaal twee keer zo groot is geworden.
Als achter "Geef een kapitaal" dus 1000 is ingevoerd, en achter "hoeveel % rente?" het getal 2, dan
wordt er net zo lang doorgegaan tot het kapitaal 2000 euro of meer is geworden.
Aanwijzing :
Hoe zorg je er voor dat iets herhaald wordt tot een bepaalde waarde bereikt wordt?
Als je de volgende programmaregels invoert:
While (k<2000) do
BEGIN
...................................
...................................
END
dan worden de opdrachten op de stippeltjes net zo lang uitgevoerd als de waarde van k kleiner dan 2000 is. Er
wordt dan dus gestopt met herhalen als k>=2000 is
Als de rente r % is en het kapitaal k, dan is het bedrag aan rente k*r/100,
en het nieuwe kapitaal na een jaar is dan dus k + k*r/100
Kijk goed naar de programma's uit 1.4 van Pascal
-
Maak een programma waarin gevraagd wordt "Aantal keer gooien:"
En als dat aantal is ingevoerd dan verschijnt op de volgende regel "Aantal zessen:"
en daar achter het aantal zessen dat is geteld.
De computer moet dus het gooien met een dobbelsteen simuleren,
net zo vaak als is ingevoerd op de eerste regel. Er wordt geteld hoe vaak er een zes wordt
gegooid, en dat aantal verschijnt op de tweede regel.
Aanwijzing :
In paragraaf 1.2 van Pascal heb je gezien dat
g:=RANDOM(50); een getal oplevert 0 en 50. Dus g:=RANDOM(50)+1;
levert een getal op tussen 1 en 51.
Met zo'n soort opdracht kun je ook een willekeurig getal tussen 1 en 6 krijgen, en dan simuleer je
dus het gooien met een dobbelsteen.
Hoe zorg je er voor dat iets herhaald wordt ?
Als je de volgende programmaregels invoert:
For i: = 1 to 15 do
BEGIN
...................................
...................................
END;
dan worden de opdrachten op de stippeltjes 15 keer uitgevoerd, en i doorloopt daarbij
achtereenvolgens de waarden 1 tot en met 15
Kijk goed naar de programma's uit 1.3 van Pascal
Hoe zorg je er voor dat er één bij iets opgeteld wordt ?
Kijk daarvoor goed naar het programma uit 1.4 van Pascal
Kijk eventueel ook naar het programma uit 2.4 van Pascal
-
Maak een programma waarin in het midden van het scherm afgeteld wordt.
De eerste seconde staat er 20 in het midden, de volgende seconde 19, dan 18, enz, en tenslotte 1,
en daarna staat er Boem!!! en dat blijft ook staan.
Aanwijzing :
-
Maak een programma waarin de computer een getal onder de 100 bedenkt, en dat moet geraden worden.
Op de eerste regel wordt gevraagd "Geef een getal onder de 100 : "
En als dat getal is ingevoerd verschijnt er: "te hoog, raad nog eens " als het te hoog was, en
"te laag, raad nog eens" als het te laag was.
En dan kan er opnieuw een getal worden ingevoerd. Dit gaat net zolang door tot het getal geraden wordt.
En als het juist is verschijnt er: "Goed zo!"
Aanwijzing :
Kijk goed naar de programma's uit 1.2
Daar lees je ook hoe je moet programmeren dat de computer een getal bedenkt.
while (antwoord<>getal) do
BEGIN
....................
END;
Kijk ook goed naar de programma's in
paragraaf 1.4 van Pascal
-
Maak een programma om de totale tijd, de totale afstand en de gemiddelde snelheid van een renner
in de Ronde van Frankrijk te berekenen.
Op de eerste regel wordt gevraagd "Geef het aantal etappes"
Daarna moet er voor elke etappe worden ingevoerd hoe lang de etappe was (in km) en de tijd
die de renner nodig had voor de etappe (in minuten).
Dus als er achter "Geef het aantal etappes" bijv. 3 is ingevoerd, dan verschijnt er op de volgende regels:
Hoe lang was etappe 1
Tijd voor etappe 1:
Hoe lang was etappe 2
Tijd voor etappe 2:
Hoe lang was etappe 3
Tijd voor etappe 3:
Als die getallen zijn ingevoerd wordt daaronder de totale afstand (in km), de totale tijd (in minuten)
en de gemiddelde snelheid (in km/u) van de renner afgedrukt.
Aanwijzing :
-
Maak een programma om de opbrengst van een kaartspelletje te berekenen.
Per gewonnen punt verdient een speler tien cent, per verloren punt verliest hij tien cent.
De gebruiker begint met 5 euro.
Op de eerste regel wordt gevraagd "Geef het aantal spelletjes"
Daarna moet er voor elk spelletje worden ingevoerd of er gewonnen (=0) of verloren (=1) is.
En het aantal punten dat is gewonnen of verloren.
Dus als er achter "Geef het aantal spelletjes" bijv. 3 is ingevoerd, dan verschijnt er op de
volgende regels:
Spel 1: Gewonnen (=1) of verloren (=0) ?
aantal punten bij spel 1:
Spel 2: Gewonnen (=1) of verloren (=0) ?
aantal punten bij spel 2:
Spel 3: Gewonnen (=1) of verloren (=0) ?
aantal punten bij spel 3:
Als die getallen zijn ingevoerd (ook bij gewonnen of verloren moet een getal worden ingevoerd, en dan
geldt 1=gewonnen en 0=verloren) dan wordt daaronder afgedrukt hoeveel geld de speler na afloop heeft.
Aanwijzing :
-
Maak een programma waarin gevraagd wordt "Geef een binair getal:"
En als zo'n binair getal is ingevoerd (je mag er van uit gaan dat het uit 8 bits bestaat) dan verschijnt
op de volgende regel "Decimaal:"
en daar achter de decimale waarde van het ingevoerde binaire getal.
Aanwijzing :
Declareer de variabele voor het binaire getal als string b
Dan kun je de volgende opdrachten gebruiken:
a := b[5] is de vijfde letter van de string b
val(a,g,c); zorgt er voor dat g de waarde van de string a oplevert
(en c krijgt de waarde 0 als dat goed gaat, als c ongelijk aan 0 wordt dan is er iets fout; daar heb je
verder niets mee te maken)
LENGTH(b) is het aantal tekens van de string b
Het laatste cijfer moet keer 1, het cijfer daarvoor keer 2, het cijfer daarvoor keer 4 enz.
Hoe doorloop je iets achterstevoren ?
Als je de volgende programmaregels invoert:
For i := 20 downto 1
...................................
dan worden de opdrachten op de stippeltjes 20 keer uitgevoerd, en i doorloopt daarbij
achtereenvolgens de waarden 20 tot en met 1 (dus van groot naar klein)
-
Maak een programma waarin gevraagd wordt "Geef een getal tussen 10 en 100:"
En als dat getal is ingevoerd dan verschijnt
op de volgende regel "Dit is een priemgetal" ,als het een priemgetal is, en "Dit is geen
priemgetal" als het geen priemgetal is.
(een priemgetal is een getal dat alleen deelbaar is door 1 en door zichzelf. Dus bijv. 13 is een
priemgetal maar 14 is geen priemgetal)
Aanwijzing :
Als je wilt controleren of een getal a een priemgetal is, dan moet je
controleren of het deelbaar is door 2, 3, 4, enz. t/m a-1. Zodra het door één
van die getallen deelbaar is dan is het geen priemgetal. Op blz. 243 van je boek staat een
programma voor priemgetallen in Basic.
Hoe zorg je er voor dat het voor die getallen gecontroleerd wordt ?
Als je de volgende programmaregels invoert:
For i := 2 to a-1 do
BEGIN
if ........... then ...............;
END;
Hoe controleer je of een getal ergens deelbaar door is ?
a is deelbaar door i als a mod i = 0
(Immers de rest bij de deling is dan 0, en met a mod i wordt die rest bedoeld)
-
Maak een programma waarin gevraagd wordt "Geef de teller van een breuk : "
En op de tweede regel wordt gevraagd "Geef de noemer van de breuk : "
en daarachter een tekstvenster waarin de teller van een breuk kan worden ingevoerd.
Als de teller en de noemer zijn ingevoerd wordt de breuk vereenvoudigd (als dat kan) en de nieuwe
teller en noemer worden afgedrukt, op de derde regel verschijnt "De nieuwe teller is ", met de nieuwe
teller er achter. En op de vierde regel verschijnt "De nieuwe noemer is ", met de nieuwe
noemer er achter.
Als de breuk niet te vereenvoudigen is, dan zijn de nieuwe teller
en noemer gelijk aan de oude teller en noemer.
Aanwijzing :
Als je de computer wilt laten controleren of de breuk a/b te vereenvoudigen is
dan moet je laten controleren of a en b allebei deelbaar zijn door 2, 3 , 4 enz. t/m a
(je mag er van uit gaan dat a kleiner of gelijk aan b is)
Hoe zorg je er voor dat het voor die getallen gecontroleerd wordt ?
Als je de volgende programmaregels invoert:
For i := 2 to a do
BEGIN
if (.........) and (..........) then ................;
BEGIN;
Hoe controleer je of een getal ergens deelbaar door is ?
a en b zijn beide deelbaar door i als (a mod i = 0) and (b mod i = 0)
(Immers de rest bij de deling is dan 0, en met a mod i wordt die rest bedoeld)
-
Maak een programma waarin gevraagd wordt "Hoeveel zessen wil je ?"
Als dat aantal is ingevoerd simuleert de computer het gooien met een dobbelsteen, en er wordt geteld
hoe vaak er een zes wordt gegooid en ook hoe vaak er wordt gegooid.
Er wordt net zo lang doorgegaan tot het aantal zessen gelijk is aan het ingevoerde aantal.
Daarna verschijnt er op de tweede regel "Aantal keer dat er gegooid moest worden :" en daarachter
het gegooide aantal.
Aanwijzing :
In paragraaf 1.2 van Pascal heb je gezien dat
g:=RANDOM(50); een getal oplevert 0 en 50. Dus g:=RANDOM(50)+1;
levert een getal op tussen 1 en 51.
Met zo'n soort opdracht kun je ook een willekeurig getal tussen 1 en 6 krijgen, en dan simuleer je
dus het gooien met een dobbelsteen.
Hoe zorg je er voor dat iets herhaald wordt zolang het gevraagde aantal nog niet bereikt is ?
Als je de volgende programmaregels invoert:
While (aantalzessen < aantal) do
BEGIN
...................................
...................................
END;
dan worden de opdrachten op de stippeltjes net zo lang uitgevoerd als aantalzessen < aantal, dus zodra
aantalzessen=aantal wordt er gestopt met gooien.
Kijk goed naar de programma's uit 1.3 van Pascal
Hoe zorg je er voor dat er één bij iets opgeteld wordt ?
Kijk daarvoor goed naar het programma uit 1.4 van Pascal
Kijk eventueel ook naar het programma uit 2.4 van Pascal
-
Maak een programma waarin gevraagd wordt "Tot hoever wil je de tabel:"
Zodra je dat getal hebt ingevoerd verschijnt op de volgende regels een tabel, die er zo uitziet:
1 1 1
2 4 8
3 9 27
4 16 64
enz.
Dus de getallen 1, 2, 3, 4, enz. met daarachter de kwadraten van die getallen
(12, 22, 32, 42, enz.)
en daarachter de derde machten van die getallen
(13, 23, 33, 43, enz.)
En die tabel moet doorgaan tot het ingevoerde getal."
Aanwijzing :
Hoe zorg je er voor dat iets herhaald wordt ?
Als je de volgende programmaregels invoert:
For i := 1 to 15 do
BEGIN
...................................
...................................
END;
dan worden de opdrachten op de stippeltjes 15 keer uitgevoerd, en i doorloopt daarbij
achtereenvolgens de waarden 1 tot en met 15
-
Maak een programma waarin midden op het scherm (regel 12, kolom 30) een optelsom verschijnt
(zoiets als 12 + 17 = , de getallen zijn
willekeurige getallen tussen 10 en 20)
Als het antwoord is ingevoerd en goed is verschijnt er op de volgende regel "Je tijd was " met het aantal
seconden er achter.
Als het antwoord fout is dan wordt het antwoord gewist, en er kan een nieuw antwoord worden
ingevoerd (op de zelfde plaats). Er wordt op die manier net zo lang doorgegaan tot het antwoord goed is,
en daarna wordt de tijd afgedrukt. (dus het aantal seconden dat verlopen is voor het goede antwoord is
gegeven)
Aanwijzing :
Hoe je er voor kunt zorgen dat er een optelsom verschijnt kun je nalezen in
paragraaf 1.2 van Pascal
En hoe kun je er voor zorgen dat de som herhaald wordt als het antwoord fout was ?
Gebruik daarvoor de opdracht:
while (antwoord<>a+b) do
BEGIN
....................
END;
Kijk ook goed naar de programma's in
paragraaf 1.4 van Pascal
De tijd vraag je op m.b.v. de opdracht GetTime(uur,minuut,seconde)
(daarbij zijn uur, minuut en seconde variabelen van het type word. Dat zijn niet-negatieve
getallen, ongeveer hetzelfde als integer)
Als je die opdracht geeft, en het is 12,5 min. over 10, dan krijgt uur de waarde 10, minuut de waarde 12,
seconde de waarde 30).
Die tijd zet je om in alleen seconden: tijd:=uur*3600+minuut*60+seconde
Die opdracht moet je geven voor de som verschijnt (tijd1), en nadat het goede antoord is gegeven (tijd2).
En dan moet je de tijd laten berekenen die daar tussen zit (tijd2-tijd1).
-
Maak een programma waarin een gevraagd wordt "Geef een getal: "
Als dat getal is ingevoerd verschijnt op de volgende regel "Geef het volgende getal (0=stoppen) "
En zo gaat dat steeds door, net zolang tot er een 0 wordt ingevoerd.
Nadat een 0 is ingevoerd verschijnt er op de volgende regel "Aantal ingevoerde getallen : " en
daarachter het aantal getallen dat is ingevoerd (zonder de laatste 0).
Daaronder staat "Som van de getallen : " en daarachter de som van de ingevoerde getallen.
Aanwijzing :
Hoe zorg je er voor dat iets herhaald wordt zolang er geen 0 is ingevoerd ?
Als je de volgende programmaregels invoert:
While (getal<>0) do
BEGIN
...................................
...................................
END;
dan worden de opdrachten op de stippeltjes net zo lang uitgevoerd als (getal <>0), dus zodra
het getal 0 is wordt er gestopt.
Kijk goed naar de programma's uit 1.4 van Pascal
Daar lees je ook hoe er steeds één bij het aantal wordt opgeteld.
-
Maak een programma waarin gevraagd wordt "Geef getal nummer 1"
Als dat eerste getal is ingevoerd verschijnt er op de tweede regel "Geef getal nummer 2" .
Als dat getal is ingevoerd verschijnt er op de derde regel "Geef getal nummer 3" , enz.
Dit gaat zo lang door tot er een 0 wordt ingevoerd.
Daarna verschijnen de ingevoerde getallen op de volgende regel nog eens achter elkaar, maar in omgekeerde
volgorde.
Aanwijzing :
Gebruik een array voor de getallen, ga er van uit dat er niet meer dan 100 getallen worden ingevoerd.
Declareer die rij op de volgende manier: var getal[1..100] of integer;
Je kunt dan de variabelen getal[1], getal[2], getal[3], enz. t/m getal[100] gebruiken, dus in het
algemeen getal[i]
Het i-de getal kan op de volgende manier worden opgevraagd: readln(getal[i]
-
Maak een programma waarin de woorden "Ik daal" op de eerste regel worden afgedrukt.
Een seconde later zijn de zelfde woorden te zien op de tweede regel (en niet meer op de eerste).
Weer een seconde later staan die woorden op de derde regel (en niet meer op de tweede), en zo
gaat dat door tot en met de twintigste regel. En daar blijven de woorden staan.
Aanwijzing :
Met de opdracht gotoxy(i,1); stuur je de cursor naar regel nummer i
Met de opdracht delay(1000); zorg je er voor dat er een seconde niets gebeurd, en dat de
afgedrukte tekst dus blijft staan.
Door spaties af te drukken op de plaats van de woorden zorg je er voor dat de vorige woorden
gewist worden.
-
Maak een programma waarin gevraagd wordt "Geef getal nummer 1"
Als dat eerste getal is ingevoerd verschijnt er op de tweede regel "Geef getal nummer 2" .
Als dat getal is ingevoerd verschijnt er op de derde regel "Geef getal nummer 3" , enz.
Dit gaat zo door tot er tien getallen zijn ingevoerd.
Daarna verschijnen de ingevoerde getallen op de volgende regel nog eens achter elkaar, maar in omgekeerde
volgorde.
Aanwijzing :
Gebruik een array voor de getallen.
Declareer die rij op de volgende manier: var getal[1..10] of integer;
Je kunt dan de variabelen getal[1], getal[2], getal[3], enz. t/m getal[10] gebruiken, dus in het
algemeen getal[i]
Het i-de getal kan op de volgende manier worden opgevraagd: readln(getal[i])
-
Maak een programma waarin gevraagd wordt "Geef naam nummer 1:" en
op de volgende regel wordt gevraagd "Cijfer van nummer 1:"
Als de naam en het cijfer zijn ingevoerd verschijnt op de volgende regel:"Geef naam nummer 2:" en
op de regel er onder "Cijfer van nummer 2"
Zo gaat het verder, tot er vijf namen en cijfers zijn ingevoerd.
Daarna verschijnen die vijf namen en cijfers nog eens op de volgende 5 regels,
telkens een naam en het bijbehorende cijfer achter elkaar.
Aanwijzing :
Gebruik een array voor de namen en cijfers.
Declareer die rij op de volgende manier: var naam[1..5] of string, cijfer[1..5] of real;
Je kunt dan de variabelen naam[1], naam[2], enz. en cijfer[1], cijfer[2], enz. gebruiken, dus in het
algemeen naam[i] en cijfer[i]
De i-de naam kan op de volgende manier worden opgevraagd: readln(naam[i]) en
het i-de cijfer op de volgende manier: readln(cijfer[i])
-
Maak een programma waarin eerst gevraagd wordt "Geef de hoofdstad van Duitsland:" .
Op de tweede regel wordt gevraagd "Geef de hoofdstad van Frankrijk:" .
Zo gaat het verder, ook de hoofdsteden van Engeland, Denemarken, Spanje, Zweden, en Noorwegen worden
gevraagd.
Daarna verschijnen die zeven landen met de zeven gegeven antwoorden nog eens op de volgende 7 regels,
telkens een land en het bijbehorende antwoord er achter elkaar.
Aanwijzing :
Gebruik een array voor de landen en hoofdsteden.
Declareer die rij op de volgende manier: var land[1..7] of string, stad[1..7] of string;
Je kunt dan de variabelen land[1], land[2], enz. en stad[1], stad[2], enz. gebruiken, dus in het
algemeen land[i] en stad[i]
Zet verder in het programma:
land[1]:= "Duitsland";
land[2]:= "Frankrijk";
land[3]:= "Engeland";
enz
De i-de hoofdstad kan op de volgende manier worden opgevraagd: readln(stad[i])
Je kunt de zeven vragen dan in een for-lus vragen en je hoeft dan niet 7 keer dezelfde dingen in te
typen bij het programmeren.
-
Maak een programma waarin eerst gevraagd wordt "Geef de hoofdstad van Duitsland:" .
Als het antwoord gegeven is verschijnt er op de volgende regel "Goedzo" als er "Berlijn" is geantwoord,
en anders verschijnt er "Fout".
Op de volgende regel wordt gevraagd "Geef de hoofdstad van Frankrijk:" .
Als het antwoord gegeven is verschijnt er op de volgende regel "Goedzo" als er "Parijs" is geantwoord,
en anders verschijnt er "Fout".
Zo gaat het verder, ook de hoofdsteden van Engeland, Denemarken, Spanje, Zweden, en Noorwegen worden
gevraagd.
Aanwijzing :
Gebruik een array voor de landen en hoofdsteden.
Declareer die rij op de volgende manier: var land[1..7] of string, stad[1..7] of string;
Je kunt dan de variabelen land[1], land[2], enz. en stad[1], stad[2], enz. gebruiken, dus in het
algemeen land[i] en stad[i]
Zet verder in het programma:
land[1]:= "Duitsland"; stad[1]:="Berlijn";
land[2]:= "Frankrijk";stad[2]:="Parijs";
land[3]:= "Engeland";stad[3]:="Londen";
enz
Je kunt de zeven vragen dan in een for-lus vragen en je hoeft dan niet 7 keer dezelfde dingen in te
typen bij het programmeren.
-
Maak een programma waarin eerst gevraagd wordt "Vertaal in het engels: vader" .
Als het antwoord gegeven is verschijnt er op de volgende regel "Goedzo" als er "father" is geantwoord,
en anders verschijnt er "Fout".
Op de volgende regel wordt gevraagd "Vertaal in het engels: konijn:" .
Als het antwoord gegeven is verschijnt er op de volgende regel "Goedzo" als er "rabbit" is geantwoord,
en anders verschijnt er "Fout".
Zo gaat het verder, ook de vertaling van bruin, doos, zak, schuurtje, groot, slordig, narcis en
zaterdag wordt gevraagd.
Aanwijzing :
Gebruik een array voor de woorden en de vertaling.
Declareer die rij op de volgende manier: var woord[1..7] of string, vertaling[1..7] of string;
Je kunt dan de variabelen woord[1], woord[2], enz. en vertaling[1], vertaling[2], enz. gebruiken, dus in het
algemeen woord[i] en vertaling[i]
Zet verder in het programma:
woord[1]:= "vader"; vertaling[1]:="father";
woord[2]:= "konijn";vertaling[2]:="rabbit";
woord[3]:= "bruin";vertaling[3]:="brown";
woord[4]:= "doos";vertaling[4]:="box";
woord[5]:= "zak";vertaling[5]:="bag";
woord[6]:= "schuurtje";vertaling[6]:="shed";
woord[7]:= "groot";vertaling[7]:="big";
Je kunt de zeven woorden dan in een for-lus vragen en je hoeft dan niet 7 keer dezelfde dingen in te
typen bij het programmeren.
-
Maak een programma waarin een gevraagd wordt "Geef het lotnummer waarop een prijs is gevallen: "
Als dat lotnummer is ingevoerd verschijnt op de volgende regel "Geef het volgende lotnummer waarop een prijs is gevallen: (0=stoppen) "
En zo gaat dat steeds door, net zolang tot er een 0 wordt ingevoerd. (Ga er van uit dat er niet meer dan tien lotnummers zijn waarop
een prijs is gevallen)
Nadat een 0 is ingevoerd verschijnt er op de volgende regel "Welk lotnummer had jij? "
Als dat lotnummer is ingevoerd wordt door het programma gecontroleerd of er een prijs op dat lotnummer is gevallen. En dan verschijnt op het
scherm: "Gefeliciteerd, je hebt een prijs" of "Jammer, geen prijs, volgende keer beter" al naar gelang dat lotnummer wel of niet bij
de prijzen zat.
Aanwijzing :
Gebruik een array voor de lotnummers waarop de prijzen vallen.
Declareer die rij op de volgende manier: var prijs[1..10] of integer;
Je kunt dan de variabelen prijs[1], prijs[2], enz. gebruiken, dus in het
algemeen prijs[i]
Het i-de lotnummer kan op de volgende manier worden opgevraagd: readln(prijs[i])
Hoe zorg je er voor dat iets herhaald wordt zolang er geen 0 is ingevoerd ?
Als je de volgende programmaregels invoert:
While (getal<>0) do
BEGIN
...................................
...................................
END;
dan worden de opdrachten op de stippeltjes net zo lang uitgevoerd als (getal <>0), dus zodra
het getal 0 is wordt er gestopt.
Kijk goed naar de programma's uit 1.4 van Pascal
Controleren of een bepaald lotnummer bij de prijzen voorkomt doe je m.b.v. de opdrachten:
gevonden := false;
for i := 1 to aantal do
if (prijs(i) = lotnummer) then gevonden := true;
Als de variabele gevonden daarna nog de waarde false heeft, dan is het getal dus niet gevonden.
En anders bevat de variabele gevonden de waarde true.
-
Maak een programma waarin op de eerste regel staat :"Naam:" en dan wordt er gewacht tot je een naam invoert.
Op de volgende regel verschijnt dan :"Geboortedatum:" en dan wordt er gewacht tot je de geboortedatum invoert.
Dan verschijnt op de derde regel weer :"Naam:" en dan wordt er gewacht tot je een naam van een andere persoon invoert.
Op de vierde regel verschijnt dan :"Geboortedatum:" en dan wordt er gewacht tot je de geboortedatum van die persoon invoert.
Zo gaat het door, tot er vijf namen met vijf geboortedata zijn ingevoerd.
Daarna wordt het scherm schoongemaakt, en dan verschijnt op de eerste regel:"Geef de naam van één van de vorige personen en
ik geef de geboortedatum.".
Daar onder verschijnt: "Geef de naam:" en dan wordt er gewacht tot je een naam invoert.
Dan verschijnt Op de volgende regel :"De geboortedatum is :" met daar achter de juiste geboortedatum, of er verschijnt: "Deze persoon
komt niet voor bij de ingevoerde namen"
Aanwijzing :
Gebruik een array voor de namen en geboortedata.
Declareer die rij op de volgende manier: var naam[1..5] of string, datum[1..5] of string;
Je kunt dan de variabelen naam[1], naam[2], enz. en datum[1], datum[2], enz. gebruiken, dus in het
algemeen naam[i] en datum[i]
De i-de naam kan op de volgende manier worden opgevraagd: readln(naam[i]) en
de i-de geboortedatum op de volgende manier: readln(datum[i])
Controleren of een bepaalde persoon bij de 5 namen voorkomt doe je m.b.v. de opdrachten:
gevonden := 0;
for i := 1 to 5 do
if (naam(i) = persoon) then gevonden := i;
Als de variabele gevonden daarna nog de waarde 0 heeft, dan is de naam dus niet gevonden.
En anders bevat de variabele gevonden het nummer van de juiste naam.
-
Maak een programma waarin (als we de nummers van de eerste twee opgaven die je moest maken a en b noemen) gevraagd wordt
"Wil je opgave a of opgave b" .
Als er a is ingevoerd dan verschijnt opgave a op het scherm, en als er b is ingevoerd dan verschijnt opgave b op het scherm,
en als er iets anders is ingevoerd dan verschijnt er: "Voer a of b in, nog eens "
En dan kan er nog eens worden gekozen, en dat gaat net zolang door tot één van de twee is gekozen.
Zorg er voor dat opgave a en opgave b in je programma als procedures zijn geprogrammeerd, die met opgavea en opgaveb aangeroepen
kunnen worden.
Aanwijzing :
-
Landen met hoofdsteden
Maak een programma waarin bij de start het bestand LANDEN.TXT wordt ingelezen (zet dat bestand
eerst even in je eigen map)
In dat bestand LANDEN.TXT staan tien landen met de bijbehorende hoofdsteden in 20 regels opgeslagen,
telkens een land en in de regel daarna de bijbehorende hoofdstad.
Vervolgens verschijnt op het scherm: Wat is de hoofdstad van ....., en op de stippeltjes staat het eerste land, dat is ingelezen.
Er wordt gewacht tot er iets wordt ingevoerd, en nadat er op enter is gedrukt verschijnt er "Goedzo" als de juiste hoofdstad
was ingevoerd, en anders "Fout, het is ..." met op de stippen het goede antwoord.
Een seconde later verschijnt er op de volgende regel: Wat is de hoofdstad van ....., en op de stippeltjes staat het tweede land, dat is
ingelezen.
En dan wordt er gewacht tot er een antwoord is gegeven. Er verschijnt weer Goezo of Fout, en zo gaat dat door tot de
tien landen zijn geweest.
Nadat de hoofdstad van het tiende land is ingevoerd verschijnt er weer Goedzo of Fout, maar ook verschijnt er
hoeveel er in totaal goed waren.
Aanwijzing :
Een regel uit een bestand inlezen doe je m.b.v. de opdrachten:
ASSIGN(f,naambestand);
RESET(f);
READLN(f,regel);
Op die eerste regel staat het eerste land, geef dan dus de opdracht land[1] := regel;
Als je daarna de laatste opdracht READLN(f,regel); nog eens geeft
dan wordt de volgende regel ingelezen.
Op die tweede regel staat de eerste hoofdstad, geef dan dus de opdracht hoofdstad[1] := regel
En zo ga je door. Natuurlijk hoef je die opdrachten niet tien keer over te typen, het kan m.b.v.
For i := 1 to 10 do
begin
............. end;
Als je klaar bent met inlezen moet je nog de opdracht close(f); geven.
Zie ook paragraaf 6.6.7.
-
Versje met regelnummers
Maak een programma waarin een Button staat met als opschrift "Leesin" en daar onder een tekstvenster waarin een
versje, dat uit meerdere regels bestaat, kan verschijnen.
Als er op de Leesin-knop wordt geklikt dan wordt het bestand GEDICHT.TXT ingelezen (zet dat bestand
eerst even in de map D:\V4 van je eigen computer)
In dat bestand GEDICHT.TXT staat een gedicht, dat bestaat uit 14 regels (waarvan één lege regel).
Daarna verschijnt dat gedicht in het tekstvenster, met de regelnummers er voor.
En ook wordt er een nieuw bestand aangemaakt met de naam GEDICHT2.TXT.
En in dat bestand staan dezelfde regels als in GEDICHT.TXT maar dan met
de regelnummers ervoor.
Aanwijzing :
Een regel uit een bestand inlezen doe je m.b.v. de opdrachten:
Open naambestand for input as #1
line input #1, regel
Dat is de eerste regel van het gedicht, geef dan dus de opdracht r(1) = regel
Als je daarna de laatste opdracht line input #1, regel nog eens geeft
dan wordt de volgende regel ingelezen.
Dat is de tweede regel van het gedicht, geef dan dus de opdracht r(2) = regel
En zo ga je door. Natuurlijk hoef je die opdrachten niet veertien keer over te typen, het kan m.b.v.
For i = 1 to 14
............. next i
Als je klaar bent met inlezen moet je nog de opdracht close #1 geven.
Zie ook paragraaf 6.4.3. en paragraaf 6.4.4
en paragraaf 6.4.5
Een regel wegschrijven naar een bestand doe je m.b.v. de opdrachten:
Open naambestand for output as #1
print #1, regel
Zie ook paragraaf 6.4.2. voor hoe dat werkt.
-
Geboortedata
Maak een programma waarin bij de start het bestand NAMEN.TXT wordt ingelezen
(zet dat bestand eerst even in je eigen map)
In dat bestand NAMEN.TXT staan tien namen en tien geboortedata in 20 regels opgeslagen.
Telkens staat er een naam op een regel, en in de daarop volgende regel de geboortedatum van die persoon.
De tien namen verschijnen dan op het scherm en de bijbehorende geboortedata ernaast, steeds een naam en de bijbehorende
geboortedatum op een regel.
Dan verschijnt daaronder: Geef een naam. En dan wordt er gewacht tot je een naam invoert.
Daarna verschijnt de geboortedatum van die persoon op de volgende regel, tenminste als één van de tien namen is ingevoerd.
Als er een andere naam is ingevoerd verschijnt er: Onbekende naam.
Aanwijzing :
Een regel uit een bestand inlezen doe je m.b.v. de opdrachten:
ASSIGN(f,naambestand);
RESET(f);
READLN(f,regel);
Op die eerste regel staat de eerste naam, geef dan dus de opdracht naam[1] := regel;
Als je daarna de laatste opdracht READLN(f,regel); nog eens geeft
dan wordt de volgende regel ingelezen.
Op die tweede regel staat de eerste geboortedatum, geef dan dus de opdracht datum[1] := regel
En zo ga je door. Natuurlijk hoef je die opdrachten niet tien keer over te typen, het kan m.b.v.
For i := 1 to 10 do
begin
............. end;
Als je klaar bent met inlezen moet je nog de opdracht close(f); geven.
Zie ook paragraaf 6.6.7.
-
Lotnummers controleren
Maak een programma waarin bij de start het bestand PRIJZEN.TXT wordt ingelezen
(zet dat bestand eerst even in je eigen map)
In dat bestand PRIJZEN.TXT staan twintig getallen in 20 regels opgeslagen, dat zijn de nummers van
loten waarop prijzen zijn gevallen.
Vervolgens verschijnt op het scherm: Wat is je lotnummer?
Er wordt gewacht tot er iets wordt ingevoerd.
Als er een lotnummer is ingevoerd en er is op enter gedrukt, dan controleert het
programma of het ingevoerde lotnummer voorkomt bij de twintig getallen uit het bestand. Als het wel voorkomt
dan is er een prijs op het lotnummer gevallen, en dan verschijnt er "Prijs !" en anders "Geen prijs".
Aanwijzing :
Bij de start wordt het bestand PRIJZEN.TXT ingelezen.
Een regel uit een bestand inlezen doe je m.b.v. de opdrachten:
ASSIGN(f,naambestand);
RESET(f);
READLN(f,regel);
Op die eerste regel staat het eerste lotnummer waar een prijs op valt, geef dan dus de opdracht prijs[1] := regel;
Als je daarna de laatste opdracht READLN(f,regel); nog eens geeft
dan wordt de volgende regel ingelezen.
Op die tweede regel staat het tweede lotnummer waar een prijs op valt, geef dan dus de opdracht prijs[2] := regel
En zo ga je door. Natuurlijk hoef je die opdrachten niet 20 keer over te typen, het kan m.b.v.
For i := 1 to 20 do
begin
............. end;
Als je klaar bent met inlezen moet je nog de opdracht close(f); geven.
Zie ook paragraaf 6.6.7.
Controleren of een bepaald getal bij de 20 nummers voorkomt doe je m.b.v. de opdrachten:
gevonden:=0;
for i:=1 to 20 do
if prijs[i]=getal then gevonden:=i
Als de variabele gevonden daarna nog de waarde 0 heeft, dan is het getal dus niet gevonden.
En anders bevat de variabele gevonden het nummer van het juiste getal.
-
Woorden met engelse vertaling
Maak een programma waarin bij de start het bestand ENGELS.TXT wordt ingelezen
(zet dat bestand eerst even in je eigen map)
In dat bestand ENGELS.TXT staan
tien nederlandse woorden met de bijbehorende vertaling in het engels in 20 regels opgeslagen,
telkens een nederlands woord en in de regel daarna de bijbehorende engelse vertaling.
Vervolgens verschijnt op het scherm: Vertaal in het engels: ....., en op de stippeltjes staat het eerste nederlands woord,
dat is ingelezen.
Er wordt gewacht tot er iets wordt ingevoerd, en nadat er op enter is gedrukt verschijnt er "Goedzo" als de juiste vertaling
was ingevoerd, en anders "Fout, het is ..." met op de stippen het goede antwoord.
Een seconde later verschijnt er op de volgende regel: Vertaal in het engels: ....., en op de stippeltjes staat het tweede
nederlands woord, dat is ingelezen.
En dan wordt er gewacht tot er een antwoord is gegeven. Er verschijnt weer Goezo of Fout, en zo gaat dat door tot de
tien nederlandse woorden zijn geweest.
Nadat de vertaling van het tiende woord is ingevoerd verschijnt er weer Goedzo of Fout, maar ook verschijnt er
hoeveel er in totaal goed waren.
Aanwijzing :
Een regel uit een bestand inlezen doe je m.b.v. de opdrachten:
ASSIGN(f,naambestand);
RESET(f);
READLN(f,regel);
Op die eerste regel staat het eerste nederlandse woord, geef dan dus de opdracht woord[1] := regel;
Als je daarna de laatste opdracht READLN(f,regel); nog eens geeft
dan wordt de volgende regel ingelezen.
Op die tweede regel staat de vertaling van het eerste woord, geef dan dus de opdracht vertaling[1] := regel
En zo ga je door. Natuurlijk hoef je die opdrachten niet tien keer over te typen, het kan m.b.v.
For i := 1 to 10 do
begin
............. end;
Als je klaar bent met inlezen moet je nog de opdracht close(f); geven.
Zie ook paragraaf 6.6.7.
-
Sorteren van een reeks getallen
Maak een programma waarin bij de start het bestand PRIJZEN.TXT wordt ingelezen
(zet dat bestand eerst even in je eigen map)
In dat bestand PRIJZEN.TXT staan twintig getallen in 20 regels opgeslagen.
Zorg er voor dat die getallen ook achter elkaar op het scherm verschijnen.
Daarna zorgt het programma er voor dat de getallen gesorteerd worden.
En op het scherm verschijnt op de volgende regel:"Gesorteerd:" en
daarachter de getallen nog eens, maar nu gesorteerd van klein naar groot.
Aanwijzing :
Bij de start wordt het bestand PRIJZEN.TXT ingelezen.
Een regel uit een bestand inlezen doe je m.b.v. de opdrachten:
ASSIGN(f,naambestand);
RESET(f);
READLN(f,regel);
Op die eerste regel staat het eerste getal, geef dan dus de opdracht getal[1] := regel;
Als je daarna de laatste opdracht READLN(f,regel); nog eens geeft
dan wordt de volgende regel ingelezen.
Op die tweede regel staat het tweede getal, geef dan dus de opdracht getal[2] := regel
En zo ga je door. Natuurlijk hoef je die opdrachten niet 20 keer over te typen, het kan m.b.v.
For i := 1 to 20 do
begin
............. end;
Als je klaar bent met inlezen moet je nog de opdracht close(f); geven.
Zie ook paragraaf 6.6.7.
Hoe je er voor zorgt dat de getallen worden gesorteerd lees je in paragraaf 6.5.2.
-
Sorteren van een aantal namen.
Maak een programma waarin bij de start het bestand ENGELS.TXT wordt ingelezen
(zet dat bestand eerst even in je eigen map)
In dat bestand ENGELS.TXT staan
tien nederlandse woorden met de bijbehorende vertaling in het engels in 20 regels opgeslagen,
telkens een nederlands woord en in de regel daarna de bijbehorende engelse vertaling.
Zorg er voor dat die woorden met de vertaling ook achter elkaar op het scherm verschijnen, telkens een nederlands woord met de
engelse vertaling erachter.
Daarna zorgt het programma er voor dat de nederlandse woorden gesorteerd worden.
En op het scherm verschijnt op de volgende regel:"Gesorteerd:" en
daaronder de nederlandse woorden nog eens, maar nu gesorteerd, en de juiste vertaling erachter.
Aanwijzing :
Een regel uit een bestand inlezen doe je m.b.v. de opdrachten:
ASSIGN(f,naambestand);
RESET(f);
READLN(f,regel);
Op die eerste regel staat het eerste nederlandse woord, geef dan dus de opdracht woord[1] := regel;
Als je daarna de laatste opdracht READLN(f,regel); nog eens geeft
dan wordt de volgende regel ingelezen.
Op die tweede regel staat de vertaling van het eerste woord, geef dan dus de opdracht vertaling[1] := regel
En zo ga je door. Natuurlijk hoef je die opdrachten niet tien keer over te typen, het kan m.b.v.
For i := 1 to 10 do
begin
............. end;
Als je klaar bent met inlezen moet je nog de opdracht close(f); geven.
Zie ook paragraaf 6.6.7.
Hoe je er voor zorgt dat de woorden worden gesorteerd lees je in paragraaf 6.5.2.
|
| |