OOP Tentamen

Relevanta dokument
OOP Tenta

OOP Exempel Tentamen 2007

OOP Tentamen

OOP Omtenta

OOP Tentamen

OOP Omtenta

OOP Omtenta

OOP Omtenta

OOP Tenta

OOP Omtentamen

TENTAMEN OOP

TENTAMEN OOP

TENTAMEN OOP

Tentamen OOP

Tentamen i Programmering

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

OBJEKTORIENTERAD PROGRAMVARUUTVECKLING. Övningstentamen 1

OOP Objekt-orienterad programmering

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

OOP Objekt-orienterad programmering

Föreläsning 8. Arv. Arv (forts) Arv och abstrakta klasser

Klasshierarkier - repetition

Tentamen i Programmeringsteknik I

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

Tentamen i Programmeringsteknik I, ES,

OOP Objekt-orienterad programmering

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

Tentamen, EDAA10 Programmering i Java

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

Tentamen, EDA501 Programmering M L TM W K V

LÖSNINGSFÖRSLAG TENTAMEN

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

Laboration 1 - Grunderna för OOP i Java

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

OBJEKTORIENTERAD PROGRAMVARUUTVECKLING

OOP Objekt-orienterad programmering

1 Uppgift 1. a) Skapar ett Company-objekt med hjälp av den överlagrade konstruktorn. Du kan själv välja värden på instansvariablerna.

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

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

Tentamen i Programmeringsteknik I,, KandMa/Fy,

Tentamen för kursen Objektorienterad programvaruutveckling GU (DIT010)

Tentamen på kursen DA7351, Programmering , kl Malmö högskola Teknik och samhälle. DA7351, Programmering

Tentamen. Lösningsförslag

DELPROV 1 I DATAVETENSKAP

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

Tentamen i Grundläggande programmering STS, åk

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

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

OOP Objekt-orienterad programmering

Instuderingsfrågor, del D

Föreläsning 8: Exempel och problemlösning

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

Sortering. Om du följt dessa steg korrekt så ska böckerna nu vara sorterade.

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

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

Subklasser och arv Inledning till grafik (JFrame och JPanel). Något om interface. Objektorienterad programvaruutveckling GU (DIT011) Subklasser

Detta dokument är ett exempel, cirka hälften av en tentamen för TDA545 Objektorienterad programvaruutveckling

JAVA Mer om klasser och objektorientering

PROGRAMMERINGSTEKNIK TIN212

UML. Klassdiagr. Abstraktion. Relationer. Överskugg. Överlagr. Aktivitetsdiagram Typomv. Typomv. Klassdiagr. Abstraktion. Relationer.

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

Outline. Objektorienterad Programmering (TDDC77) Att instansiera en klass. Objekt. Instansiering. Åtkomst. Abstrakt datatyp.

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

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

Grundläggande programmering med C# 7,5 högskolepoäng. Provmoment: Ladokkod: Tentamen ges för: TEN1 NGC011 ADAEK17, ASYST17 samt öppen för alla

Tentamen för kursen Objektorienterad programvaruutveckling GU (DIT010)

Outline. I Vi kan lätt göra samma sak för fyra variabler... I Hur gör vi för 400 inlästa värden? I Ofta behöver man flera likadana variabler

732G Linköpings universitet 732G11. Johan Jernlås. Översikt. Repetition. Muddy. Funktioner / metoder. Punktnotation. Evalueringsordning

Tentamen i Programmeringsteknik I

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

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

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

Dagens föreläsning. Sett i datorsalarna. Mer om arrayer. Matriser. Formatering av utskrifter. Inläsning med hjälp av Scanner-klassen

Tentamen i Grundläggande programmering STS, åk

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

OOP Objekt-orienterad programmering

Konstruktion av klasser med klasser

OBJEKTORIENTERAD PROGRAMMERING för Z1 (TDA540)

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

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

Dugga i Grundläggande programmering STS, åk

Laboration 13, Arrayer och objekt

Outline. Objektorienterad Programmering (TDDC77) Åsidosättning. Signatur. Åsidosättning. Abstrakta klasser. Ahmed Rezine.

TDDC77 Objektorienterad Programmering

Föreläsning 4. Klass. Klassdeklaration. Klasser Och Objekt

OOP Objekt-orienterad programmering

Objektorienterad Programmering (TDDC77)

2I1049 Föreläsning 5. Objektorientering. Objektorientering. Klasserna ordnas i en hierarki som motsvarar deras inbördes ordning

Tentamen, EDA501/EDAA20 Programmering M MD W BK L

4 13 / %.; 8 </" '': " / //&' " " ' * TelefonKostnad +,-%&. #!" $% " &' . > / ' 5 /' * 13/ &' static Math 1+" &'/ % 12 "" static "' * 1 /") %& &

Tentamen, EDAA10 Programmering i Java

Föreläsning 3: Booleans, if, switch

Command line argumenter. Objektorienterad Programmering (TDDC77) Vad blir resultatet? Nu då? Ahmed Rezine. Hösttermin 2016

Objektorienterad Programmering (TDDC77)

TENTAMEN PROGRAMMERINGSMETODIK MOMENT 2 - JAVA, 4P

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

SP:PROG3 HT12 Tenta

Examination i. PROGRAMMERINGSTEKNIK F1/TM1 TIN212 (Dugga) Dag: Onsdag Datum: Tid: (OBS 3 tim) Rum: V

Outline. For. I istället för att följa det normala ordningen, man ändra den. I i Java får man inte göra hopp hur som helst

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

Transkript:

DVS SU/KTH 1 (6) OOP OOP Tentamen 2007-12-21 13.00 18.00 Avser kurserna: DSK1:OOP GES:OOP ID1013 GKOOP-distans Anvisningar Skriv namn och personnummer på varje inlämnat blad. Påbörja varje ny uppgift på nytt blad. Skriv endast på ena sidan av bladen. Skriv tydligt - oläsbara svar beaktas ej. Max antal poäng är 30. För att bli godkänd på tentan (minst betyg E) krävs dels minst 4 poäng sammanlagt på uppgift 1 och uppgift 2 och dels minst 15 poäng sammanlagt på hela tentan. För högre betyg krävs: Betyg D: minst 18 poäng samt högst en uppgift med 0 poäng. Betyg C: minst 21 poäng samt ingen uppgift med 0 poäng. Betyg B: minst 24 poäng samt ingen uppgift med 0 poäng. Betyg A: minst 27 poäng samt uppgifterna lösta med korrekt användande av objektorienterade principer (t.ex. inkapsling, ej upprepning av kod). Betyget Fx med möjlighet att komplettera ges till studenter som fått 12-14 poäng eller som fått mer än 14 poäng men missat att få 4 poäng på uppgift 1+2. Hjälpmedel Samtliga läroböcker om Java är tillåtna hjälpmedel. Kompendier räknas INTE som läroböcker. Lycka till!!!! Lösningsförslag kommer att presenteras på kursens webbsidor.

DVS SU/KTH 2 (6) OOP Uppgift 1 (6 poäng) Om man exekverar följande programrader, vad kommer att att skrivas ut på skärmen (du skall i dina svar vara noga med vad som skrivs på vilken rad, alltså beakta skillnaden mellan print och println). A int tal = 7; switch (++tal){ case 7: System.out.println(tal); break; case 8: System.out.println(tal++); default: System.out.println(++tal); int tal2 = tal + 3; System.out.println(tal + tal2); B int x = 12; do { for (int w=9; w<x; w++) System.out.print(w+ ); --x; System.out.println(x); while (x>7); C int[] arr = new int[10]; int tal = 3; for (int x=0; x<arr.length; x++) arr[x] = x + tal++; System.out.println( Arrayen: ); for (int x : arr){ System.out.print(x+ ); if (x%3 == 0) System.out.println();

DVS SU/KTH 3 (6) OOP Uppgift 2 (6 poäng) Om man exekverar (interpreterar) följande Java-program - vad kommer att skrivas ut? main-metoden ligger i class Uppgift2, startas alltså med: java Uppgift2 class Uppgift2{ public static void main(string[] args){ Yber[] alla = new Yber[4]; alla[0] = new Merten("Groda", "Huggorm"); alla[1] = new Botre(); alla[2] = new Merten("Geting", "Blåval"); alla[3] = new Botre(); for (Yber y : alla) System.out.println(y); class Yber{ private static int antal = 2; private String str = "Undulat"; public Yber(){ str = "Katt"; antal++; public Yber(String str){ this.str=str; public String tostring(){ String retur = "Yber: "+str; for (int x=0; x<antal; x++) retur += getstring(); return retur; public String getstring(){ return str; class Merten extends Yber{ private String minegen; public Merten(String s1, String s2){ super(s1); minegen = s2; public String tostring(){ return "Merten: "+minegen+" och "+getstring(); class Botre extends Yber{ public String getstring(){ return "Elefant";

DVS SU/KTH 4 (6) OOP Uppgift 3 (6 poäng) Skriv ett litet Java-program (en klass med en main-metod) som frågar användaren efter ett antal heltal och som sedan beräknar och skriver ut medelvärdet av de positiva av dessa heltalen. Därefter skall alla tal som var större än detta medelvärde skrivas ut. Programmet skall först fråga användaren efter hur många tal som skall matas in. Därefter får användaren mata in alla dessa tal. Bland de inlästa talen kan det nu finnas negativa tal samt tal som är lika med noll. Dessa tal är ointressanta och skall inte tas med i beräkningen av medelvärdet. Medelvärdet skall beräknas och skrivas ut (det är ok att avrunda medelvärdet till ett heltal). Sist i programmet skall alla tal som är större än detta medelvärde skrivas ut. När programmet körs skall det se ut ungefär så här: Hur många tal? 14 Tal 1> 32 Tal 2> 7 Tal 3> 0 Tal 4> 19 Tal 5> -21 Tal 6> 8 Tal 7> 27 Tal 8> -4 Tal 9> 0 Tal 10> 15 Tal 11> 3 Tal 12> -9 Tal 13> 0 Tal 14> 9 Medelvärdet av de positiva talen var: 15 Talen större än medel: 32 19 27 I exemplet ovan blev medel 15 eftersom de positiva talen är: 32, 7, 19, 8, 27, 15, 3 och 9. Summan av dessa är lika med 120 och 120/8 blir 15.

DVS SU/KTH 5 (6) OOP Uppgift 4 (6 poäng) Följande klasser finns: abstract class Båt{ private int längd; public int getlängd(){ return längd; class MotorBåt extends Båt{ private int motorstyrka; public int gethastighet(){ return motorstyrka * getlängd(); class SegelBåt extends Båt{ private int segelyta; public int gethastighet(){ return segelyta + getlängd(); Klasserna innehåller även lämpliga konstruktorer, ej relevanta för denna uppgift. Ni får (om ni så önskar) lägga till saker i klasserna ovan. Redovisa i så fall vad ni vill lägga till och var (i vilken/vilka klasser) ni vill lägga till det. Er uppgift är att skriva en metod som får två argument, dels en ArrayList<Båt> (fylld med blandade MotorBåt- och SegelBåt-objekt) och dels en int (som representerar en viss hastighet). Ni skall sedan i metoden skriva ut en lista över alla båtar vars hastighet är lägre än det angivna heltalsargumentet (alltså de MotorBåt- och SegelBåt-objekt vars metod gethastighet returnerar ett värde lägre än int-argumentet). I listan skall det framgå vilken sorts båt det är samt vilken hastighet båten har. Utskriften skulle t.ex. kunna se ut så här: Segelbåt: Hastighet = 17 Motorbåt: Hastighet = 23 Mototbåt: Hastighet = 16 Segelbåt: Hastighet = 22 OBS metoden som ni skriver måste ju i Java ligga inuti någon klass. Det kan ni strunta i i denna uppgift, det räcker alltså med själva metoden. Utskrifterna som görs skall göras i terminalfönstret (alltså med hjälp av System.out).

DVS SU/KTH 6 (6) OOP Uppgift 5 (6 poäng) Man vill i ett Java-program kunna representera olika fordon som man kan åka med. För detta finns en superklass Fordon som ser ut så här: abstract class Fordon{ private String destination; public Fordon(String destination){ this.destination=destination; public String getdestination(){ return destination; abstract public int maxhastighet(); Alla olika sorters Fordon har en destination (en String som anges vid skapandet) samt en hastighet. Klass Fordon får varken ändras eller utökas. Er uppgift är att skriva klassen Tåg som är en subklass till Fordon. Ett Tåg har ett antal vagnar (en int som anges vid skapandet). Man skall utifrån ett Tågobjekt kunna avläsa hur många vagnar som tåget har. Antalet vagnar hos ett Tåg-objekt skall kunna ändras men skall aldrig kunna vara mindre än ett. Hastigheten för ett tåg beräknas på följande sätt: Ett Tåg med 1-3 vagnar har hastigheten 125, om tåget har 4-7 vagnar så är hastigheten 110 och om tåget har fler än 7 vagnar så är hastigheten 95. Ett Tågs attribut, konstruktorer och metoder skall ha lämpliga åtkomstmodifierare.