You are on page 1of 4

In totaal zijn er vier practicumopdrachten voor het vak PP-Remedial.

Deze opdrachten
dienen allemaal gemaakt te worden. Hiervoor heb je zes weken de tijd.
LET OP: opdracht 4 is behoorlijk lastig! Daarvoor heb je zeker twee weken nodig, en
misschien wel meer!
Opdracht 1: (Tabel afdrukken)
Schrijf een programma dat de volgende tabel afdrukt:
a
1
2
3
4
5

b
2
3
4
5
6

a tot de macht b
1
8
81
1024
15625

Hierbij moet de kolom a tot de macht b uitgerekend worden. Hint: gebruik hiervoor de
Math class. Het programma moet zo gemaakt worden, dat het ook gemakkelijk is om de tabel
uit te breiden tot bijvoorbeeld a=9, b=10.
Opdracht 2: (Cijfers van een getal optellen)
Schrijf een programma dat de volgende methode gebruikt om de som van de cijfers van een
getal uit te rekenen.
public int somVanCijfers(long n)
Deze methode rekent de som van cijfers van een getal n uit, en geeft dit terug.
Voorbeeld: somVanCijfers(234) geeft 9 terug (2+3+4).
Hint: Gebruik de modulo (%) operator om het laatste cijfer te lezen, en gebruik de gedeeld
door (/) operator om het laatste cijfer te verwijderen. Bijvoorbeeld: om 4 van 234 te krijgen
gebruik je 234 % 10 (=4). Om daarna 4 te verwijderen van 234, gebruik je 234 / 10 (=23).
Gebruik een loop om herhaaldelijk het laatste cijfer te lezen en te verwijderen. Denk goed aan
de eindconditite van de loop.
Zie ook My Programming Lab 20992 (paragraaf 2.4).
Opdracht 3: (Aantal dagen in een jaar)
Schrijf een programma dat de volgende methode gebruikt om te bepalen of een jaar een
schrikkeljaar is.
public boolean isSchrikkeljaar(int jaar)
Een jaar is een schrikkeljaar als het jaar deelbaar is door 4, met uitzondering van eeuwjaren
(1800, 1900, ...). Deze zijn enkel schrikkeljaar als ze deelbaar zijn door 400.
Test dit met de volgende jaren: 2000 (true), 1999 (false), 1900 (false), 2012 (true), 1000
(false), 813 (false), 1200 (true).

Opdracht 4:
Inleiding
De firma Luggage & Co rust haar reiskoffers uit met een kofferslot dat bestaat uit twee letters
en n cijfer. Mogelijke combinaties zijn bijvoorbeeld BE7, KS2 en ML9.
Zie het klassendiagram hieronder:

Letter

Kofferslot
2
+Kofferslot()
+Kofferslot(char, char,
int)
+setCombinatie(char,
chat,int)
+volgende(): String

-letter:char
+Letter()
+getLetter():char
+setLetter(char)
+volgende()

Cijfer

-cijfer:int
+Cijfer()
+getCijfer():int
+setCijfer(int)
+volgende()

In deze opdracht ga je het Kofferslot simuleren. Daartoe g je achtereenvolgens drie klassen


maken: Letter, Cijfer, Kofferslot, als volgt.
Maak een klasse Letter.
Zoals te zien is in het klassendiagram heeft deze class een private attribuut genaamd
letter. Het type daarvan is char. Maak deze.
Maak de default constructor Letter(). Deze constructor initialiseert de letter op
A.
Maak een getter-methode getLetter(). Deze methode geeft de waarde van het
attribuut letter uit de klasse terug.
Maak een setter-methode setLetter(char letter). Deze initialiseert het
attribuut letter met de letter die als parameter wordt meegegeven.
Maak een methode volgende(). Deze verandert het attribuut letter, door naar de
volgende letter te gaan. Dus na A komt B, na B komt C, et cetera. Na Z ga
je verder met A.

Maak een klasse Cijfer.


Zoals te zien is in het klassendiagram heeft deze class een private attribuut genaamd
cijfer. Het type daarvan is int. Maak deze.
Maak de default constructor Cijfer(). Deze constructor initialiseert het cijfer op 0.
Maak een getter-methode getCijfer(). Deze methode geeft de waarde van het
attribuut cijfer uit de klasse terug.
Maak een setter-methode setCijfer(int cijfer). Deze initialiseert het
attribuut cijfer met het cijfer die als parameter wordt meegegeven.
Maak een methode volgende(). Deze verandert het attribuut cijfer, door naar het
volgende cijfer te gaan. Dus na 0 komt 1, na 1 komt 2, et cetera. Na 9 ga je verder
met 0.
Maak een klasse Kofferslot.
Maak twee private-attributen:
o Een private attribuut genaamd letterlijst. Het type is een ArrayList van
klasse Letter (de eerste klasse die je hierboven hebt gemaakt).
o Een private attribuut genaamd cijfer. Het type hiervan is Cijfer (de
tweede klasse die je hierboven hebt gemaakt).
Maak twee constructors
o De default constructor Kofferslot(). Deze doet twee dingen:
Maak een letterlijst aan en zet daar twee objecten van type Letter in.
Gebruik om de objecten aan te maken de default constructor van
Letter die je hierboven hebt gemaakt.
Maak een cijfer aan. Gebruik hiervoor de default constructor van
Cijfer die je hierboven hebt gemaakt.
o De constructor Kofferslot(char letter1, char letter2, int
cijfer). Deze doet twee dingen:
Maak een letterlijst aan en zet daar twee objecten van type Letter in.
Vervolgens dienen deze te worden genitialiseerd met de waarden die
zijn meegegeven in de parameters letter1 en letter2. Gebruik
hiervoor de setter-methode van klasse Letter die je hierboven hebt
gemaakt.
Maak een cijfer aan. Initialiseer deze met de waarde die is meegegeven
in de parameter cijfer. Gebruik hiervoor de setter-methode van
klasse Cijfer die je hierboven hebt gemaakt.
Maak een methode volgende(). Deze methode verandert de attributen letterlijst en
cijfer op de volgende manier.
AA0 AA1 AA2 AA3 AA4
AA8 AA9
AB0 AB1 AB2
AB8 AB9

AZ0 AZ1
AZ9
BA0 BA1
BA9
...
ZZ0 ZZ1 ...
ZZ9
AA0
Gebruik hierbij de methode volgende() van de klasse Letter en de methode
volgende() van de klasse Cijfer.

Maak een klasse Main. Hierin ga je je code testen. Test of de methode


volgende() van de klasse KofferSlot correct werkt. Test de volgende
slotcombinaties:
AA0
BR9
DZ9
ZZ9

volgende moet zijn:


volgende moet zijn:
volgende moet zijn:
volgende moet zijn:

AA1
BS0
EA0
AA0

You might also like