Tentamen. Datalogi I, grundkurs med Java 10p, 2D4112, 2003-2004 Lördagen den 29 november 2003 kl 9.00 14.00, sal D34.



Relevanta dokument
Tentamen. Datalogi I, grundkurs med Java 10p, 2D4112, Lördagen den 30 november 2002 kl , salar E33, E34

2D1311 Programmeringsteknik för Bio1 och Bio2, vt 2003 Fiktivt prov På flervalsfrågorna är endast ett svar rätt om inget annat anges i frågan! Det rik

Datalogi I, grundkurs med Java 10p, 2D4112, Tentamen 29 november 2003, svar och lösningar

Fiktiv Tentamen. 2D4135 vt 2004 Objektorienterad programmering, design och analys med Java

Datalogi I, grundkurs med Java 10p, 2D4112, Fiktiv tentamen, svar och lösningar och extra kommentarer till vissa uppgifter 1a) Dividera förs

2D1339 Programkonstruktion för F1, ht 2003

5. En metod som anropar sig själv a) får inte förekomma i Java-program b) kallas destruktiv c) kallas iterativ d) kallas rekursiv 6. Vilka värden har

Föreläsning 2 Objektorienterad programmering DD1332. Typomvandling

Tentamen i Programmering grundkurs och Programmering C

2D1339 Programkonstruktion för F1, ht 2003

Föreläsning 5: Rekursion

Klasser och objekt i C#

Grundläggande programmering med C# 7,5 högskolepoäng

2D1310, 2D1311 Programmeringsteknik Tentamen (1p) 3 maj 2001, kl

2D1339 Programkonstruktion för F1, ht 2004

Tentamen OOP

Tentamen. 2D4135 vt 2005 Objektorienterad programmering, design och analys med Java Lördagen den 28 maj 2005 kl

Du ska nu skapa ett litet program som skriver ut Hello World.

PROGRAMMERING A VB6 UTVECKLINGSVERKTYGET VISUAL BASIC

Skriva B gammalt nationellt prov

Vi skall skriva uppsats

2D1342 Programkonstruktion för F1, ht 2006

Objektorienterad programmering i Java

Handledning för digitala verktyg Talsyntes och rättstavningsprogram. Vital, StavaRex och SpellRight

Tentamen DE12, IMIT12, SYST12, ITEK11 (även öppen för övriga)

Kort om klasser och objekt En introduktion till GUI-programmering i Java

FRÅN A TILL Ö LäraMera Ab / och Allemansdata Ab / FRÅN A TILL Ö

2 b) Följande finns definierat: public class Käk String titel = "Chili con carne"; Krydda[] kryddor = new Krydda[10]; kryddor[0] = new Krydda("Svartpe

2 b) Följande finns definierat: public class Spel String titel = "Spel"; Dice[] tärningar = new Dice[10]; tärningar[0] = new Dice("Röd"); tärningar[1]

ELEV- HANDLEDNING (Ansökan via webben)

Gissa det hemliga talet

Hur skapar man formula r

DD1342 Programkonstruktion för F1, ht 2007

Föreläsning 8 Programmeringsteknik och Matlab 2D1312/2D1305. Klass Object, instans av klass public/private Klassvariabler och klassmetoder

729G04 - Hemuppgift, Diskret matematik

Erfarenheter från ett pilotprojekt med barn i åldrarna 1 5 år och deras lärare

VÄRDERINGSÖVNINGAR. Vad är Svenskt?

Lathund till Annonsportalen

Introduktion. Den objektorienterade modellen Grundläggande begrepp Klass Klassen som abstraktion

Det finns en referensbok (Java) hos tentavakten som du får gå fram och läsa men inte ta tillbaka till bänken.

Tentamen i Objektorienterad programmering

Laborativ matematik som bedömningsform. Per Berggren och Maria Lindroth

Diskussionsfrågor till version 1 och 2

4-6 Trianglar Namn:..

Träning i bevisföring

Mera om generik. Innehåll. Generik och arv Wildcards Vektorer och generik Generiska metoder. EDA690 (Mera om generik) HT / 24

Datorövning 2 Statistik med Excel (Office 2007, svenska)

Tankar om elevtankar. HÖJMA-projektet

LÖSNINGSFÖRSLAG Programmeringsteknik För Ing. - Java, 5p

Något om permutationer

Namn: Personnr: 1 2D1310 Programmeringsteknik i Java för B,V (1p) 13 januari 2001, kl Hjälpmedel: En Javabok. För betyget godkänt krävs at

Tentamen. Grundläggande programmering i Java A 5p, DTAA

Dagens program. Programmeringsteknik och Matlab. Vad är arv? Vi ärver från GregorianCalendar. Kan vi bygga vidare på existerande klasser?

Lite om felhantering och Exceptions Mer om variabler och parametrar Fält (eng array) och klassen ArrayList.

2 b) Bodega bodegan = new Bodega(); double moms = 0.235; String namn = "Vargtass"; System.out.println(namn + " " + moms + bodegan.ändra(moms, namn); S

Individuellt Mjukvaruutvecklingsprojekt

Idag: Dataabstraktion

Vad är en webbläsare?

Hävarmen. Peter Kock

Java M1 V2 L2 K2 TM W. Tentamen i Programmering , kl LUNDS TEKNISKA HÖGSKOLA Institutionen för datavetenskap.

NATIONELLA MATEMATIKTÄVLING

Enkätresultat för elever i år 2 i Praktiska Skövde i Praktiska Sverige AB hösten 2014

Enkätresultat för elever i år 2 i Mega Musik gymnasium hösten Antal elever: 47 Antal svarande: 46 Svarsfrekvens: 98% Klasser: MM13

DD1342 Programkonstruktion för F1,

Tentamensdeltagare från Dataekonomutbildningen, Textilekonomutbildningen och Affärsinformatikutbildningen.

ANVÄNDARHANDLEDNING FÖR

Lathund, procent med bråk, åk 8

Elektronen och laddning

Enkätresultat för elever i åk 9 i Borås Kristna Skola i Borås hösten Antal elever: 20 Antal svarande: 19 Svarsfrekvens: 95% Klasser: Klass 9

a n = A2 n + B4 n. { 2 = A + B 6 = 2A + 4B, S(5, 2) = S(4, 1) + 2S(4, 2) = 1 + 2(S(3, 1) + 2S(3, 2)) = 3 + 4(S(2, 1) + 2S(2, 2)) = = 15.

TIMREDOVISNINGSSYSTEM

Svenska Du kan med flyt läsa texter som handlar om saker du känner till. Du använder metoder som fungerar. Du kan förstå vad du läser.

konstanterna a och b så att ekvationssystemet x 2y = 1 2x + ay = b 2 a b

Enkätresultat för elever i år 2 i Nösnäsgymnasiet 2 i Stenungsund våren 2014

Avsikt På ett lekfullt sätt färdighetsträna, utveckla elevers känsla för hur vårt talsystem är uppbyggt samt hitta mönster som uppkommer.

DOP-matematik Copyright Tord Persson. Bråktal Läs av vilka tal på tallinjen, som pilarna pekar på. Uppgift nr

TENTAMEN: Design och konstruktion av grafiska gränssnitt DAT215

Matematik. Bedömningsanvisningar. Vårterminen 2009 ÄMNESPROV. Delprov B ÅRSKURS

Snabbslumpade uppgifter från flera moment.

4-3 Vinklar Namn: Inledning. Vad är en vinkel?

Kungliga Tekniska Högskolan Ämneskod 2D4134 Nada Tentamensdag aug - 23 Tentamen i Objektorientering och Java Skrivtid 5 h

Vem är vem på kursen. Objektorienterad programvaruutveckling GU (DIT011) Kursbok Cay Horstmann: Big Java 3rd edition.

Vad är det och hur definierar vi en Biblioteksfunktioner (math) Top-down-programmering lokala globala variabler Arrays som in-parametrar

Programexempel: tärningsspel

Kapitel 6. f(x) = sin x. Figur 6.1: Funktionen sin x. 1 Oinas-Kukkonen m.fl. Kurs 6 kapitel 1

För dig som är valutaväxlare. Så här följer du reglerna om penningtvätt i din dagliga verksamhet INFORMATION FRÅN FINANSINSPEKTIONEN

Programmera en NXT Robot

Efter att du har installerat ExyPlus Office med tillhörande kartpaket börjar du med att göra följande inställningar:

Handbok Ämnesprov 2016 Lärarinmatning I Dexter Åk 3. Uppdaterad: /HL Version: IST AB

Laboration 1. I. Matlabs fönster, hjälp, variabler och enkla beräkningar. Introduktion

Exempel på tentamensuppgifter i LMA100, del 1

Tentamen i matematisk statistik (9MA241/9MA341/LIMAB6, STN2) kl 08-13

Programmering A. Johan Eliasson

2 b) Följande finns definierat: import java.awt.*; public class Uppgift1b public static void main(string[] mupp) Color färg = Color.blue; Bil[] bilar

KUPOL en studie om skolmiljöns betydelse för ungdomars hälsa ENKÄT TILL ELEVER I ÅRSKURS 9

Manual för BPSD registret. Version 6 /

Att komma igång. Vad är ett program? Kompilerande-Interpreterande Programmeringsmiljö Hello World! Att programmera och ett enkelt program

Hur du arbetar med VFU-portfölj i Mondo. en lathund för student

LÄSFÖRSTÅELSE PROVKAPITEL. Katarina Neiman Hedensjö

Föreläsning 3-4 Innehåll. Diskutera. Metod. Programexempel med metod

Transkript:

Tentamen Datalogi I, grundkurs med Java 10p, 2D4112, 2003-2004 Lördagen den 29 november 2003 kl 9.00 14.00, sal D34 Inga hjälpmedel 30 poäng varav minst 15 poäng på programmeringsuppgifter ger säkert godkänt, gränserna kan bli lägre men ej högre Preliminära gränser för betygen 4 och 5 är 42 respektive 54 poäng Maxpoäng är 61 fördelat på 17 poäng allmän datalogi, uppgift 1 5 14 poäng flervalsfrågor i Java, uppgift 6 19 30 poäng programmeringsuppgifter i Java, uppgift 20 23 Allmän datalogi 1a) Beräkna10001 2 + 110 2. Ge svaret både på binär och på decimal form.(2p) Visa hur du räknat! Endast fel svar ger 0p! 1b) Vad menas med ett hexadecimalt tal? Varför förekommer bokstäverna A, B, C, D, E och F i sådana tal? (2p) 2a) Ange för vart och ett av de tre programmeringsspråken Fortran, Lisp och C++ vilken programmeringsparadigm de ligger närmast (ledtråd: de tre språken tillhör olika paradigmer) (1p). 2b) Ange tre andra språk och deras paradigmtillhörighet. Det måste vara andra språk än de i 2a) och språken måste tillhöra olika paradigmer (1p). 3a) Vad är en algoritm? (1p) 3b) Vad är pseudokod och varför använder man det? (1p) 3c) Du skall skriva ett program där du behöver sortera stora mängder data och du vill att det ska gå så fort som möjligt. Du har två sorteringsmetoder att välja mellan och båda finns i biblioteksklasser så du behöver inte skriva dem själv. Du läser om metod 1 att sorteringen tar C 1 n 2 sekunder där n är antalet poster som sorteras och om metod 2 att sorteringen tar C 2 n log n sekunder, där C 1 och C 2 är ungefär lika stora. Vilken metod väljer du att använda? Varför? (2p) Enbart rätt svar ger 0.5p. En bra motivering krävs för 2p. 4) Vad menas med syntaxen respektive semantiken hos ett programspråk? Ge exempel på ett syntaktiskt fel och ett semantiskt fel i Java. När/hur upptäcks syntaxfel senast i ett program? Hur upptäcks semantiska fel? (4p) 5) I samband med anrop av metoder (procedurer, funktioner,...) förekommer något som kallas aktiveringspost Vad är det? Förklara gärna med hjälp av ett exempel på en metod och dess anrop och rita gärna en figur. Det krävs dock inte! (3p) 1

Java flervalsfrågor Skriv svaren till alla flervalsfrågor på samma blad! Endast ett svar är rätt på varje fråga, 1p per fråga. 6) Metoden Math.sin som beräknar värdet av sinusfunktionen är en A) Klassmetod B) Instansmetod C) Callback-metod D) Konstruktormetod 7) Vilket av följande påståenden om konstruktormetoder är sant? A) Konstruktormetoden anropas varje gång en instans (ett objekt) av en klass skapas, dvs en gång per instans. B) Konstruktormetoden anropas endast första gången en klass används i ett program, dvs högst en gång per program och klass. C) En konstruktormetod anropas precis som andra metoder, när programmeraren så önskar vilket kan betyda flera gånger per objekt. D) En konstruktormetod anropas aldrig. 8) Vilket värde har b efter nedanstående kod är exekverad? (1p) int x = 1; boolean b = (x == 1); A)b=0 B)b=1 C)b=false D)b=true 9)Endast ett av följande påståenden om metoder i Java är sant. Vilket? A) En metod som anropar sig själv får inte förekomma i Java-program B) En metod som anropar sig själv kallas destruktiv C) En metod som anropar sig själv kallas iterativ D) En metod som anropar sig själv kallas rekursiv 10) Ett uttryck i Java av typen yyy.xxx(); måste vara A) en deklaration B) ett anrop av en metod som heter yyy C) en anrop av en metod som heter xxx D) ett reserverat ord 11) Om en klassdeklaration börjar class X extends Y så uttrycker det en relation mellan klasserna. Vilken? A) Y är en X B) X är en Y C) Y känner till en X D) X känner till en Y 12) Vilken av följande grafiska komponenter i Java representerar ett fristående fönster (kan visas utan att det läggs in i en annan komponent)? A) Canvas B) Frame C) TextArea D) Panel 2

13) Följande kodavsnitt exekveras i en main-metod. Hur många gånger skrivs texten Java-student ut? for (int i=1; i<=10; i++) for (int j=1; j<=5; j++) System.out.println("Java-student"); A) 1 gång B) 5 gånger C) 10 gånger D) 50 gånger 14) Deklarationen och initieringen int[] resultat = new int[10]; reserverar plats i minnet för A) endast en referensvariabel B) endast 10 heltalsvariabler C) en referensvariabel och 10 heltalsvariabler D) 11 st referensvariabler 15) En metod har följande huvud double f (double y, int w) Vilken av följande rader innehåller ett korrekt anrop av metoden? A) double y = 12.5; int w = 3; double r = f(); B) double y = f(0.2, 13); C) double y = 9.9; int w = 14; f(double y, int w); C) double y = 11.2; int w = 48; f(); 16) Ett av följande påståenden om variabler och metoder är falskt. Vilket? A) I en parameterlös klassmetod får man använda klassens klassvariabler. B) I en parameterlös klassmetod får man använda klassens instansvariabler. C) I en parameterlös instansmetod får man använda klassens klassvariabler. D) I en parameterlös instansmetod får man använda klassens instansvariabler. 17) Här nedan ses huvuden och antydan till kropp för tre metoder med samma namn, m. Vilket av påståendena nedan är sant? 1) int m() {... 2) void m () {... 3) int m (int k) {... A) 1) och 2) och 3) i samma klass går bra (ger inte kompileringsfel) B) 1) och 2) i samma klass går bra C) 1) och 3) eller 2) och 3 i samma klass går bra D) Det går bara att ha en enda metod som heter m i en klass, alltså man kan ha 1) eller 2) eller 3) 3

18) Metoden ritafigur ritar en intressant figur. Metoden deklareras i en Applet och skall ha en skalfaktor, x- och y-värden för dess position samt ett Graphics - objekt som parametrar: void ritafigur (int skala, int xpos, int ypos, Graphics g) { // Här finns de satser som ritar figuren. I vilket av följande alternativ görs ett korrekt anrop av metoden ritafigur? Vi antar i samtliga fall att g är definierad där anropet sker och refererar till ett Graphics-objekt. Metodanropen görs i paint-metoden i den Applet där ritafigur är deklarerad. A) Figur f = ritafigur(20, 100, 200, g); B) int skala = 30; int xpos = 250; int ypos = 100; ritafigur(g); C) for (int x = 100; x <= 800; x +=50) ritafigur(40, x, 200, g); D) for (int x = 100; x <= 800; x +=50) ritafigur(g, 40, x, 200); 19) Studera följande klasser. Vad blir utskriften från main-metoden? class X { void m () { System.out.print("Hej "); class Y extends X { void m () { System.out.print("Hopp "); class Test { public static void main (String[] a) { X x1 = new X(); X x2 = new Y(); Y y = new Y(); x1.m(); x2.m(); y.m(); System.out.println(); A) Hej Hej Hopp B) Hej Hopp Hopp C) Hej Hej Hej D) Hopp Hopp Hopp 4

Java programmeringsuppgifter Inga eller små avdrag görs för rena syntaxfel, sådant som man normalt kan slå upp när man programmerar. Poäng kan ges även om man bara löst en del av ett problem. Försök lösa uppgifterna även om du inte förstår fullständigt! 20) (6p) Skriv en metod som har två heltalsvektorer, t.ex. a och b, som parametrar och som räknar i hur många positioner a och b är lika. Om t.ex. a = {-1,5,7,12,10 och b = {100,5,7,-2,10,55,199 så skall svaret bli 3. Resultatet från metoden ska vara antalet lika värden. Metoden skall klara av att a och b har olika längd (antal element) och då förstås bara jämföra så många element som finns i den kortare vektorn. Ledtråd: Om a är en vektor i Java så anges antalet element i vektorn av a.length. 21) (4p) Skriv en metod i Java som har en heltalsvektor som parameter och som permuterar vektorn ett steg. Om indata är {17,1,9,3,4 så skall utadata bli vektorn {1,9,3,4,17. Välj själv om metoden skall ändra i den vektor som ges som parameter eller skapa en ny vektor och ge som resultat! 22) (5p) Följande grafiska program är tänkt att vara en omvandlare mellan Celsiusgrader och Fahrenheit-grader. Användaren skall se ett fönster med två textrutor för inmatning, en för vardera typen av grader. Det skall finnas en rubrik före varje inmatningsruta. Om användaren matar in ett gradtal i F i F-rutan så skall motsvarande gradtal i C dyka upp i C-rutan. Inmatning i C-rutan skall på motsvarande sätt ge utskrift i F-rutan. Programmet är ofullständigt och uppgiften är att fylla i de delar som fattas. Om du vet hur programkoden ska se ut så skriv den. Är du osäker på koden så beskriv med ord. Kombinera gärna kod och förklarande text. Full poäng kan ges även om du inte skrivit någon programkod alls, bara de saknade delarna är riktigt beskrivna. import java.awt.*; import java.applet.*; import java.awt.event.*; public class CF extends Applet implements ActionListener{ private TextField celsius, fahrenheit; public void init () { add(new Label("Grader Celsius")); celsius = new TextField(5); add(celsius); add(new Label("Grader Fahrenheit")); fahrenheit = new TextField(5); add(fahrenheit); 5

23a) (11p) Skriv en klass för att representera en svensk glosa med ett antal engelska översättningar. Instansvariabler i klassen skall vara ett svenskt ord och en lista av engelska ord. Varje svenskt ord skall alltså motsvaras av godtyckligt många engelska ord. Klassen skall ha en konstruktor vars parametrar ska vara det svenska ordet och ett engelskt ord. Klassen ska ha följande instansmetoder: metod som skriver ut eller visar endast det svenska ordet (1p) metod som skriver ut eller på annat sätt visar alla de engelska orden (2p) metod som lägger till en engelsk översättning (1p) metod som har en gissning (engelska) som parameter och returnerar true om gissningen är något av orden i listan och false annars. (3p) För rätt struktur, instansvariabler och konstruktor ges 4p. Instansvariablerna ska vara dolda. Insansvariabel som borde varit lokal variabel i metod ger poängavdrag. 23b) (4p) Skriv ett testprogram för glosklassen, dvs en klass med endast en mainmetod. En glosa, t.ex. det svenska ordet svår med första översättning difficult skall skapas. Lägg därefter till översättningarna hard och serious till glosan. Prova metoden som skriver ut eller visar glosan och dess översättningar och prova gissningsmetoden på ett lämpligt sätt, med en riktig gissning och med en fekaktig, och gör utskrifter så att det framgår om metoden gör rätt eller ej. Lite hjälp till 23a): Man kan ha nytta av någon av klasserna ArrayList eller Vector. Där finns bl.a. följande metoder: add(o) lägger till objektet o till listan get(i) returnerar objekt nr i från listan size() returnerar antalet element i listan Någon av instansmetoderna equals(s) equalsignorecase(s) i klassen String kan också behövas. Båda jämför strängars värden och returnerar resultat av typ boolean. 6