OOP Tenta

Relevanta dokument
OOP Tentamen

OOP Omtenta

OOP Tentamen

OOP Tentamen

OOP Tenta

OOP Omtenta

OOP Omtenta

OOP Exempel Tentamen 2007

OOP Omtentamen

OOP Omtenta

TENTAMEN OOP

TENTAMEN OOP

TENTAMEN OOP

Tentamen OOP

Tentamen i Programmering

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

OBJEKTORIENTERAD PROGRAMVARUUTVECKLING. Övningstentamen 1

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

OOP Objekt-orienterad programmering

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

OOP Objekt-orienterad programmering

OOP Objekt-orienterad programmering

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

Konstruktion av klasser med klasser

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

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

OOP Objekt-orienterad programmering

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

Klasshierarkier - repetition

Instuderingsfrågor, del D

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

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

Klasshierarkier. Klasser kan byggas på redan definierade klasser

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

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

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

Tentamen i Programmeringsteknik I, ES,

OOP Objekt-orienterad programmering

Dugga i Grundläggande programmering STS, åk

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

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.

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

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

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)

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

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

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

Kort repetition. Programmeringsteknik för Bio1 och I1. Vad ska vi lära oss idag? Ett exempel

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

OBJEKTORIENTERAD PROGRAMVARUUTVECKLING

Tentamen i Grundläggande programmering STS, åk

Tentamen, EDAA10 Programmering i Java

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

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

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

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

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

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

Objektorienterad Programmering (TDDC77)

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

PROGRAMMERINGSTEKNIK TIN212

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

Laboration 1 - Grunderna för OOP i Java

TDDE10 TDDE11, 725G90. Objektorienterad programmering i Java, Föreläsning 3 Erik Nilsson, Institutionen för Datavetenskap, LiU

Föreläsning REPETITION & EXTENTA

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

Mer källkod. Styrstrukturer Val Slingor Operatorer Källkodsexempel med minne. Erik Forslin. Rum 1445, plan 4 på Nada

Objektorienterad Programkonstruktion, DD1346. Tentamen , kl

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

PROG2 Tenta Gäller SP:PROG2, DSK2:PROG2, FK:PROG2, FK:OOP, DSV1:P2 och ITK:P2

Tentamen i Programmeringsteknik I

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

2D1342 Programkonstruktion för F1, ht 2006

TENTAMEN I PROGRAMMERING. På tentamen ges graderade betyg:. 3:a 24 poäng, 4:a 36 poäng och 5:a 48 poäng

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

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

OOP Objekt-orienterad programmering

Vad handlar kursen om? Algoritmer och datastrukturer. Vad handlar kursen om? Vad handlar kursen om?

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

Föreläsning 5 (6) Metoder. Metoder Deklarera. Metoder. Parametrar Returvärden Överlagring Konstruktorer Statiska metoder tostring() metoden javadoc

EDAA20 Programmering och databaser. Mål komprimerat se kursplanen för detaljer. Checklista. Föreläsning 1-2 Innehåll. Programmering.

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

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

2D1339 Programkonstruktion för F1, ht 2004

Objektorienterad Programmering (TDDC77)

JAVA Mer om klasser och objektorientering

Repetition av viktiga begrepp inom objektorienterad programmering

Outline. Objektorienterad Programmering (TDDC77) Laborationsserie del två. Vad händer under HT2. Introduktion HT2 UML.

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

DD1342 Programkonstruktion för F1,

Variabler som hör till enskilda objekt. Deklareras på översta nivån i klassen och i regel som private.

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

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

Objektorienterad Programmering (TDDC77)

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

Arv. Objektorienterad och komponentbaserad programmering

1 Repetition av viktiga begrepp inom objektorienterad programmering

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

Transkript:

Stockholms universitet sid 1 OOP OOP Tenta 2012-01-14 10.00 15.00 Avser kurserna DSK1:OOP och GES:OOP Anvisningar 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.

Stockholms universitet sid 2 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). Uppgift 1A String str1="apa"; String str2="gris"; int tal1=11; int tal2=22; switch (++tal1) { case 10: case 11: System.out.println(str1); case 12: System.out.println(str1+tal2++); case 13: System.out.println(str1+str2); break; case 14: System.out.println(tal2+str1); default: System.out.println(tal1++); int tal3 = ++tal1+tal2++; System.out.println(tal2+tal3); Uppgift 1B for (int x=2; x<8; x+=2) { int y = x*2; do { if (y<10) System.out.print(x+y); else System.out.print(x+"y"); y -= 2; System.out.print(" "); while (y>x); System.out.println("stopp "+y); Uppgift 1C int[] arr = new int[6]; int x=6; for (int i=0; i<arr.length; i++) if (x>i) arr[i] = --x+i; else arr[i] = x+i; for (int i : arr) System.out.println(i);

Stockholms universitet sid 3 OOP Uppgift 2 (6 poäng) Om man exekverar (interpreterar) följande Java-program, vad kommer då att skrivas ut? mainmetoden ligger i class Uppgift2, startas alltså med: java Uppgift2 class Uppgift2 { public static void main(string[] args) { Sak[] saker = new Sak[5]; saker[0] = new Leksak("boll"); saker[1] = new Nyttosak("docka"); saker[2] = new Leksak("hink"); saker[3] = new Nyttosak("spade"); saker[4] = new Leksak("kloss"); for (Sak x : saker) System.out.println(x); class Sak { private static int antal=0; private String egenskap="troll"; public Sak(){ public Sak(String typ) { egenskap=typ+egenskap; antal++; public String tostring() { antal--; String tmp="tio "; for (int x=0; x<antal; x++) tmp += egenskap + " "; return tmp; class Nyttosak extends Sak { private String namn="ring"; public Nyttosak(String str) { namn="stor "+str; public String tostring() { return "mega"+namn; class Leksak extends Sak { public Leksak(String str) { super(str); public String tostring(){ return "fem" + super.tostring();

Stockholms universitet sid 4 OOP Uppgift 3 (6 poäng) Skriv ett Java-program (en klass med en main-metod) som frågar användaren efter ett antal heltal och som sedan skriver ut de tal som ligger mellan 0 och 100. Därefter skall deras summa skrivas ut och vilket av talen som är störst. 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 inmatade talen kan det finnas negativa tal och tal som är större än 100. Dessa tal är ointressanta och skall inte tas med i beräkningen av summan eller största tal. Summan skall beräknas och skrivas ut. Sist i programmet skall det största av talen mellan 0 och 100 skrivas ut. När programmet körs skall det se ut så här: Hur många tal? 10 Tal: 9 Tal: -2 Tal: 17 Tal: 108 Tal: -98 Tal: 88 Tal: 131 Tal: 0 Tal: 61 Tal: 315 Tal mellan 0 och 100: 9 17 88 0 61 Talens summa är 175 Störst av talen är 88 All kod i Java skall egentligen finnas inom en metod. Du kan bortse från det i denna uppgift. Det räcker alltså att skriva de programrader som löser uppgiften enligt texten. Utskrifterna som görs skall skrivas ut i terminalfönstret (alltså med hjälp av System.out).

Stockholms universitet sid 5 OOP Uppgift 4 (6 poäng) Skriv ett Java-program enligt uppgiftstexten nedan: Tre nya seriefigurfamiljer skall flytta in på gården Tecknade djur i Seriernas Värld. De nya familjerna är fam. Ko, fam. Struts och fam. Gräsand. Familjerna på gården skall hanteras hierarkiskt i ett Javaprogram med hjälp av arv från superklassen Seriefigur. Oberoende av vilken typ av seriefigur det är så har varje seriefigur ett förnamn och en del har dessutom ett telefonnummer. Förnamnet tilldelas seriefiguren direkt när den skapas. Om seriefiguren har ett telefonnummer så skall det också tilldelas direkt när seriefiguren skapas. Superklassen skall således ha två stycken konstruktorer. Alla seriefigurers telefonnummer ska dessutom kunna ändras i efterhand. I den här uppgiften ska du konstruera klasserna för de nya seriefigurfamiljerna och superklassen. Redogör för alla attribut (variabler) och operationer (metoder) för samtliga klasser så att det blir en komplett lösning utifrån informationen i den här texten. Korna är lite petiga med maten, så man behöver veta varje kos favoritmaträtt. Strutsarna kan i Seriernas Värld ha olika mönster. De kan t.ex. vara prickiga, randiga, rutiga o.s.v. och man ska kunna hålla reda på vilket mönster varje struts har. Gräsänderna har ingenting speciellt som man behöver hålla reda på som bara gäller gräsänder förutom att efternamnet Gräsand skall läggas till namnet när en ny gräsand skapas. Även kornas favoritmaträtt och strutsarnas mönster skall tilldelas när dessa seriefigurer skapas. Alla variabler ska vara deklarerade som private, vilket betyder att det måste finnas ett antal åtkomstmetoder för dessa variabler i din lösning.

Stockholms universitet sid 6 OOP Uppgift 5 (6 poäng) Följande klasser finns: abstract class Fordon { private int hastighet; public int gethastighet() { return hastighet; class Bil extends Fordon { public int maxpassagerare() { if (gethastighet()>100) return 2; else return 4; class Buss extends Fordon { private int längd; public int maxpassagerare() { return längd*4; Uppgiften är att skriva en metod som får en ArrayList<Fordon> som argument. Den ArrayListan är fylld med blandade Bil- och Buss-objekt. Metoden skall även få ett heltal som argument, talet anger ett antal passagerare som vill åka. Ni skall sedan skriva ut sort (Bil eller Buss) och max antal passagerare för alla fordon som har plats för minst så många passagerare som heltalsargumentet anger. Om t.ex. talet 3 skickats som argument skall utskriften kunna se ut så här: Buss 36 Bil 4 Buss 48 Bil 4 Bil 4 Buss 36 Ni får (om ni anser att det behövs för att lösa uppgiften) lägga till kod 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. Klasserna innehåller egentligen även lämpliga konstruktorer men de visas inte i denna uppgift. All kod i Java skall egentligen finnas inom en metod. Du kan bortse från det i denna uppgift. Det räcker alltså att skriva de programrader som löser uppgiften enligt texten. Utskrifterna som görs skall skrivas ut i terminalfönstret (alltså med hjälp av System.out).