OOP Exempel Tentamen 2007

Relevanta dokument
OOP Tentamen

OOP Omtenta

OOP Tentamen

OOP Tenta

OOP Tentamen

OOP Omtenta

OOP Omtenta

OOP Omtenta

OOP Tenta

OOP Omtentamen

TENTAMEN OOP

TENTAMEN OOP

TENTAMEN OOP

OOP Objekt-orienterad programmering

Tentamen OOP

OBJEKTORIENTERAD PROGRAMVARUUTVECKLING. Övningstentamen 1

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

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

Tentamen. Lösningsförslag

Laboration 1 - Grunderna för OOP i Java

LÖSNINGSFÖRSLAG TENTAMEN

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

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

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

OOP Objekt-orienterad programmering

OOP Objekt-orienterad programmering

OOP Objekt-orienterad programmering

OOP F1:1. Föreläsning 1. Introduktion till kursen OOP Vad är Java? Ett första Java-program Variabler Tilldelning. Marie Olsson

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

OOP Objekt-orienterad programmering

PROGRAMMERINGSTEKNIK TIN212

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

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

Klasshierarkier - repetition

Tentamen, EDA501 Programmering M L TM W K V

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

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

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

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

Tentamen, EDAA10 Programmering i Java

Tentamen i Programmering

Tentamen i Programmeringsteknik I, ES,

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

OOP Objekt-orienterad programmering

OBJEKTORIENTERAD PROGRAMVARUUTVECKLING

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

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

Målen med OOSU. Objektorienterad programmering. Objektorienterad programmering. Karlstads Universitet, Johan Öfverberg 1

Objektorienterad Programmering (TDDC77)

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

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

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

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

Malmö högskola 2007/2008 Teknik och samhälle

Malmö högskola 2008/2009 CTS

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

2D1339 Programkonstruktion för F1, ht 2004

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

Exempel: Exempel: Exempel: Exempel: $djur=array("ko","katt","älg"); foreach ($djur as $d) { echo $d. " "; } Resultat. ko katt älg

Arv. Objektorienterad och komponentbaserad programmering

DAT043 Objektorienterad Programmering

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

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 TDP004 Objektorienterad Programmering Lösningsförslag

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

Tentamen för kursen Objektorienterad programvaruutveckling GU (DIT010)

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

Konstruktion av klasser med klasser

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

Tentamen i Programmeringsteknik I

Klasser i Java kan ha metoder och egenskaper. Metoder beskriver funktioner som klassen kan utföra. Egenskaper beskriver innehållet i klassen.

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

Objektorienterad Programmering (TDDC77)

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

PROGRAMMERING-Java TENTAMINA

SP:PROG3 HT12 Tenta

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

Malmö högskola 2007/2008 Teknik och samhälle

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

Outline. Objektorienterad Programmering (TDDC77) Signatur. Klassen calculator. Överlagring (overloading) Arv (inheritance) Ahmed Rezine

Laboration 13, Arrayer och objekt

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

Lösningsförslag. Programmeringsmetodik, KV: Java och OOP. 17 januari 2004

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

Objektorienterad Programkonstruktion, DD1346. Tentamen , kl

Tentamen i Grundläggande programmering STS, åk

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

OBJEKTORIENTERAD PROGRAMMERING för Z1 (TDA540)

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

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

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

DD1342 Programkonstruktion för F1,

Objektorienterad Programmering (TDDC77)

TENTAMEN: Objektorienterad programmering. Läs detta! Skriv din tentamenskod på varje blad (så att vi inte slarvar bort dem).

JAVA Mer om klasser och objektorientering

DELPROV 1 I DATAVETENSKAP

Tentamen FYTA11 Javaprogrammering

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

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

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

Transkript:

DVS SU/KTH 1 (6) OOP OOP Exempel Tentamen 2007 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 tal1 = 10, tal2 = 5; if (tal1-- > tal2++) System.out.println(--tal1); else System.out.println(++tal2); System.out.println(tal1--); System.out.println(tal2++); B int z = 25; for (int x=1; x<z; x++){ System.out.print(z); z-=4; System.out.println( +(z+x)); C int[] arr = new int[10]; for (int x=0; x<arr.length; x++) arr[x] = x+15; System.out.println( Arrayen: ); for (int x : arr){ System.out.print(x+ ); if (x%5 == 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){ Trippen t1=new Funken("Ekorre"); Trippen t2=new Naddan("Krokodil"); Trippen t3=new Funken("Iller"); t1.skriv(); t2.skriv(); t3.skriv(); class Trippen{ private String sak="kameler"; private int antal=5; public Trippen(String sak, int antal){ this.sak=sak; this.antal=antal; public Trippen(){ this("grävling", 3); public void skriv(){ for (int x=0; x<antal; x++) System.out.print(getSak()); System.out.println(sak); public String getsak(){ return sak; class Funken extends Trippen{ public Funken(String vad){ super(vad, 2); public void skriv(){ System.out.println("Start+++++"); super.skriv(); System.out.println("Stopp-----"); class Naddan extends Trippen{ private String mingrej; public Naddan(String grej){ mingrej=grej; public String getsak(){ return mingrej;

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 textsträngar. Därefter skall programmet fråga användaren efter en längd och sedan skriva ut alla textsträngar som har fler tecken än denna angivna längd. Programmet skall först fråga användaren efter hur många textsträngar som skall matas in. Därefter får användaren mata in alla dessa strängar. Sedan frågas efter längden och slutligen skrivs alla strängar med fler tecken än den angivna längden ut på skärmen. När programmet körs skall det se ut ungefär så här: Hur många textsträngar? 7 Sträng 1> Hejsan Hoppsan Sträng 2> Järnvägsviadukt Sträng 3> Papegoja Sträng 4> H876% ZQ916+?# Sträng 5> Gatsten Sträng 6> Rulltårta Sträng 7> Senapsmarinad Ange längden: 10 Textsträngarna som är längre än 10 tecken: Hejsan Hoppsan Järnvägsviadukt H876% ZQ916+?# Senapsmarinad Som hjälp kan nämnas att det i klass String bl.a. finns metoden: public int length() Returnerar textsträngens längd

DVS SU/KTH 5 (6) OOP Uppgift 4 (6 poäng) Följande klasser finns: abstract class Djur{ private String namn; private int ålder; public int getålder(){ return ålder; public String getnamn(){ return namn; class Hund extends Djur{ private int vikt; public int getsvans(){ return vikt*getålder()/10; class Katt extends Djur{ private int lathet; public int getlathet(){ return lathet; Klasserna innhåller även lämpliga konstruktorer, ej relevanta för denna uppgift. Del A Skriv en metod som får en ArrayList<Djur> som argument (fylld med blandade Hund- och Katt-objekt) och som skriver ut en lista över alla objektens sort och namn, enligt: Katt: Misse Hund: Fido Hund: Fluffie Katt: Snöboll 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. Del B Skriv en annan metod som även den får en ArrayList<Djur> (fylld med blandade Hund- och Katt-objekt) som argument. Er metod skall skriva ut namnet på den Katt som har störst lathet (det katt-objekt vars metod getlathet returnerar störst värde). Om det finns flera Katter med samma (lika stora) lathet kan vilken som helst av dem skrivas ut, om det i argument-samlingen inte finns några Katt-objekt skall Inga Katter skrivas. OBS metoderna som ni skriver i A och B 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 metoderna. 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 saker som finns i skogen och som olika djur kan äta. För detta finns en superklass Mat som ser ut så här: abstract class Mat{ private int vikt; public Mat(int vikt){ this.vikt=vikt; public int getvikt(){ return vikt; abstract public int getnäringsvärde(); Alla olika sorters Mat har en vikt (en int som anges vid skapandet) samt ett näringsvärde. Klass Mat får varken ändras eller utökas. Er uppgift är att skriva klassen Nöt som är en subklass till Mat. En Nöt har en viss brunhet (en int som anges vid skapandet). Man skall utifrån ett Nötobjekt kunna avläsa brunheten. Brunheten hos ett Nöt-objekt skall kunna ändras men skall aldrig kunna vara lägre än tre. Näringsvärdet för en Nöt räknas ut på följande sätt: Om Nötens vikt är större än 10 så är näringsvärdet = vikt * brunhet. Annars så är näringsvärdet = brunhet * 5. En Nöts attribut, konstruktorer och metoder skall ha lämpliga åtkomstmodifierare.