• No results found

Eerste deeltentamen Imperatief Programmeren (INFOIMP) 28 september 2007

N/A
N/A
Protected

Academic year: 2021

Share "Eerste deeltentamen Imperatief Programmeren (INFOIMP) 28 september 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.

Eerste deeltentamen Imperatief Programmeren (INFOIMP) 28 september 2007

Opgave 1

Deze opgave bevat vijf tekstvragen. Houd het antwoord kort: een of twee zinnen per onderdeel kan al genoeg zijn.

a) Wat wordt er verstaan onder de syntax van een (programmeer)taal-constructie?

En wat is de semantiek van een taal-constructie?

b) Zowel in de body als in de header van een methode kan een declaratie van een variabele staan.

Hoe krijgt een in de body gedeclareerde variabele een waarde? En hoe krijgt een in de header gedeclareerde variabele voor ’t eerst een waarde?

c) Gegeven zijn een int-variabele n en een double-variable d.

De waarde van n is positief en kleiner dan 1000000.

Hebben de volgende twee opdrachten in alle situaties hetzelfde effect?

d = n * 1.5;

d = n * 3 / 2;

Beargumenteer het antwoord.

d) De aanroep van een methode m heeft de opbouw x.m(y).

Welke voorwaarde geldt er voor het type van x? En welke voorwaarde geldt er voor het type van y?

e) Waaraan herken je bij een methode-definitie dat het een constructormethode is?

Hoe roep je zo’n constructormethode aan?

Welke waarde wordt door de aanroep opgeleverd?

Opgave 2

Het antwoord op deze vraag heeft een vaste vorm: een blok met vier keer vier woorden. Een toelichting is niet nodig.

Hieronder staan 16 fragmenten uit een programma (in een blok van 4 bij 4). Schrijf op je antwoordblad ook een blok van 4 bij 4 vakjes, en zet in elk vakje een woord passend bij het overeenkomstige fragment:

• type als het programmafragment een type is

• expr als het programmafragment een expressie is

• opdr als het programmafragment een opdracht is

• decl als het programmafragment een declaratie is

String (double)x g.setFont(bold); b=true;

"String hoi;" double x; Font.BOLD b==true

this.getParameter("hoi") double//x new Font("bold",0,8) return true

String hoi; x*=2; Font bold; true

(2)

Opgave 3

Opgave 3 en 4 vragen een stukje programma.

Kleine schrijffoutjes (hoofdletters, puntkomma’s enz.) worden niet streng afgerekend, maar de ele- menten die de structuur van het programma bepalen (haakjes, accolades, aanhalingstekens enz.) zijn wel belangrijk. Schrijf die dus duidelijk en op de goede plaats op! Het is toegestaan (maar niet nodig) om Java-constructies die (nog) niet zijn behandeld toch te gebruiken.

a) Schrijf een methode streepjes met een getal als parameter. Je mag zonder controle aannemen dat de parameter 0 of groter is. De methode moet als resultaat een string opleveren met daarin zoveel verticale streepjes als de parameter aangeeft.

Bijvoorbeeld: de aanroep this.streepjes(5) levert "|||||" op.

b) Schrijf een methode spijker met een getal als parameter. Je mag zonder controle aannemen dat de parameter 1 of groter is.

De methode moet als resultaat een string opleveren met daarin het getal in spijkerschrift-notatie.

Elk cijfer wordt daarin weergegeven met verticale streepjes, en de cijfers worden gescheiden door een liggend streepje.

Er staan ook liggende streepjes aan het begin en het eind.

Hier zijn een paar voorbeelden:

this.spijker(25) geeft "-||-|||||-"

this.spijker(12345) geeft "-|-||-|||-||||-|||||-"

this.spijker(7) geeft "-|||||||-"

this.spijker(203) geeft "-||--|||-"

Hint: verwerk eerst het laatste cijfer, en herhaal dan voor de rest van de cijfers.

Opgave 4

In deze opgave moet je een complete Java-applet schrijven.

Je hoeft alleen de Java-file te schrijven, dus een HTML-file is niet nodig. Verdere mag je weglaten:

• de import-regels

• methodes die eigenlijk nodig zijn, maar een lege body hebben

Schrijf een applet die een zwarte ring met een doorsnede van 40 beeldpunten laat meebewegen met de bewegingen van de muis. De witte kern in het midden van de ring heeft een doorsnede van 20 beeldpunten. (Je kunt ook zeggen dat de dikte van het zwarte gedeelte van de ring 10 beeldpunten is). Zie het eerste plaatje hieronder.

In het window is een knop zichtbaar met het opschrift “Meer”. Elke keer dat de gebruiker daarop drukt, wordt de ring groter: er komt een band bij met een dikte van 10 beeldpunten; de totale diameter wordt dus 20 beeldpunten groter.

De buitenste band is altijd zwart, de kern blijft altijd wit, en de banden daartussen krijgen een vloeiend verloop van zwart naar wit.

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 is er 8 keer op de knop “Meer” geklikt, en zijn er dus 9 banden en een witte kern. Op het vierde plaatje is er 20 keer op de knop geklikt.

(3)

Referenties

GERELATEERDE DOCUMENTEN

De waarden zijn gehele getallen, maar het gemiddelde zal niet altijd geheeld zijn (in het voorbeeld: 20.6). Opdracht: Schrijf de ontbrekende

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

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

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?.