Faculteit der Exacte Wetenschappen Toets Inleiding Programmeren Divisie Informatica 26 oktober 1998 Vrije Universiteit tijdsduur : 1:30 uur ------------------------------------------------------------------------------- Opgave 1. a) Alle instructies in een computer worden uitgevoerd door de centrale rekeneenheid (CPU: Central Processing Unit). Deze CPU kan geen Java-instructies uitvoeren. Hoe heten de instructies die de CPU wel uit kan voeren? b) Java programma's worden in twee stappen uitgevoerd. Eerst wordt het Java programma omgezet in een equivalent programma geschreven in een machine-onafhankelijke assemblertaal (byte code). En vervolgens wordt deze byte code door een interpreter geinterpreteerd. Hoe heet zo'n programma dat een ander programma, geschreven in de ene programmeertaal, omzet in een equivalent programma geschreven in een andere programmeertaal? c) Java is een zogenaamde "hogere programmeertaal" (high-level programming language) Wat is een "hogere" programmeertaal? Opgave 2. a) Geef van de onderstaande arithmetische expressies de uitkomst 1) 2 * 3 + 4 * 5 2) (1 + 14 / 2) / 4 3) 4 / 5 4) 4 % 5 5) 4. /5 6) 4 / 5. 7) (double) ( 4 / 5) 8) (double) 4 / 5 9) 4E0 / 5 10) (int) 4.9 / 5 b) Voor een hier niet nader gespecificeerde toepassing moeten in een programma temperaturen verwerkt worden. Dit programma heeft hiertoe een constante nodig om de minimum temperatuur van -273,15 graden Celcius in te bewaren, een constante om de naam van het onderzoek (Project X) in te onthouden en een variabele om de gemiddelde temperatuur in uit te rekenen. Geef de declaraties voor deze constanten en variabele. Gebruik het systeem van naamgeven uit het vak Inleiding Programmeren. Gebruik waar nodig commentaar. c) Gegeven zijn de declaraties: Input in = new Input(); int toetscijfer; Verder is gegeven dat toetscijfers gehele getallen zijn met een minimum van 1 en een maximum van 10. Als bovendien gegeven is dat er een toetscijfer op de invoer staat en dat de leeswijzer het eerste character van dit toetscijfer aanwijst, geef dan een algoritme om dit toetscijfer in te lezen en aan de variable 'toetscijfer' toe te kennen. N.B. 1 Houd rekening met eventuele incorrecte invoer, d.w.z. gehele getallen die niet in de range 1 t/m 10 liggen. N.B. 2 Maak gebruik van constanten indien nodig. N.B. 3 Declareer eventueel benodigde extra variabelen. Opgave 3. a) Gegeven zijn de volgende declaraties: Input in = new Input(); int i = in.readInt(); Schrijf een algoritme dat i verdubbelt als i deelbaar is door 7. b) Gegeven zijn de volgende declaraties: Output out = new Output(); int toetscijfer; // toetscijfer krijgt een gehele waarde in de range 1 t/m 10 Schrijf een algoritme dat de tekst "gehaald" of "niet gehaald" afdrukt, afhankelijk van het feit of de waarde van toetscijfer een voldoende of onvoldoende is. N.B. De minimale voldoende is een 6. c) Gegeven zijn de declaraties: Output out = new Output(); int groep; // 1 <= groep <= 5 double salaris; // groep en salaris hebben een waarde gekregen Schrijf een algortime dat op basis van de groep het salaris met 100,00 gulden verhoogt (voor groep 1 en groep 3), met 1000,00 verhoogt (voor groep 2 en groep 4) of verdubbelt (voor groep 5). Gebruik een switch-statement met 5 case labels en 1 default label. d) Gegeven zijn de volgende declaraties: Input in = new Input(); int getal = in.readInt(), // getal >= 0 som; Schrijf een algoritme om de som van de cijfers van het gehele getal dat in de variabele 'getal' opgeslagen is uit te rekenen en toe te kennen aan de variabele 'som'. HINT: Om een getal van x cijfers te splitsen in het getal dat door de eerste x-1 cijfers gevormd wordt en het laatste cijfer, kan van het volgende gebruik gemaakt worden: 12345 / 10 == 1234 12345 % 10 == 5 Waardering Opgave a b c d totaal 1. 3 3 3 9 2. 4 4 4 12 3. 3 4 4 4 15 -- + 36 Het eindcijfer E volgt uit het puntentotaal T als volgt : E = T / 4 + 1