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

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

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

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

2D1339 Programkonstruktion för F1, ht 2003

2D1339 Programkonstruktion för F1, ht 2003

Lab5 för prgmedcl04 Grafik

2D1339 Programkonstruktion för F1, ht 2004

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

DD1342 Programkonstruktion för F1,

Grundkurs i programmering, 6 hp (725G61) Dugga 2 tillfälle 2

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

Objektorientering. Objekt och metoder. Objektorientering. Viktiga begrepp. Klass. Objekt. Deklarativ programmering

2D1342 Programkonstruktion för F1, ht 2006

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

Programmering A. Johan Eliasson

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

DD1342 Programkonstruktion för F1, ht 2007

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

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

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

TENTAMEN OOP

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) Bodega bodegan = new Bodega(); double moms = 0.235; String namn = "Vargtass"; System.out.println(namn + " " + moms + bodegan.ändra(moms, namn); S

Föreläsning 3-4 Innehåll

Anmälningskod: Lägg uppgifterna i ordning. Skriv uppgiftsnummer (gäller B-delen) och din kod överst i högra hörnet på alla papper

TENTAMEN PROGRAMMERINGSMETODIK MOMENT 2 - JAVA, 4P

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

Föreläsning 2 Objektorienterad programmering DD1332. Typomvandling

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

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

Kompilering och exekvering. Föreläsning 1 Objektorienterad programmering DD1332. En kompilerbar och körbar java-kod. Kompilering och exekvering

Lite logik. Kap 6: Sid 2

725G61 - Laboration 5 Grundläggande objektorientering. Johan Falkenjack

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]

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

Programmering för språkteknologer II, HT2011. Rum

Tentamen i Grundläggande programmering STS, åk 1 fredag

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

Högskolan Dalarna sid 1 av 7 DI-institutionen Hans-Edy Mårtensson Sten Sundin

Anmälningskod: Lägg uppgifterna i ordning. Skriv uppgiftsnummer (gäller B-delen) och din kod överst i högra hörnet på alla papper

Tentamen. DD2385 Programutvecklingsteknik vt 2013 Onsdagen den 22 maj 2013 kl Hjälpmedel: penna, suddgummi, linjal

Tentamen OOP

Tentamen i Grundläggande programmering STS, åk 1 lördag

F4. programmeringsteknik och Matlab

Grundläggande programmering, STS 1, VT Sven Sandberg. Föreläsning 12

Bankkonto - övning. Övning 2 Skriv en metod, geträntan, som returnerar räntan.

Dagens program. Programmeringsteknik och Matlab. Objektorienterad programmering. Vad är vitsen med att ha både metoder och data i objekten?

Tentamen. DD2385 Programutvecklingsteknik vt 2014 Måndagen den 2 juni 2014 kl Hjälpmedel: penna, suddgummi, linjal

Instuderingsfrågor, del D

Att deklarera och att använda variabler. Föreläsning 10. Synlighetsregler (2) Synlighetsregler (1)

DI-institutionen Sid 1 av 6 Hans-Edy Mårtensson Sten Sundin

Tentamen i Grundläggande programmering STS, åk 1 fredag

Tentamen i Grundläggande Programvaruutveckling, TDA548

Anmälningskod: Lägg uppgifterna i ordning. Skriv uppgiftsnummer (gäller B-delen) och din kod överst i högra hörnet på alla papper

a. Vilka av följande påståenden är riktiga? Observera att felaktigt valda påståenden ger poängavdrag. (4p)

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

Arv: Fordonsexempel. Arv. Arv: fordonsexempel (forts) Arv: Ett exempel. En klassdefinition class A extends B {... }

Programmering med Java. Grunderna. Programspråket Java. Programmering med Java. Källkodsexempel. Java API-exempel In- och utmatning.

Imperativ programmering. Föreläsning 4

Administrativt. Programmeringsteknik för I1. Dagens program. Objektorienterad programmering

ITK:P1 Föreläsning 1. Programmering. Programmeringsspråket Java. Stark typning Explicit typning Strukturerat Hög säkerhet

TENTAMEN OOP

Tentamen, Algoritmer och datastrukturer

DD2385 Programutvecklingsteknik Några bilder till föreläsning 1 24/ Kursöversikt Javarepetition/Javaintroduktion

Tentamen för kursen Objektorienterad programvaruutveckling GU (DIT010)

Idag. Javas datatyper, arrayer, referenssemantik. Arv, polymorfi, typregler, typkonvertering. Tänker inte säga nåt om det som är likadant som i C.

Lösningar till Fiktiv Tentamen på kursen. 2D4135 Objektorienterad programmering, design och analys med Java vt2004. Teoridel

Objektorienterad Programmering DAT043

Institutionen för TENTAMEN CTH VT-15 Datavetenskap TDA540. Tentamen för TDA540 Objektorienterad programmering

I Skapa Hej.java och skriv programmet. I Kompilera med javac Hej.java. I Rätta fel och repetera tills du lyckas kompilera ditt program

Objektorienterad Programmering (TDDC77)

Programmering för språkteknologer II, HT2014. Rum

Arv och polymorfism i Java

Anmälningskod: Lägg uppgifterna i ordning. Skriv uppgiftsnummer (gäller B-delen) och din kod överst i högra hörnet på alla papper

Laboration 3, uppgift En klass för en räknare

Del A (obligatorisk för alla)

OBJEKTORIENTERAD PROGRAMVARUUTVECKLING. Övningstentamen 1

Tentamen i Programmeringsteknik I, ES,

Objektorienterad Programmering (TDDC77)

Kungl. Tekn. Högskolan Förel 1, bild 1 Föreläsning 1: Introduktion ffl Kursinnehåll ffl Javarepetition ffl Referenser ffl Nyckelordet static ffl Klass

Lösningsförslag till tentamen för TDA540 Objektorienterad Programmering

FÖRSLAG TILL LÖSNINGAR FÖR TENTAMEN I INTERNETPROGRAMMERING MED JAVA, 5p för SY , kl

SMD 134 Objektorienterad programmering

Tentamen för TDA540 Objektorienterad Programmering. Institutionen för Datavetenskap CTH HT-17, TDA540. Dag: , Tid:

Föreläsning 8 - del 2: Objektorienterad programmering - avancerat

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

Anmälningskod: Lägg uppgifterna i ordning. Skriv uppgiftsnummer (gäller B-delen) och din kod överst i högra hörnet på alla papper

Laboration 1 - Grunderna för OOP i Java

Tentamen. DD2385 Programutvecklingsteknik vt Tisdagen den 26 maj 2009 kl Inga hjälpmedel utom penna, sudd och linjal

Omtentamen för TDA540 Objektorienterad Programmering. Institutionen för Datavetenskap CTH HT-16, TDA540. Dag: , Tid:

Tentamen. 2D4135 vt 2004 Objektorienterad programmering, design och analys med Java Torsdagen den 3 juni 2004 kl

Det är principer och idéer som är viktiga. Skriv så att du övertygar examinatorn om att du har förstått dessa även om detaljer kan vara felaktiga.

JAVA Mer om klasser och objektorientering

Programmering för språkteknologer I, VT2012. Rum

Applets med komponenter

KARLSTADS UNIVERSITET 12/8/09 informatik & datavetenskap Johan Öfverberg, Kerstin Andersson Laboration 4, ISG A04 och DVG A08 HT-09

Föreläsning 2. Täcker material från lektion 1, 2, 3 och 4:

String [] argv. Dagens Agenda. Mer om arrayer. Mer om arrayer forts. String [] argv. argv är variabelnamnet. Arrayer och Strängar fortsättning

Tentamen i Programmeringsteknik I

Objektorienterad programmering i Java

Transkript:

Tentamen Datalogi I, grundkurs med Java 10p, 2D4112, 2002-2003 Lördagen den 30 november 2002 kl 9.00 14.00, salar E33, E34 Inga hjälpmedel 30 poäng ger säkert godkänt, 40 poäng ger betyg 4 50 poäng ger betyg 5 Maxpoäng är 62 fördelat på 15 poäng allmän datalogi, uppgift 1 5 10 poäng Haskell, uppgift 6 11 11 poäng flervalsfrågor i Java, uppgift 12 20 26 poäng programmeringsuppgifter i Java, uppgift 21 22 Lösningar kommer att läggas på kurshemsidan den 3 december Allmän datalogi 1a) Konvertera talet 29 till binär form (2p) Visa hur du räknat! Endast fel svar ger 0p! 1b) Konvertera det hexadecimala talet 11 16 till decimal form (1p) 2) De tre största programmeringsparadigmerna är den imperativa, den objektorienterade och den funktionella. För varje paradigm, ange två programmeringsspråk som brukar räknas dit. (Det räcker att språket har sin huvudsakliga tillhörighet i paradigmen.) (2p) 3) a) Vad är en algoritm? (1p) b) Vad menas med komplexiteten hos en algoritm? (1p) c) Vad är pseudokod och varför använder man det? (1p) 4) Vad menas med syntaxen respektive semantiken hos ett programspråk? Ge exempel på ett syntaktiskt fel och ett semantiskt fel i något programspråk. (4p) 5) a) Vad menar man i allmänhet med abstraktion i programmeringssammanhang? Ge gärna ett exempel! (1p) b) Vad är en Abstrakt Datatyp (ADT)? (1p) c) Hur kan man göra en ADT i Java? (1p) 1

Haskell 6) Vad ger operationen [8,2,3] ++ [7,2,5] i Hugs? (1p) a) [8,2,3,7,2,5] b) [15,4,8] c) [16,5,9] 7. Vilket av följande påståenden om funktioner i Haskell är sant? (1p) a) En funktion i Haskell ger alltid ett värde av en bastyp (Int, Char, Float,..) som resultat. b) En funktion i Haskell ger alltid ett värde av en bastyp eller en lista av en bastyp som resultat. c) En funktion i Haskell kan ge en lista av tupler som resultat. 8. En lista i Haskell är (välj ett alternativ!) (1p) a) En ordnad samling data där alla data är av samma typ, och typen måste vara någon av bastyperna : Int, Char, Float-, o.s.v. b) En ordnad samling data där data får vara av olika typer. c) En ordnad samling data där alla data är av samma typ, typen får vara en godtyckligt sammansatt typ. 9) Beskriv med ord vad funktionen gör eller tala om vad funktionsvärdena blir för ex9 1 7 och ex9 9 1 (2p) ex9 x y x < y = x otherwise = y 10) Vilken lista får man om man skriver in detta Haskell uttryck till Hugs? (2p) [ m+n (m,n) <- [(2,5),(7,3),(4,2)]] 11) Funktionen mystery nedan anropas vanligen med en tom sträng som första parameter, t.ex. så här: mystery [] "ABCDEFG" Beskriv med ord vad funktionen ger för resultat när den anropas med tom sträng som första parameter och en icketom sträng som andra parameter! (3p) mystery :: String -> String -> String mystery y [] = y mystery y (x:xs) = mystery (x:y) xs 2

Java flervalsfrågor endast ett svar är rätt på varje fråga 12) Metoden Math.sin som beräknar värdet av sinusfunktionen är en (1p) a) Klassmetod b) Instansmetod c) Callback-metod 13) Vilket av följande påståenden om konstruktormetoder är sant? (1p) a) Konstruktormetoden anropas varje gång ett objekt (en instans) av en klass skapas, dvs en gång per objekt. 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. 14) 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=true d)b=false 15)Endast ett av följande är sant (1p) 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 16) Ett uttryck i Java av typen yyy.xxx(); måste vara (1p) a) en deklaration b) ett metodanrop c) en uppmaning att klassen xxx skall ärva från klassen yyy d) något annat än det som beskrivs i a), b) eller c) 17) Om en klassdeklaration börjar class X extends Y så uttrycker det en relation mellan klasserna. Vilken? (1p) a) Y är en X b) X är en Y c) Y har en X d) X har en Y 3

18) 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)? (1p) a) Canvas b) Frame c) TextArea 19) (2p) Följande kodavsnitt exekveras i en main-metod. Hur många gånger skrivs texten Java-student ut? for (int i=0; i<10; i++) System.out.println("Java-student"); a) 0 gånger b) 9 gånger c) 10 gånger d)ingetava)b)ellerc)ärrätt 20) (2p) 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 4

Java programmeringsuppgifter 21a) (totalt 15p) a) Skriv en klass i Java för att representera labbresultat för en student. Klassen kan heta LabbResultat och den ska ha två instansvariabler: Studentens namn och en vektor vars element är av typen char. I vektorn skall lagras tecknen G för godkänd labb eller tecknet - för ännu ej godkänd labb och vi låter index i vektorn också betyda labbnummer. Lite hjälp: En teckenvektor deklareras char[] namn; och skapas om den ska ha 40 element. namn = new char[40]; Klassen ska ha följande instansmetoder: metod som visar studentens namn. (1p) metod för att godkänna en labb med ett visst nummer (1p) metod för att ta bort godkännandet av en viss labb (1p) (ifall man godkänt felaktigt) metod för att räkna (eller visa) hur många godkända labbar studenten har (2p) metod som ger true om studenten är klar med alla labbar och false annars (2p) metod som skriver ut en rad med information i terminalfönstret om studenten på formen Hermione Granger G G G - - - G, dvs namnet samt innehållet i den vektor som håller reda på labbresultaten. För utskrift i terminalfönstret används metoderna System.out.print(..) och System.out.println(..) (3p) Metoderna nr 2 och 3 ovan ska ha labbnumret som parameter. När en instans av LabbResultat skapas skall studentens namn samt antalet laborationer studenten ska göra anges. En vektor med rätt antal element ska då skapas och elementen sättas till -. För rätt struktur, instansvariabler och konstruktor ges (5p). Instansvariablerna ska vara dolda. Det är tillåtet att införa fler instansvariabler och fler metoder än de som krävs om du tycker det är lämpligt. Instansvariabel som borde varit lokal variabel i en metod ger dock poängavdrag. 21b) (3p) Skriv en deklaration av en referensvariabel av typen LabbResultat,skapaeninstans av klassen för studenten "Harry Potter" med 7 st labbar. Skriv också en sats som godkänner Harry på lab nr 3. Denna uppgift får lösas även om man inte löst 19a) 5

22) (8p) Följande Applet skall rita en vacker bild som definieras i metoden ritabild. Bilden ska ritas i en ny position varje gång användaren trycker på knappen flytta. Den vackra bilden ska ritas snett nedanför till höger om den plats den senast hade. Programmet är ofullständigt och de 6 satser som måste läggas till för att det ska fungera finns nedanför. Uppgiften här är att stoppa in dessa satser på rätt platser och i rätt ordning. public class Question extends Applet implements ActionListener { int pos = 20; public void init () { public void paint (Graphics g) { private void ritabild (Graphics g, int xpos, int ypos) { // här finns kod som ritar en bild // här skall inget stoppas in public void actionperformed (ActionEvent e) { Här är satserna som ska stoppas in: pos += 10; ritabild(g, pos, pos); add(flytta); flytta.addactionlistener (this); repaint(); Button flytta = new Button("Flytta"); 6