• No results found

Imperatief Programmeren, eerste deeltentamen (INFOIMP) 29 september 2006

N/A
N/A
Protected

Academic year: 2021

Share "Imperatief Programmeren, eerste deeltentamen (INFOIMP) 29 september 2006"

Copied!
4
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 2006/2007 gegeven door Jeroen Fokker.

Imperatief Programmeren, eerste deeltentamen (INFOIMP) 29 september 2006

Scrijf op elk ingeleverd blad je naam.

Schrijf op het eerste blad ook je studentnumme ren het aantal ingleverde bladen.

De lijst met standaardfuncties na afloop graag weer inleveren; de opgaven mag je houden.

Er zijn in totaal 100 punten te behalen.

Opgave 1

(25 punten)

Onderdelen a-d zijn tekstvragen.

Houd het antwoord kort: een of twee zinnen per onderdeel kan al genoeg zijn.

a) Alice ontwikkelt op een Windows-computer een Java-applet, en zet die op een webpagina. Bob surft met een Mac-computer naar deze pagina en bekijkt de applet.

Beschrijf wie daarbij een compiler en/of een interpreter gebruikt, en welke soorten code daardoor vertaald worden.

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 twee relaties?

c) Wat is een void methode?

Waarin wijkt de manier waarop je zo’n methode aanroept af van de aanroep van een niet-void methode?

d) Wat is een static methode?

Waarin wijkt de manier waarop je zo’n methode aanroept af van de aanroep van een niet-static methode?

e) gegeven zijn de volgende declaraties:

int n;

double d;

String s;

Schrijf onderstaande zes toekennings-opdrachten over, en vul ze waar nodig aan met type- conversies:

n = d;

n = s;

d = n;

d = s;

s = n;

s = d;

(2)

Opgave 2

(25 punten) Het antwoord op deze vraag heeft een vaste vorm:twee kolommen van ieder acht getallen of tekens.

Een toelichting is niet nodig.

Hieronder staan 16 programma-fragmenten. Geef voor elk fragment apart aan hoe vaak de methode

‘iets’ wordt aangeroepen. Als de methode oneindig vaak wordt aangeroepen, schrijf dan het symbool

∞ op. Als het fragment een fout bevat die niet door de compiler geaccepteerd wordt, schrijf dan de letter F op.

x=0;

while (x<5) { x=x+1;

this.iets();

}

for (x=0; x<5; x++) { this.iets();

x=x+1;

} x=0;

while (x<5) { this.iets();

x+1;

}

for (x=0; x<5; x++) this.iets();

x=x+1;

x=0;

while (x=5) { this.iets();

x=x+1;

}

for (x=0; x<x; ) this.iets();

x=0;

while (x<5);

{ this.iets();

x=x+1;

}

for (x=0; x<5) { this.iets();

x=x+1;

} x=0;

{while (x<5) x=x+1;

this.iets();

}

for (x=0; x<5; x++) for (y=0; y<5; y++)

this.iets();

x=0;

{while (x<5) {; this.iets();

x=x+1;

};

for (x=0; x<5; x++) { for (y=0; y<5; y++)

this.iets();

this.iets();

} x=0;

while (x<5) this.iets();

x=x+1;

for (x=0; x<5; x++) this.iets() for (y=0; y<5; y++)

this.iets();

x=0;

while (x<5);

this.iets();

x=x+1;

for (x=0; x<5; x++) for (y=0; y<x; y++)

this.iets();

(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 ge- bruiken.

Opgave 3

(25 punten)

Een benadering van ‘cosinus hyperbolicus’ van een re¨eel getal x kun je berekenen door:

1 + x2/2! + x4/4! + x6/6! + x8/8! + x10/10! + . . .

De notatie ‘6!’ betekent ‘6 faculteit’ , dat is alle gehele getallen van 1 tot en met 6 met elkaar vermenigvuldigd.

Schrijf een methode coshyp die deze benadering berekent door 20 van deze termen te sommeren, en dat als resultaat oplevert.

Het is hierbij niet toegestaan om de bestaande methodes uit de klasse Math te gebruiken. Ook is het niet toegestaan om alle 20 termen helemaal uit te schrijven.

Java heeft geen ingebouwde machtsverhef-operator, dus die kun je ook niet gebruiken.

Je mag wel (maar hoeft niet) zelf extra hulp-methoden defini¨eren.

Opgave 4

(25 punten)

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. Verder mag je weglaten:

• de import-regels

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

Schrijf een applet die een zwart vierkantje van 20×20 beeldpunten laat meebewegen met de bewe- gingen van de muis. De muis-cursor wijst het midden van het vierkant aan. Zie het eerste plaatje hieronder.

Elke keer als de gebruiker met de muis klikt, wordt het vierkant groter. Het vierkant krijgt er bij elke klik een ‘ring’ bij, met een steeds lichtere kleur grijs. Het geheel blijft meebewegen met de muis. Het tweede plaatje toont de situatie na 5 muiskliks.

Na 7 kliks is de buitenste ring zeer licht grijs geworden. Bij de 8eklik begint de volgende ring weer bij zwart, en daarna worden de ringen weer lichter grijs. Het derde plaatje toont de situatie na 11 muiskliks.

Het vierde plaatje toont de situatie na 25 muiskliks. Bij de 8e, 16e en 24e ring verspingt de kleur steeds weer naar zwart. Een deel van het plaatje wordt buiten beeld getekend; dat gaat vanzelf, dus daar hoef je niet apart rekening mee te houden.

(4)

Referenties

GERELATEERDE DOCUMENTEN

De sluipwesp kan nu redelijk ongestoord naar de broedkamers van het nest van de mieren gaan en haar eieren in de rupsen van het blauwtje leggen die zich vervolgens tegoed gaan

Als er daarna toch een woord wordt toegevoegd moet een nieuwe array worden gemaakt met dubbele capaciteit, waarin de oorspronkelijke strings worden gekopieerd.. Als die een

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

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

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

Uiteraard moet de applet zo zijn ingericht dat verandering van de getalwaarden in het HTML-bestand automatisch tot aanpassing van de grootte van de