• No results found

Tweede deeltentamen Imperatief Programmeren (INFOIMP) 12 oktober 2007

N/A
N/A
Protected

Academic year: 2021

Share "Tweede deeltentamen Imperatief Programmeren (INFOIMP) 12 oktober 2007"

Copied!
3
0
0

Bezig met laden.... (Bekijk nu de volledige tekst)

Hele tekst

(1)

Departement Informatica en Informatiekunde, Faculteit B`etawetenschappen, UU.

In elektronische vorm beschikbaar gemaakt door de TBC van A–Eskwadraat.

Het college INFOIMP werd in 2007/2008 gegeven door drs. J. Fokker.

Tweede deeltentamen Imperatief Programmeren (INFOIMP) 12 oktober 2007

Opgave 1

(3 punten)

In de klasse String zit een methode replace. Deze methode levert een nieuwe string op, waarin elk voorkomen van het character dat als eerste parameter wordt meegegeven, is vervangen door het character dat als tweede parameter wordt meegegeven. Bijvoorbeeld:

"Utrecht".replace(’t’,’x’) geeft "Uxrechx"

"A+2+#@?".replace(’+’,’9’) geeft "A929#@?"

Ook is er een methode endsWith, die oplevert of een string eindigt met de string die als parameter wordt meegegeven. Bijvoorbeeld:

"Utrecht".endsWith("recht") geeft true

Stel dat je de auteur van de klasse String bent. Veel andere methoden van die klasse zijn al geschreven (die mag je dus gebruiken), maar nog niet de substring en indexOf methoden (die mag je dus niet gebruiken).

De opgave: Schrijf de methoden replace en endsWith.

(Het is toegestaan, maar niet verplicht, om extra hulp-methodes te schrijven).

Opgave 2

(2 punten)

Iemand schrijft in de methode init van een Java-applet:

b = new Button("hoi"); this.add(b);

t = new TextArea(2,5); this.add(t);

a) Verklaar aan de hand van het type dat het object this de methode add kent.

b) Hoe kan het dat de methode add parameters van verschillend type kan accepteren, namelijk Button en TextArea?

c) We willen nu ook kunnen schrijven:

z = new Zelfgemaakt(4); this.add(z);

b.addActionListener(z);

Schrijf de header van klasse Zelfgemaakt, en de headers van twee methoden die daar in ieder geval in moeten zitten.

Opgave 3

(2 punten)

Schrijf een statische methode vaakste. De methode heeft een String als parameter. De methode moet de character opleveren die het vaakste voorkomt in die string. (Als er meerdere kandidaten zijn, die precies even vaak voorkomen, dan maakt het niet uit welke je daarvan oplevert). Voorbeeld:

bij parameter “banaan” is het resultaat ‘a’.

Je mag er zonder controle van uitgaan dat in de string alleen characters met Unicode 0 t/m 255 aanwezig zijn, dus geen Griekse of Chinese enz. tekens.

Hint: turf eerst van alle symbolen de frequentie, en zoek daarna daarvan de hoogste.

(2)

Opgave 4

(3 punten) Om het schrijfwerk te beperken mag je in deze opgave:

• De HTML-file weglaten: je hoeft alleen de Java-file te schrijven

• De import-regels bovenaan het programma weglaten

• De muis-methoden die een lege body hebben weglaten

Het is niet erg als er in dit programma door afrondfouten kleine afwijkingen ontstaan.

Schrijf een applet met de volgende eigenschappen:

1. De gebruiker ziet bovenaan het scherm:

• een kleine horizontale scrollbar, met het schuivertje in het midden, waarmee een waarde tussen de 1 en 100 ingesteld kan worden.

• een button met opschrift “color” en een met opschrift “clear”.

2. Iedere keer als de gebruiker ergens klikt ontstaat er, gecentreerd op dat punt, een blauw vierkant, met daarbinnen een gele cirkel, beide met een diameter zoals aangegeven door de scrollbar op het moment van klikken.

3. Er zijn maximaal 100 cirkels zichtbaar. Als de gebruiker daarna toch meer punten aanklikt, gebeurt er niets (maar er mag ook geen run-time fout optreden!).

4. Na het indrukken van de “color” button beginnen de vierkanten en de cirkels heel geleidelijk van kleur te veranderen, totdat na 5 seconden de kleuren helemaal omgewisseld zijn (een geel vierkant met een blauwe cirkel). Dan springt de kleur weer terug naar de beginsituatie, en begint het veranderen weer opnieuw.

5. Na het nogmaals indrukken van “color” worden de kleuren bevroren in de situatie van dat moment; na een derde keer indrukken beginnen ze weer te veranderen, enz.

6. Na het indrukken van “clear” verdwijnen alle cirkels en vierkanten. De gebruiker kan dan weer met 100 nieuwe kliks beginnen.

(3)

linksboven: de gebruiker heeft driemaal geklikt

rechtsboven: de gebruiker heeft nog 6 keer geklikt en tussen- door de scrollbar verschoven

linksonder: de gebruiker heeft op “color” gedrukt en 5 secon- den (of 10) gewacht

rechtsonder: de situatie na 7 (of 12, 17 enz.) seconden kleur- verandering

Referenties

GERELATEERDE DOCUMENTEN

De methode sluit test of speler kleur, door te zetten op veld (x,y), ´ e´ en of meer stenen van de tegenstander insluit in de richting (dx,dy), waarbij dx en dy -1, 0 of 1 zijn?.

Stel je voor dat de klasse String nog niet bestaat, en dat je die zelf aan het schrijven bent. Maak twee versies van de methode equalsIgnoreCase, waarbij. je gebruik mag maken van

Het eerste cijfer wordt vermenigvuldigd met 7, het tweede cijfer wordt vermenigvuldigd met 6, het derde cijfer met 5, enzovoort, en het laatste cijfer met 1.. Alle uitkomsten

Zie het tweede plaatje: er is tweemaal op de knop geklikt, en er zijn dus een zwarte buitenring, een donkergrijze band, een lichtgrijze band, en een witte kern. Op het derde plaatje

Het antwoord op dit onderdeel heeft dus een vaste vorm: voor elk van de zes variabelen x1 t/m x6 het woord sub, super, impl of prim, met daarachter de naam van de klasse, interface,

b) Welke relatie bestaat er tussen het begrip klasse en het begrip object ? En welke tussen het begrip klasse en het begip methode?.. Wat is het verband tussen die

De methode sluit test of speler kleur, door te zetten op veld (x, y), ´ e´ en of meer stenen van de tegenstander insluit in de richting (dx, dy), waarbij dx en dy −1, 0 of 1 zijn?.

Deze methode levert 0 op als de string die door de methode onder handen wordt genomen, en de string die als parameter wordt meegegeven, precies gelijk zijn.. De methode levert