Informaticasite van het Lauwers College te Buitenpost                 © R.J. van der Beek
 
  Opgaven hoofdstuk 6      


      Als je een Pascal-programma moet maken, schrijf dat dan ook in je schrift!
Dat geldt voor elke opdracht uit dit hoofdstuk


1. Kwadraat en wortel
a. Schrijf een programma dat om een getal vraagt. En dat er dan voor zorgt dat het kwadraat van het ingevoerde getal wordt berekend en op het beeldscherm wordt afgedrukt.
b. Wijzig het programma van vraag a zo dat de wortel van een in te voeren getal wordt berekend en op het beeldscherm getoond.

Aanwijzing: Het kwadraat van de variabele getal bereken je met getal * getal
De wortel uit de variabele getal bereken je met sqrt(getal)


2. Oppervlakte en omtrek van een cirkel
a. Schrijf een programma dat om de straal van een cirkel vraagt.
En dat daarna afdrukt wat de oppervlakte en de omtrek van die cirkel is.

Aanwijzing : Oppervlakte = 3.14 * straal * straal en Omtrek = 2 * 3.14 * straal


3. Div en mod
a. Schrijf een programma dat om een aantal seconden vraagt.
En dat daarna afdrukt uit hoeveel uren, minuten en seconden die tijd bestaat.

Aanwijzing:
Je kunt gebruik maken van de volgende operatoren:
17   DIV   4 = 4      Dit is het aantal helen bij deling.
17   MOD   4 = 1    Dat is de rest bij de deling.

Als het aantal seconden met s aangeeft, het aantal uren met u en het aantal minuten met m, dan geldt: u := s DIV 3600
Daarna moet je eerst het aantal overgebleven seconden berekenen.
Dat doe je met s := s - u * 3600 of met s := s MOD 3600
Daarna ga je op dezelfde manier het aantal minuten bereken dat overblijft.
En daarna het aantal seconden dat overblijft.


4. Deelbaar door drie
a. Schrijf een programma dat een getal opvraagt, en dat dan afdrukt of het getal deelbaar door drie is of niet.

Aanwijzing: als een getal deelbaar is door 3, dan is de rest (bij deling door 3) gelijk aan 0, dus
x MOD 3 = 0


5. Dobbelsteen
a. Schrijf een programma dat "met een dobbelsteen gooit" (m.b.v. RANDOM(6) + 1 ), en dat dan afdrukt Hoera je hebt een zes gegooid, of Jammer het was geen zes.


6. Vertaal in het frans
a. Schrijf een programma dat vraagt wat stoel in het frans is. En als er dan chair wordt ingevuld verschijnt er: goed zo! en anders: fout, sukkel!


7. Het kleinste getal bepalen
a. Schrijf een programma minimum dat er voor zorgt dat er achtereenvolgens vier getallen kunnen worden ingevoerd, en dat het kleinste van die getallen bepaald en afdrukt.
b. Pas het programma minimum uit vraag a zo aan dat het kleinste van vijf ingevoerde getallen wordt afgedrukt.
c. Schrijf een programma maximum dat het grootste van vijf ingevoerde getallen afdrukt.


8. Herhaling
a. Schrijf een programma dat je naam 30 keer onder elkaar afdrukt.
b. Verander het vorige programma zo dat je naam 30 keer achter elkaar wordt afgedrukt.


9. De tafel van een getal
a. Schrijf een programma dat de tafel van 13 afdrukt.
Natuurlijk moet je die tafel niet zelf uittypen, maar de opdracht FOR I:=1 TO 10 DO ... gebruiken!
b. Schrijf een programma dat vraagt van welk getal je de tafel wilt zien. En dat dan de tafel van dat getal afdrukt.
c. Schrijf een programma dat vraagt van welk getal je de omkeer-tafel wilt zien. En dat dan de omkeer-tafel van dat getal afdrukt (daarmee wordt bedoeld dat hij in omgekeerde volgorde wordt afgedrukt, dus van 10 tot 1)

Aanwijzing:
Gebruik de opdracht FOR i := 10 DOWNTO 1 DO ...


10. Hoe vaak een 5
a. Schrijf een programma dat 600 keer "met een dobbelsteen gooit" (m.b.v. RANDOM(6) + 1 ), en dat dan afdrukt hoe vaak er een 5 is gegooid.


11. Grootste m.b.v. for-lus
a. Schrijf een programma dat 10 positieve getallen opvraagt, en dat dan afdrukt wat het grootste was.

Aanwijzing : gebruik de variabele max. Begin met het opvragen van het eerste getal, en zorg dat de variabele max daarna dat getal bevat.
Vraag dan m.b.v. FOR i := 2 TO 10 de volgende getallen op. Telkens zorg je er dan voor dat als het ingetypte getal groter is dan max het nieuwe maximum dat ingetypte getal wordt!


12. Grootste en hoeveelste m.b.v. een while-lus
a. Schrijf een programma dat een aantal getallen opvraagt, net zo lang tot er een 0 wordt ingetypt. En dat dan het grootste getal afdrukt, en het hoeveelste getal dat was.


13. Variabelen
a. Bekijk het volgende programma:

PROGRAM opg13 ; USES CRT ; BEGIN CLRSCR; a : = 7 ; b : = 8 ; c : = 9 ; d : = 10 ; b : = a + c ; c : = c + d ; IF ( a < 10) THEN d : = 20 ELSE d : = 30 ; FOR I : = 1 TO 3 DO c : = c + i ; WRITELN( ' a = ', a , ' en b = ', b , ' en c = ', c, ' en d = ', d ) ; END.
a. Aan het eind van dit programma worden de waarden van a, b , c en d afgedrukt. Welke waarden zijn dat ? Leg uit hoe je aan die waarden komt.
b. Er is in dit programma een regel weggelaten voor BEGIN, de declaratie van de variabelen. Welke regel moet daar worden toegevoegd ?


14. Rijen
a. Schrijf een programma dat tien getallen opvraagt, en daarna die getallen nog eens afdrukt in omgekeerde volgorde.


15. Procedures
a. Schrijf een programma dat tien keer een keer-som laat zien, waarbij telkens het antwoord moet worden ingevoerd. En wel zo dat aan het eind verschijnt hoeveel van de tien goed zijn beantwoord.
Er moet gebruik worden gemaakt van een procedure som, die er voor zorgt dat er een som verschijnt, dat het antwoord kan worden ingevoerd, en dat het antwoord wordt gecontroleerd.


16. Theorie (zie H6.4 (Pascal))
a. Wat is een hogere programmeertaal. Geef twee voorbeelden
b. Wat is compileren
c. Wat is machinetaal
d. Wat is assembler, en hoe worden de afkortingen, die daarbij gebruikt worden, wel genoemd ?
e. Als je in Pascal een puntkomma vergeet na een opdracht, is dat een syntactische fout, of een semantische fout of een logische fout ?
f. Wat is de opdracht om de variabele aantal met één te verhogen?
g. Hoe declareer je de variabele aantal, waarin een geheel getal bewaard kan worden.
h. Hoe declareer je de variabele w, waarin een woord bewaard kan worden.
i. Wat is een boolean (ook wel een boolese variabele genoemd).
j. Wat is het verschil tussen een globale en een lokale variabele?
k. Wat wordt er in Pascal bedoeld met een samengestelde opdracht?
l. Welke drie soorten herhalingsopdrachten zijn er in Pascal, en wat is het verschil tussen die drie?
m. Bij het gebruik van parameters bij een procedure kun je call by reference hebben, maar ook call by value. Waar wordt dat verschil door bepaald, en wat houdt dat verschil in? (zie H6.3 (Pascal))


17. Bestanden
a. Schrijf een programma dat het bestand GEDICHT.TXT inleest (zet dat bestand eerst even in de map van je eigen klas) In dat bestand GEDICHT.TXT staat een gedicht, dat bestaat uit 14 regels (waarvan één lege regel). Daarna verschijnt dat gedicht op het scherm.
b. Schrijf een programma dat om je naam, adres en woonplaats vraagt. En dat die gegevens daarna in een bestand vastlegt met de naam GEGEVENS.TXT. Ga vervolgens m.b.v. Kladblok de inhoud van dat bestand bekijken.


18. Sorteren
a. Schrijf een programma dat tien getallen opvraagt, en daarna die getallen nog eens afdrukt in volgorde van grootte. Gebruik voor het inlezen, het sorteren, en het afdrukken procedures, gebruik de bubblesort-methode
b. Herschrijf het programma van vraag a. Gebruik nu een andere manier van sorteren: selection-sort