Tentamen EDA501/EDAA20 M L TM W K V

Relevanta dokument
Tentamen, EDAA10 Programmering i Java

Tentamen, EDA501 Programmering M L TM W K V

Tentamen, EDA017, Programmeringsteknik för C, E, I och Pi

Tentamen i Programmering

Tentamen, EDAA20/EDA501 Programmering

Tentamen, EDA501/EDAA20 Programmering M MD W BK L

Tentamen, EDAA20/EDA501 Programmering

Tentamen, EDAA20/EDA501 Programmering

Tentamen, EDA501 Programmering M L TM W K V

Tentamen, EDAA10 Programmering i Java

Tentamen, EDAA20/EDA501 Programmering

Tentamen, Programmeringsteknik för BME, F och N

Tentamen, EDAA20/EDA501 Programmering

Tentamen, EDAA10 Programmering i Java

Tentamen Programmeringsteknik för BME, C, D, E, F, I, N & Pi

Tentamen, EDAA20/EDA501 Programmering

Tentamen i EDA011 Programmeringsteknik för F, E, I, π och N

Tentamen EDAA45 Programmering, grundkurs

Lösningsförslag till tentamen i EDA011/EDA017 Programmeringsteknik för F, E, I, π och N 25 maj 2009

TENTAMEN OOP

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

Lösningsförslag till tentamen i EDA011, lördagen den 16 december 2006

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

Tentamen i EDAF oktober Skrivtid: Skriv bara på ena sidan av pappret tentorna kommer att scannas in, och endast framsidorna rättas.

Tentamen EDAA45 Programmering, grundkurs

Laboration A Objektsamlingar

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

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

DAT043 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.

Tentamen, Algoritmer och datastrukturer

Arrayer (fält)

OBJEKTORIENTERAD PROGRAMVARUUTVECKLING. Övningstentamen 1

Repetition av OOP- och Javabegrepp

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

Repetition av OOP- och Javabegrepp

EDAA20 Föreläsning Klassen ArrayList. Viktiga operationer på ArrayList. Generisk klass

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

Tentamen i Objektorienterad programmering

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

Föreläsning REPETITION & EXTENTA

tentaplugg.nu av studenter för studenter

OOP Tentamen

Lösningsförslag tentamen FYTA11 Java

TENTAMEN OOP

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

Tentamen OOP

Vad är en databas? Databaser. Relationsdatabas. Vad är en databashanterare? Vad du ska lära dig: Ordlista

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

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

OBJEKTORIENTERAD PROGRAMVARUUTVECKLING

DAT043 Objektorienterad programmering för D, DIT011 Objektorienterad programvaruutveckling för GU

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

Diagnostiskt Prov. Antaganden Om förutsättningar saknas I en uppgift skall rimliga antaganden göras och nedtecknas.

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

Obs! Inget ur Javas standardbibliotek får användas i ett svar (om det inte står att man får det).

Saker du ska kunna Föreläsning 13 & 14

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

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

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

Tentamen i Programmeringsteknik I, ES,

Tentamen ID1004 Objektorienterad programmering April 7, 2015

TENTAMEN PROGRAMMERINGSMETODIK MOMENT 2 - JAVA, 4P

TENTAMEN OOP

OOP Tentamen

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

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

Sammanfattning och repetition utgående från typiska tentamensuppgifter

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

DEL 2 - Praktiska programmeringsuppgifter

Objektorienterad programmering D2

OOP Tenta

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

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

DIAGNOSTISKT PROV. Tid. Hjälpmedel. Antaganden. Rättning. Övrigt. Diagnostiskt Prov. Klockan Inga

Datastrukturer. Föreläsning Innehåll. Program med vektor Exempel. Deklarera vektorer

OOP Omtenta

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

Tentamen, EDA690 Algoritmer och Datastrukturer, Helsingborg

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

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

Malmö högskola 2008/2009 CTS

OOP Objekt-orienterad programmering

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

2. Betrakta följande program, där fyra heltal läses från tangentbordet och några (ointressanta) beräkningar görs:

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

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

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

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

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

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

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

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

Tentamen i Programmeringsteknik I

Tentamen i Algoritmer & Datastrukturer i Java

Föreläsning 3-4 Innehåll

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

Lösningsförslag till tentamen

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

Transkript:

LUNDS TEKNISKA HÖGSKOLA 1(5) Institutionen för datavetenskap Tentamen EDA501/EDAA20 M L TM W K V 2011 01 10, 14.00 19.00 Anvisningar: Denna tentamen består av 5 uppgifter. Preliminärt ger uppgifterna 5 + 14 + 15 + 1 + 10 = 45 poäng. För godkänt betyg krävs 20 poäng. Tillåtna hjälpmedel: Java-snabbreferens. Lösningsförslag kommer att finnas på kursens hemsida senast dagen efter tentamen. När rättningen är klar meddelas detta på kursens hemsida. Tentamensvillkor för EDA501: Om du tenterar utan att vara tentamensberättigad annulleras din skrivning. För att undvika att någon skrivning annulleras av misstag anslås vilka som, enligt institutionens noteringar, tenterat utan att vara tentamensberättigade. Namnen anslås (lätt krypterade) senast en vecka efter tentamen på kursens hemsida. Felaktigheter i institutionens noteringar kan därefter påtalas fram till nästa tentamenstillfälle då resterande skrivningar annulleras.

2(5) Denna tentamen innehåller ett antal klasser för fågelobservationer. Som bas har vi en färdigskriven klass BirdData som innehåller de 250 arter som brukar räknas till Sveriges häckande fågelarter (plus en och annan besökare) enligt Sveriges Ornitologiska Förenings databas. Alla dessa fåglar har ett unikt nummer. BirdData, SOF:s databas över Sveriges häckande fågelarter, plus en och annan besökare: static final int NBR_BIRDS = 250; // Antalet fåglar i databasen /** Returnerar det unika numret [1..NBR_BIRDS] för fågeln med namnet birdname, eller 0 om birdname ej finns i databasen */ static int getnbr(string birdname); /** Returnerar fågelnamnet kopplat till birdnbr [1..NBR_BIRDS], om birdnbr==0 returneras "Övrig fågel" */ static String getname(int birdnbr); Observera att allt i klassen BirdData är statiskt, dvs klassen används på samma sätt som standardklassen Math. Uppgift 1 För datumhantering har vi två klasser Date och Period. Date är färdigskriven och har följande specifikation: /** Skapar ett datum med årtalet year, månaden month och dagen day */ Date(int year, int month, int day); /** Returnerar datumet på formen "2011-01-10" */ String tostring(); /** Returnerar true om detta datum är före datumet d, false annars */ boolean before(date d); /** Returnerar true om detta datum är efter datumet d, false annars */ boolean after(date d); Klassen Period, som beskriver en period mellan två datum, har följande specifikation: /** Skapar en period mellan (och inklusive) två datum, date1 och date2. date1 och date2 kan komma i godtycklig ordning */ Period(Date date1, Date date2); /** Returnerar första datumet i perioden */ Date getstartdate(); /** Returnerar sista datumet i perioden */ Date getfinishdate(); /** Returnerar true om datumet d är inom perioden, false annars */ boolean contains(date d); Implementera klassen Period.

3(5) Uppgift 2 För att hålla reda på fågelobservationer har vi två klasser klassen BirdObservation som beskriver en fågelobservation och klassen BirdObservationList som beskriver en lista med fågelobservationer. BirdObservation är färdigskriven och har följande specifikation: /** Skapar en observation av en fågel med nummer birdnbr på platsen location vid datumet date */ BirdObservation(int birdnbr, String location, Date date); /** Returnerar fågelnumret */ int getbirdnbr(); /** Returnerar fågelnamnet */ String getbirdname(); /** Returnerar platsen */ String getlocation(); /** Returnerar datumet */ Date getdate(); /** Returnerar en beskrivande sträng på formen: "Fågelnamn (fågelnr) Plats Datum" Exempel: "Fiskmås (36) Falsterbo 2010-02-01" */ String tostring(); BirdObservationList har följande specifikation: /** Skapar en tom lista */ BirdObservationList(); /** Lägger till en observation av en fågel med namnet birdname på platsen location vid datumet date */ void addobservation(string birdname, String location, Date date); /** Lägger till en observation av en fågel med numret birdnbr på platsen location vid datumet date */ void addobservation(int birdnbr, String location, Date date); /** Skriver ut alla observationer i listan med en observation per rad */ void printall(); /** Returnerar en ArrayList med alla observationer som gjorts i perioden period */ ArrayList<BirdObservation> getallinperiod(period period); /** Returnerar en ArrayList med alla fågelobservationer som gjorts på platsen location */ ArrayList<BirdObservation> getallat(string location); Implementera klassen BirdObservationList. Glöm inte att klassen BirdData som beskrevs i början på tentamen finns tillgänglig i både denna och de återstående tentamensuppgifterna! Anvisning: I denna uppgift ska du använda en ArrayList för listan med alla fågelobservationerna.

4(5) Uppgift 3 Klassen BirdCount beskriver en fågelräkning, dvs hur många observationer det finns för varje fågelart. Klassen har följande specifikation: /** Skapar en fågelräkning för alla observationerna i listan list */ BirdCount(ArrayList<BirdObservation> list); /** Returnerar antal förekomster av fågeln med numret birdnbr */ int getcount(int birdnbr); /** Returnerar en lista av SpeciesCount-objekt med alla fågelnamn med minst en förekomst */ ArrayList<SpeciesCount> allobserved(); /** Returnerar en lista av SpeciesCount-objekt med alla fågelnamn med minst en förekomst, sorterad efter antal förekomster i avtagande ordning */ ArrayList<SpeciesCount> allobservedincountorder(); Implementera klassen. Anvisningar: I denna uppgift ska du använda en heltalsvektor för den interna registreringen av antalet fågelobservationer. I metoderna allobserved och allobservedincountorder ska du returnera en lista med Species- Count-objekt. SpeciesCount är en färdigskriven klass med följande specifikation: /** Skapar ett räkneobjekt med count förekomster av fågeln med nummer birdnbr */ SpeciesCount(int birdnbr, int count); /** Returnerar fågelnumret */ int getbirdnbr(); /** Returnerar antal förekomster */ int getcount(); Ledning: När man skapar den sorterade SpeciesCount-listan i metoden allobservedincountorder är det enklast att sortera in elementen på rätt plats efterhand som man skapar dem. Uppgift 4 I uppgift 2 använder vi en ArrayList för att hålla reda på alla fågelobservationer medan vi i uppgift 3 använder en vektor för registreringen av antalet fågelobservationer. Förklara kort varför det är lämpliga val!

5(5) Uppgift 5 Skriv ett huvudprogram som testar delar av klasserna ovan genom att det: Läser in ett antal fågelobservationer från tangentbordet och lagrar dem. Varje fågelobservation finns på en rad och består av år, månad, dag, plats och fågelnamn åtskilda med mellanslag. Ett negativt årtal avslutar inmatningen. Hämtar alla fågelobservationer gjorda i Falsterbo och gör en fågelräkning på dem. Skriver ut namnen på de 10 vanligaste fågelnamnen i fågelräkningen (eller färre, om man inte har observerat så många). Namnen ska skrivas ut i avtagande ordning efter antal förekomster.