Faculteit der Exacte Wetenschappen Tentamen Inleiding Programmeren Vrije Universiteit 31 maart 1999 tijdsduur : 3 uur ------------------------------------------------------------------------------- UITWERKINGEN ============ Opgave 1. a) 10 123 false 20 123abc true 10 123 true b) Er hoeft geen rekening gehouden te worden met r < 0. double inhoudBol (double r) { return 4./3 * Math.PI * r*r*r; // N.B. 4/3 == 1, 4./3 = 1.33333.... } c) Er hoeft geen rekening gehouden te worden met aantaltermen <= 0 double benaderEenGedeeldDoorE (int aantalTermen) { doubel teller = 1.0, // teller eerste term noemer = 1.0, // noemer eerste term resultaat = 1.0; // resultaat als aantalTermen == 1 for (int i = 2; i <= aantalTermen; i++) { teller = -teller; noemer *= (i-1); resultaat += teller/noemer; } return resultaat; } d) static final int AANTAL_RIJEN = 3; AANTAL_KOLOMMEN = 6; int[][] matrix = new int[AANTAL_RIJEN][AANTAL_KOLOMMEN]; boolean matigGevuld (int[][] m) { int aantalNullen = 0; for (int i = 0; i < m.length; i++) { for (int j = 0; j < m[0].length; j++) { if (m[i][j] == 0) { aantal += 1; } } } return aantalNullen > m.length * m[0].length / 2; } e) 16 12 2 8 48 32 48 4 Opgave 2. Gegeven is de onderstaande class 'Auto'. class Auto { String merk, int aantalGeredenKilometers; } a) Auto () { merk = ""; aantalGeredenKilometers = 0; } b) Auto (String s) { merk = s; aantalGeredenKilometers = 0; } c) class Parkeergarage { static final int MAX_AANTAL_AUTOS = 500; Auto[] AutoArray; int aantalAutos; Parkeergarage () { AutoArray = new Auto[MAX_AANTAL_AUTOS]; AantalAutos = 0; } void voegToe (Auto auto) { AutoArray[aantalAutos] = auto; aantalAutos += 1; } } d) toevoegen aan de class Auto: boolean nieuweX () { return merk.equals("X") && aantalGeredenKilometers < 10000; } toevoegen aan de class Parkeergarage: int aantalNieuweX () { int resultaat = 0; for (int i = 0; i < aantalAutos; i++) { if (autoArray[i].nieuweX()) { resultaat += 1; } } return resultaat; } Opgave 3. a) int somCijfers (int getal) { if (getal < 10) { return getal; } return getal%10 + somCijfers(getal/10); } b) boolean palindroom (String s, int b, int e) { if (e <= b) { return true; } return s.charAt(b) == s.charAt(e) && palindroom(s, b+1, e-1); }