Skriftlig eksamen i Datalogi

Relaterede dokumenter
Skriftlig eksamen i Datalogi

Skriftlig eksamen i Datalogi

Skriftlig eksamen i Datalogi

Vejledende løsninger

Danmarks Tekniske Universitet

Danmarks Tekniske Universitet

Danmarks Tekniske Universitet

Danmarks Tekniske Universitet

Grundlæggende Programmering ITU, Efterår Skriftlig eksamen i Grundlæggende Programmering

Om binære søgetræer i Java

Løsning af møntproblemet

Danmarks Tekniske Universitet

Skriftlig eksamen i Datalogi

Danmarks Tekniske Universitet

Danmarks Tekniske Universitet

Danmarks Tekniske Universitet

Skriftlig Eksamen Algoritmer og Datastrukturer (DM507)

DM507 Algoritmer og datastrukturer

Danmarks Tekniske Universitet

Skriftlig Eksamen Algoritmer og Datastrukturer (DM507)

Danmarks Tekniske Universitet

DM507 Algoritmer og datastrukturer

Danmarks Tekniske Universitet

BRP Tal. Om computer-repræsentation og -manipulation. Logaritmer

DANMARKS TEKNISKE UNIVERSITET

Danmarks Tekniske Universitet

Træer. Datastrukturer & Algoritmer, Datalogi C Forelæsning 9/

Søgetræer: Generel repræsentation af (sorterede) mængder og funktioner Databasesystemer...

Danmarks Tekniske Universitet

Danmarks Tekniske Universitet

Tree klassen fra sidste forelæsning

Programmering 1999 KVL Side 5-4. Klassen Time: metoder. Metoder i objektet giver mulighed for at ændre tilstanden, eller kigge på tilstanden.

Definition : Et træ er en sammenhængende ikke-orienteret graf uden simple kredse. Sætning : En ikke-orienteret graf er et træ hvis og kun hvis der er

Civilingeniøreksamen januar Skriftelig prøve den 12. januar 2001 Kursusnummer 49104

Danmarks Tekniske Universitet

DATALOGISK INSTITUT, AARHUS UNIVERSITET. Det Naturvidenskabelige Fakultet EKSAMEN. Grundkurser i Datalogi

Binære søgetræer. Binære søgetræer. Nærmeste naboer. Nærmeste nabo

Kursus i OOP og Java. Kursus i Objektorienteret programmering i Java

DM507 Algoritmer og datastrukturer

Danmarks Tekniske Universitet

Binære søgetræer. Binære søgetræer. Nærmeste naboer. Nærmeste nabo

Skriftlig Eksamen Algoritmer og Datastrukturer 2 (2003-ordning)

DM507 Algoritmer og datastrukturer

Binære søgetræer. Nærmeste naboer Binære søgetræer Indsættelse Predecessor og successor Sletning Trægennemløb. Philip Bille

DATALOGISK INSTITUT, AARHUS UNIVERSITET

DATALOGISK INSTITUT, AARHUS UNIVERSITET. Det Naturvidenskabelige Fakultet EKSAMEN. Grundkurser i Datalogi

DATALOGISK INSTITUT, AARHUS UNIVERSITET

INSTITUT FOR DATALOGI, AARHUS UNIVERSITET. Det Naturvidenskabelige Fakultet EKSAMEN. Grundkurser i Datalogi

Ugeseddel 4 1. marts - 8. marts

Prioritetskøer. Prioritetskøer Træer og hobe Repræsentation af hobe Algoritmer på hobe Hobkonstruktion Hobsortering. Philip Bille

class subklasse-navn extends superklasse-navn { } NorwaySpruce har superklassen Spruce, som igen har superklassen Tree.

class Time { int hours, min; } } Time t1; // Erklær variabel af type Time class Time1 { public static void main(string[] args) { Time t1; t1.

DATALOGISK INSTITUT, AARHUS UNIVERSITET

DATALOGI 0GB. Skriftlig eksamen mandag den 7. juni 2004

Skriftlig Eksamen DM507 Algoritmer og Datastrukturer

Algoritmer og datastrukturer Course No Cheat Sheet May 15, 2012

Prioritetskøer. Prioritetskøer. Prioritetskøer. Prioritetskøer

DATALOGISK INSTITUT, AARHUS UNIVERSITET. Det Naturvidenskabelige Fakultet EKSAMEN. Grundkurser i Datalogi

DM507 Algoritmer og datastrukturer

INSTITUT FOR DATALOGI, AARHUS UNIVERSITET. Det Naturvidenskabelige Fakultet EKSAMEN. Grundkurser i Datalogi

DATALOGISK INSTITUT, AARHUS UNIVERSITET

DATALOGISK INSTITUT, AARHUS UNIVERSITET. Det Naturvidenskabelige Fakultet EKSAMEN. Grundkurser i Datalogi

Forelæsning Uge 4 Torsdag

AAU, Programmering i Java Intern skriftlig prøve 18. maj 2007

Prioritetskøer. Prioritetskøer. Prioritetskøer. Prioritetskøer

DM507 Algoritmer og datastrukturer

Forelæsning Uge 4 Torsdag

DATALOGISK INSTITUT, AARHUS UNIVERSITET

INSTITUT FOR DATALOGI, AARHUS UNIVERSITET. Science and Technology EKSAMEN. Grundkurser i Datalogi. Algoritmer og Datastrukturer 1 (2003-ordning)

Skriftlig Eksamen Algoritmer og Datastrukturer (dads)

DATALOGISK INSTITUT, AARHUS UNIVERSITET

Prioritetskøer og hobe. Philip Bille

Danmarks Tekniske Universitet

22 Hobe. Noter. PS1 -- Hobe. Binære hobe. Minimum-hob og maximum-hob. Den abstrakte datatype minimum-hob. Opbygning af hobe. Operationen siv-ned.

Datastrukturer (recap)

University of Southern Denmark Syddansk Universitet. DM502 Forelæsning 4

DATALOGISK INSTITUT, AARHUS UNIVERSITET. Det Naturvidenskabelige Fakultet EKSAMEN. Grundkurser i Datalogi

Skriftlig eksamen, Programmer som Data januar 2014

INSTITUT FOR DATALOGI, AARHUS UNIVERSITET EKSAMEN. Grundkurser i Datalogi. Algoritmer og Datastrukturer 1 (2003-ordning)

DATALOGISK INSTITUT, AARHUS UNIVERSITET. Det Naturvidenskabelige Fakultet EKSAMEN. Grundkurser i Datalogi

Skriftlig Eksamen DM507 Algoritmer og Datastrukturer

Sortering. Eksempel: De n tal i sorteret orden

Tabelbegrebet. Klassediagrammer (III) Oversigt. Anvendelse af Tabeller. Tabeller og qualified associations

DATALOGI 0GB. Skriftlig eksamen tirsdag den 6. januar 2004

DM507 Algoritmer og datastrukturer

DATALOGISK INSTITUT, AARHUS UNIVERSITET. Det Naturvidenskabelige Fakultet EKSAMEN. Grundkurser i Datalogi

DATALOGISK INSTITUT, AARHUS UNIVERSITET

DM01 DM Obl. Afl. Jacob Christiansen, , D12, Elias 18/ Side 1 af 11

DATALOGISK INSTITUT, AARHUS UNIVERSITET

import java.awt.event.*; import java.awt.*; Container <- Panel <- Applet Component <- Button <- Checkbox <- ScrollPane <- Label

Datastrukturer (recap)

DATALOGISK INSTITUT, AARHUS UNIVERSITET

DM507 Algoritmer og datastrukturer

BRP Kursusintroduktion og Java-oversigt

Forelæsning Uge 5 Mandag

Eksamensplan vinter 2010/11. BA-uddannelsen

Stakke, køer og lidt om hægtede lister

Indledning. Hvorfor det forholder sig sådan har jeg en masse idéer om, men det bliver for meget at komme ind på her. God fornøjelse med læsningen.

Rekursion og dynamisk programmering

Danmarks Tekniske Universitet

Transkript:

Roskilde Universitetscenter Skriftlig eksamen i Datalogi Modul 1 Vinter 1998/99 Opgavesættet består af 5 opgaver, der ved bedømmelsen tillægges følgende vægte: Opgave 1 16% Opgave 2 12% Opgave 3 10% Opgave 4 37% Opgave 5 25% Alle sædvanlige hjælpemidler er tilladt. I tilfælde af unøjagtigheder i opgaveteksterne forventes det, at deltagerne selv præciserer besvarelsernes forudsætninger. Opgavesættet består af en forside og 5 paginerede sider. Kontroller at din kopi er fuldstændig.

Roskilde Universitetscenter side 1 af 5 sider Opgave 1: Træer (16%) Lad der være givet nøglerne M A C I N T O S H. Spørgsmål 1.1 Nøglerne indsættes i nævnte rækkefølge i et tomt binært søgetræ uden brug af balancering. Tegn det resulterende træ. Spørgsmål 1.2 Nøglerne indsættes i nævnte rækkefølge i en tom binær hob. Tegn resultatet i form af et binært træ. Spørgsmål 1.3 Nøglerne indsættes i nævnte rækkefølge i et tomt 2-3-4-træ. Tegn det resulterende træ. Spørgsmål 1.4 Nøglerne indsættes i nævnte rækkefølge i et tomt rød-sort-træ. Tegn det resulterende træ. Opgave 2: Grafer (12%) Nedenfor er vist en matrix-repræsentation af en vægtet ikke-orienteret graf. Kanternes vægte er angivet med positive talværdier. Spørgsmål 2.1 Tegn grafen. A B C D E F G A 0 2 7 1 0 0 0 B 2 0 0 3 10 0 0 C 7 0 0 8 0 9 0 D 1 3 8 0 5 10 11 E 0 10 0 5 0 0 6 F 0 0 9 10 0 0 12 G 0 0 0 11 6 12 0 Spørgsmål 2.2 Tegn det mindste udspændende træ og angiv summen af dets vægte. Spørgsmål 2.3 Angiv løsningen af alle-korteste-veje-problemet for grafen i form af en matrix.

Roskilde Universitetscenter side 2 af 5 sider Opgave 3: Rekursion (10%) Nedenfor er vist en Java-klasse kaldet Mystery. class Mystery { int a[], k, n; Mystery(int k, int n) { this.k = k; this.n = n; a = new int[k]; up(1, k); void print() { for (int i = 0; i < k; i++) System.out.print(a[i] + " "); System.out.println(); void up(int b, int c) { if (c == 0) print(); else for (int i = b; i <= n; i++) { a[k - c] = i; down(i+1, c-1); void down(int b, int c) { if (c == 0) print(); else for (int i = n; i >= b; i--) { a[k - c] = i; up(i+1, c-1); Spørgsmål 3.1 Hvad udskrives ved udførelse af sætningen new Mystery(3, 4)?

Roskilde Universitetscenter side 3 af 5 sider Opgave 4: Objektorienteret programmering (37%) Betragt følgende skitse fra et Javaprogram abstract class Frugt { abstract class Trae { class Knop extends Trae { class Gren extends Trae { Frugt f; Trae t; class Deling extends Trae { Trae v; Trae h; class Citron extends Frugt { class Appelsin extends Frugt { Det kan i denne opgave antages, at felter i objekter ikke har eller kan få værdien null. Spørgsmål 4.1 Tilføj konstruktorer til klasserne Gren og Deling, der sætter objekternes felter. Spørgsmål 4.2 Antag at der findes følgende erklæring og initialisering af en variabel t: Trae t = new Deling(new Gren(new Citron(),new Knop()), new Gren(new Appelsin(),new Knop())); Tilføj tostring-metoder til klasserne, så metoden tostring for træ t returnerer Deling(Gren(Citron,Knop),Gren(Appelsin,Knop)) Spørgsmål 4.3 Hvis vi har en metode p defineret som public static void p(string s){system.out.println(s); så kan træet t ikke udskrives ved et kald p(t), da p forventer en streng, og tostringmetoden kun kaldes, når et objektet bruges i et regneudtryk, som om det var en tekststreng. I stedet kan man bruge kaldene p(""+t) eller p(t.tostring()). Dette er lidt klodset, så foreslå en anden definition af metode p, så den kan kaldes med et Trae-objekt og blive udskrevet. Spørgsmål 4.4 Tilføj en ekstra variant af metode p, så boolske værdier kan udskrives.

Roskilde Universitetscenter side 4 af 5 sider Spørgsmål 4.5 Antag at der tilføjes en abstrakt metode public abstract void saetfrugt(frugt f); til klassen Trae. Tilføj versioner af metoden for de nedarvede klasser, så frugten indsættes længst til højre i træet. Den knop, der sidder længst til højre i træet, skal erstattes med en gren, der har frugten og en knop. Hvis træet blot er en knop, skal metoden ikke gøre noget. Spørgsmål 4.6 Skitser hvorledes træet t (fra spørgsmål 4.2) ser ud efter kaldet t.saetfrugt(new Citron()); Spørgsmål 4.7 Et træ behøver ikke at have frugter. Vi ønsker at kunne undersøge, om et træ har frugter og definerer en metode public boolean harfrugter(trae t) der undersøger, om argumentet er et træ, der har frugter. Skriv kroppen til denne metode. Metoden tænkes skrevet i en klasse uden for træ-hierarkiet. Spørgsmål 4.8 Metoden harfrugter kan også skrives som metoder i de nedarvede klasser fra Trae. Vi erklærer da en abstrakt metode public abstract boolean harfrugter(); i klassen Trae. Tilføj versioner af metoden for de nedarvede klasser af klassen Trae.

Roskilde Universitetscenter side 5 af 5 sider Opgave 5: OOA-modellering (25%) I forbindelse med oprettelse af den nye IT-højskole skal flere universiteter med hver sin kursus-, projekt- og eksamensstruktur arbejde sammen om at udbyde undervisningstilbud, registrere tilmeldinger og eksamensresultater samt håndtere meritoverførsler. Forestil dig, at du indgår i en projektgruppe, som skal udarbejde et forslag til et nyt fælles edb-system, som skal understøtte dette samarbejde. Alle universiteterne udbyder såvel kurser som projektvejledning. Et undervisningstilbud kan bestå af en vilkårlig kombination af kurser og projekter, inklusiv ingen kurser eller ingen projekter. Universiteterne har den fælles regel, at en studerende kan til- og framelde sig en eksamen et vilkårligt antal gange, men de kan kun gå op 3 gange (3-gangs reglen). Vi ser her bort fra dispensationsmuligheden. Universiteterne er desuden blevet enige om fælles tilmeldingsfrister, hhv. 1. april og 1. november for hhv. sommer- og vintereksamen, og tilsvarende er de blevet enige om, at 1. maj og 1. december er sidste frister for frameldinger, hvorefter tilmeldinger er bindende. Vi ser altså også bort fra eventuelle lægeerklæringer i sidste øjeblik. Ledelsen af IT-højskolen ønsker at benytte den nyeste teknologi. Visionen er, at de respektive studienævn udbyder deres undervisningstilbud på en fælles hjemmeside. Herfra skal de studerende melde sig til de forskellige undervisningstilbud og til eksamen. Systemet skal også benyttes af de respektive eksamenskontorer til at registrere og holde styr på de studerendes eksamensresultater, og af studienævnene som grundlag for behandling af ansøgninger om meritoverførsler. Din projektgruppe skal foretage en analyse ved hjælp af OOA. Sammen med repræsentanter fra de deltagende universiteter er I kommet frem til følgende foreløbige systemdefinition udtrykt i BATOFF: Betingelser: Edb-systemet skal benyttes af studienævnssekretærer, studerende og ansatte på eksamenskontorerne, og systemet skal udvikles i tæt samarbejde med repræsentanter for hver af disse grupper. Systemet skal udvikles og tages i brug, selv om de måtte have modstridende krav. Anvendelsesområde: Administration af tilmeldinger til undervisningstilbud og til eksaminer samt af eksamensresultater. Overvågning af at studerende overholder 3-gangs reglen. Teknologi: De eksisterende PC er på universiteterne skal benyttes, og de, der ikke måtte have adgang til www, skal have dette etableret. Objektsystem: Student, lærer, censor, undervisningstilbud, eksamen. Funktionalitet: Støtte til undervisnings- og eksamensadministration. På sigt overvejes det at føre kontrol med lærernes produktivitet i form af afholdt undervisning og gennemførelsesprocenter (antal tilmeldte/antal beståede). Filosofi: Et værktøj til administration og overvågning samt et kommunikationsmedium. Spørgsmål 5.1 Konstruer og begrund et klassediagram for objektsystemet. Spørgsmål 5.2 Konstruer og begrund et tilstandsdiagram for student. NB. Hvis du foretager afgrænsninger eller gør dig yderligere forudsætninger end de beskrevne, skal du beskrive disse i opgavebesvarelsen.