OOP Omtenta 2011-03-05 10.00 15.00



Relevanta dokument
OOP Omtenta

OOP Exempel Tentamen 2007

OOP Tenta

OOP Tentamen

OOP Tentamen

OOP Tentamen

OOP Omtenta

OOP Tenta

OOP Omtenta

OOP Omtentamen

OOP Objekt-orienterad programmering

Tentamen OOP

TENTAMEN OOP

TENTAMEN OOP

OOP Objekt-orienterad programmering

TENTAMEN OOP

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

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

OOP Objekt-orienterad programmering

Tentamen för kursen Objektorienterad programvaruutveckling GU (DIT010)

SMD 134 Objektorienterad programmering

OOP Objekt-orienterad programmering

Laboration 1 - Grunderna för OOP i Java

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

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

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

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

Objektorienterad Programkonstruktion, DD1346 FACIT. Tentamen , kl

OOP Objekt-orienterad programmering

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

OOP Objekt-orienterad programmering

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

Tentamen i Objektorienterad programmering

TENTAMEN. Kurs: Objektorienterad programmeringsmetodik 5DV133 Ansvarig lärare: Anders Broberg. VT-13 Datum: Tid: kl

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

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

Tentamen, EDAA20/EDA501 Programmering

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

Tänk på följande: 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

Objektorienterad programmering D2

Objektorienterad programmering i Java

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

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

Introduktion till arv

Att bekanta dig med NetBeans programmeringsmiljö och skriva några enkla program med programmeringsspråket Java.

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

Laboration 13, Arrayer och objekt

Redovisning av inlämningsuppgifter

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

DELPROV 1 I DATAVETENSKAP

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

DUGGA: Objektorienterade applikationer. Läs detta! Uppgifterna är inte avsiktligt ordnade efter svårighetsgrad.

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

Föreläsning 7. Träd och binära sökträd

Tentamen. Lösningsförslag

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

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.

Malmö högskola 2008/2009 CTS

Laboration 10 - NetBeans

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

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

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

Chapter 4: Writing Classes/ Att skriva egna klasser.

Chapter 3: Using Classes and Objects

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

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

TENTAMEN PROGRAMMERINGSMETODIK MOMENT 2 - JAVA, 4P

OBJEKTORIENTERAD PROGRAMVARUUTVECKLING. Övningstentamen 1

Exempel på listor (klassen ArrayList). Ett exempel med fält. Avbildning är en speciell typ av lista HashMap.

I STONE. I Variabler, datatyper, typkonvertering. I Logiska och matematiska uttryck. I Metoder-returvärde och parametrar. I Villkorssatser if/else

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 14

Lösningsförslag, tentamen FYTA11 Javaprogrammering

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

Klasshierarkier - repetition

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 Grundläggande programmering STS, åk 1 fredag

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

"Är en"-relation. "Har en"-relation. Arv. Seminarium 2 Relevanta uppgifter. I exemplet Boll från förra föreläsningen gällde

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

Arv. Objektorienterad och komponentbaserad programmering

Övningar Dag 2 En första klass

Tentamen, EDA501 Programmering M L TM W K V

OOP Objekt-orienterad programmering

Felsökning av mjukvara

2D1339 Programkonstruktion för F1, ht 2004

Tentamen i Programmering

Editering, Kompilering och Exekvering av Javaprogram

OOP Objekt-orienterad programmering

OBJEKTORIENTERAD PROGRAMVARUUTVECKLING

Programmering A C# VT Ett kompendie över Programmering A (50p) i c# Stefan Fredriksson

JAVA Mer om klasser och objektorientering

Objektorienterad Programmering (TDDC77)

trafiksimulering Intro OU5 trafiksimulering

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

F4. programmeringsteknik och Matlab

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

Objektorienterad Programmering (TDDC77)

Transkript:

Stockholms universitet 1 (6) OOP OOP Omtenta 2011-03-05 10.00 15.00 Avser kurserna: DSK1:OOP GES:OOP ID1013 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 2 (6) OOP Uppgift 1 (6 poäng) Om man exekverar följande programrader, vad kommer att att skrivas ut på skärmen (var noga med vad som skrivs på vilken rad, alltså beakta skillnaden mellan print och println). A B C String s1="solen", s2="månen"; int tal=5; switch (tal+2){ case 5: System.out.println(s1+tal++); case 6: System.out.println(s2+tal++); case 7: System.out.println(s1+tal++); case 8: System.out.println(s2+tal++); default: System.out.println(s1+s2); int x=18, y=2; while (x>y){ System.out.println(x+y); x-=y; for (int z=10; z<x; z++) System.out.print(z+" "); System.out.println(y++); int[]talen=new int[8]; int a=11; for (int x=0; x<talen.length; x++){ talen[x]=a--; if (x==a) a=8; for (int tal : talen){ System.out.println(tal); if (tal==a) System.out.println(tal+a);

Stockholms universitet 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){ Topp[]alla=new Topp[4]; alla[0]=new Ner("Sallad"); alla[1]=new Botten(); alla[2]=new Ner("Gurka"); alla[3]=new Botten(); for (int x=0; x<alla.length; x++) alla[x].skriv(); class Topp{ private static int antal=0; private String ord; public Topp(String ord){ this.ord=ord; antal++; public Topp(){ this("morot"); public void skriv(){ for (int x=0; x<antal; x++) System.out.print(getOrd()); System.out.println(); public String getord(){ return ord; class Ner extends Topp{ public Ner(String ord){ super(ord); public void skriv(){ System.out.println("Tomat"+getOrd()); class Botten extends Topp{ public String getord(){ return "Paprika";

Stockholms universitet 4 (6) OOP Uppgift 3 (6 poäng) När man beräknar medelvärde kan det ibland bli konstiga resultat pga att ett extremt stort eller extremt litet värde påverkar orimligt mycket. Anta t.ex. att tio personer köper vars en lott. En person vinner 10 miljoner kronor, de övriga nio vinner ingenting dvs 0 kronor. I genomsnitt har nu dessa personer vunnit 1 miljon kronor vilket kanske inte riktigt speglar verkligheten. Eller säg att vi tar 100 anställda på IKEA. Chefen tjänar 10.000.000.000 kronor och de övriga 99 tjänar 25.000 kronor vardera. I genomsnitt skulle då en anställd på IKEA tjäna 100.024.750 kronor... Ett sätt att komma tillrätta med problemet är att vid uträkningen av medel ta bort det största och det minsta värdet och ta medel på resten. Då riskerar man inte att ett extremvärde påverkar alldeles för mycket. Er uppgift är att skriva en metod medelspecial som får en int-array som argument och som beräknar medelvärdet av talen i arrayen, men utan att det största och det minsta värdet tas med i beräkningen. Ni kan förutsätta att arrayen som kommer till er metod som argument är fylld med värden och att den innehåller minst 3 värden (så att man alltså alltid kan ta bort det största och det minsta värdet innan beräkningen). Metoden skall returnera det uträknade medelvärdet. Om följande tal finns i arrayen: 12 200 300 175000 400 så skulle medelvärdet från er metod bli 300. Man tar alltså bort det minsta (12) och det största (175000) och beräknar medelvärdet på de resterande talen (200 300 400). I java ligger alla metoder inuti en klass, det kan ni bortse ifrån i denna uppgift, det räcker att skriva själva metoden. Arrayen som kommer som argument kan vara av olika längd och ni kan förutsätta att den alltid innehåller minst tre värden.

Stockholms universitet 5 (6) OOP Uppgift 4 (6 poäng) När man behöver handla en viss vara kan det ibland vara bra att jämföra olika affärers priser för att kunna hitta den billigaste varan. Skriv ett litet Java-program där en användare får möjlighet att mata in varor, dessa varors pris samt i vilken affär varan kan köpas. För varje vara som skall matas in ställs frågorna: Pris? 28000 Affär? TV-specialisten Programmet skall tillåta inmatning av nya varor tills användaren på frågan om vara svarar STOPP. Programmet skall sedan skriva ut varunamn, pris och affär för den billigaste varan av varje sort. Dialogen i ert program skulle kunna se ut så här: Pris? 28000 Affär? TV-specialisten Vara? Soffa Pris? 3000 Affär? Soffhörnet Pris? 14500 Affär? TV-grossen Pris? 21300 Affär? Prylaffären Vara? Soffa Pris? 2500 Affär? Möbelspecialisten Vara? STOPP Följande varor är billigast: TV 50 tum 14500 TV-grossen Soffa 2500 Möbelspecialisten

Stockholms universitet 6 (6) OOP Uppgift 5 (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 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 i vilken klass ni vill lägga till det. Er uppgift är att skriva en metod som får en ArrayList<Djur> (fylld med blandade Hund- och Katt-objekt) som argument. I metoden skall ni skriva ut namn på den Katt som har störst lathet (det Katt-objekt vars metod getlathet returnerar störst värde). Om det finns flera Katt-objekt med samma (lika stor) lathet skall alla dessa skrivas ut, om det i argument-samlingen inte finns några Katt-objekt skall texten Inga Katter skrivas. OBS metoden som ni skriver måste ju i Java ligga inuti någon klass. Det kan ni ignorera 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).