Faculteit der Exacte Wetenschappen Toets Inleiding Programmeren Divisie Wiskunde & Informatica 23 november 1998 Vrije Universiteit tijdsduur : 1:30 uur ------------------------------------------------------------------------------- Opgave 1. a) Als de declaratie void verdubbel (int getal) { getal = 2 * getal; } gegeven is, welk getal wordt dan door de onderstaande code afgedrukt? int i = 4, j = 5, resultaat = 0; Output out = new Output(); verdubbel(i); verdubbel(j); verdubbel(i); resultaat = i + j; out.println(resultaat); b) Als de declaratie void maakLeeg (String s) { s = ""; } gegeven is, welke tekst wordt er dan door de onderstaande code afgedrukt? String str1 = "abc", str2 = "ABC", str3 = "123"; Output out = new Output(); maakLeeg(str3); maakLeeg(str1); str1 += "d"; out.println(str1 + str2 + str3); c) Welke getallen worden er door het onderstaande programma afgedrukt? class Opgave1c { int a = 2, b = 3; Output out = new Output(); int m1 (int a) { a = 2 * a; return a + 1; } int m2 (int b, int c) { a = b * c; return b + c; } void start () { out.println(a); out.println(b); b = m1(a); out.println(a); out.println(b); out.println(m2(a, b)); out.println(a); out.println(b); } public static void main (String[] argv) { new Opgave1c().start(); } } Z.O.Z. voor opgave 2 en 3 Opgave 2. a) Schrijf een methode met de naam 'max' die het maximum van twee meegegeven int-waarden retourneert. b) Schrijf een methode met de naam 'oneven' die van een meegegeven intwaarde retourneert of deze intwaarde wel of niet oneven is. N.B. Voor het gebruik van een if-statement bij het programmeren van de methode 'oneven' zal 1 punt worden afgetrokken. c) Gegeven is een methode min() welke het minimum van twee meegegeven intwaarden retourneert. N.B. Deze methode hoeft dus niet gedeclareerd te worden! Schrijf een methode met de naam 'onevenSom' die bij aanroep twee intwaarden 'a' en 'b' meekrijgt en welke de som van de oneven getallen uit de range a t/ b retourneert als b het maximum van a en b is, en de som van de oneven getallen uit de range b t/m a retourneert als niet b maar a het maximum van a en b is. Er kan, zonder deze opnieuw te hoeven declareren, gebruik gemaakt worden van de methodes 'max' en 'oneven' uit respectievelijk onderdeel a) en b) van deze vraag. Voorbeelden: onevenSom(10, 2) = 24 (3 + 5 + 7 + 9) onevenSom(2, 10) = 24 (3 + 5 + 7 + 9) onevenSom(-5, 5) = 0 (-5 + -3 + -1 + 1 + 3 + 5) onevenSom(1, 3) = 4 (1 + 3) onevenSom(3, 1) = 4 (1 + 3) Opgave 3. Gegeven is de onderstaande class class ComplexGetal { int x, y; } a) Schrijf een default constructor voor de class ComplexGetal welke de variabelen x en y beide op 0 initialiseert. b) Schrijf een constructor voor de class ComplexGetal welke de variabelen x en y initialiseert op bij de aanroep meegekregen waarden. c) Hoe heet het principe dat twee methodes in de dezelfde class dezelfde naam kunnen hebben? Declareer een ComplexGetal-variabele 'complexGetal' waarbij in de declaratie uitdrukkelijk wordt aangegeven dat er nog geen object aangemaakt is. Waardering Opgave a b c d totaal 1. 4 4 4 12 2. 4 4 6 14 3. 3 3 4 10 -- + 36 Het eindcijfer E volgt uit het puntentotaal T als volgt : E = T / 4 + 1