Tentamen TEN1 HI1029 2014-05-22



Relevanta dokument
Tentamen TEN1 HI

Tentamen TEN1 HI

HI1024 Programmering, grundkurs TEN

HI1024 Programmering, grundkurs TEN

HI1024 Programmering, grundkurs TEN

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

Dugga Datastrukturer (DAT036)

HI1024 Programmering, grundkurs TEN

HI1024 Programmering, grundkurs TEN

Uppgifter föreslagna från vår kursbok markeras med avsnitt och sedan: SC Self Check, P Programing, PP Programing Projects.

HI1024 Programmering, grundkurs TEN

Övningsuppgifter. Uppgifter föreslagna från vår kursbok markeras med avsnitt och sedan: SC Self Check, P Programing, PP Programing Projects.

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

TDDC74 Programmering, abstraktion och modellering DUGGA 2

19. Skriva ut statistik

Träd, binära träd och sökträd. Koffman & Wolfgang kapitel 6, avsnitt 1 4

Föreläsning 4. Kö Implementerad med array Implementerad med länkad lista Djup kontra bredd Bredden först mha kö

Tommy Färnqvist, IDA, Linköpings universitet. 1 ADT Map/Dictionary Definitioner Implementation... 2

Tentamen Datastrukturer D DAT 036/DIT960

6 Rekursion. 6.1 Rekursionens fyra principer. 6.2 Några vanliga användningsområden för rekursion. Problem löses genom:

Tentamen Datastrukturer, DAT037 (DAT036)

Föreläsning 6: Introduktion av listor

TDDC30. Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 8 Jonas Lindgren, Institutionen för Datavetenskap, LiU

Objektorienterad programmering D2

Föreläsning 4: Kombinatorisk sökning

Tenta (TEN3) i kursen 729G04 Programmering och diskret matematik 5 feb 2016, kl 14:00-18:00

Att genomföra ett e-postutskick till klubbens medlemmar

Tentamen i Realtidsprogrammering

Föreläsning 10. ADT:er och datastrukturer

Tentamen'('Datastrukturer,'algoritmer'och'programkonstruktion.'

Försättsblad till skriftlig tentamen vid Linköpings Universitet

Objektsamlingar i Java

Objektorienterad Programkonstruktion

Tentamen, EDA501 Programmering M L TM W K V

Föreläsning 13 och 14: Binära träd

Omtentamen i OOSU2, 21 augusti 2014

Objektorienterad Programkonstruktion. Föreläsning 9 30 nov 2016

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

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

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

Aditro HR Portalen - logga in och byta lösenord

Övning 4. Hashning, sortering, prioritetskö, bästaförstsökning. Hitta på en perfekt hashfunktion för atomer. Hur stor blir hashtabellen?

Doktorander vid forskarskolor för lärare hösten 2015

Tentamen Programmeringsteknik II och NV2 (alla varianter) Skriv bara på framsidan av varje papper.

Lathund. Fakturering via fil i Tandvårdsfönster

OOP Objekt-orienterad programmering

Objektorienterad programmering i Java

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

Avbildningar och hashtabeller. Koffman & Wolfgang kapitel 7, mestadels avsnitt 2 4

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

MATLAB. Python. Det finns flera andra program som liknar MATLAB. Sage, Octave, Maple och...

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.

Översikt. Installation av EasyPHP 1. Ladda ner från Jag använder Release Installera EasyPHP.

Instruktion sfi elever

Matematik åk 9. Lärarinstruktion Digital diagnos Matematik Åk 9

Om include-filer i PHP

Administration av landstingsstatistik. Statistiktjänsten

Omtentamen (del 1, 6 högskolepoäng) i Programkonstruktion och datastrukturer (1DL201)

Tentamen OOP

Skapa kontrolluppgifter

Uppgifter till tenta i 729G04 Programmering och diskret matematik. 17 december 2015, kl 14:00-18:00

TDP Regler

Objektorienterad Programkonstruktion, DD1346 FACIT. Tentamen , kl

Uppgift (poäng) 1 (2) 2 (3) 3 (4) 4 (4) 5 (3) 6 (4) 7 (6) 8 (6) 9 (8) Summa

En snabb titt på XML LEKTION 6

Instruktion för suggringsnav

Anvisning för ARVI-systemet för dig som matar in personbedömningar

Instruktioner - Datortentamen TDDD73 Funktionell och imperativ programmering i Python TDDE24 Funktionell och imperativ programmering del 2

Lathund: Ansökan och redovisning i E-kanalen Energikartläggningsstödet

Algoritmanalys. Genomsnittligen behövs n/2 jämförelser vilket är proportionellt mot n, vi säger att vi har en O(n) algoritm.

Tentamen Datastrukturer, DAT037 (DAT036)

Handbok för provledare

Datastrukturer. föreläsning 6. Maps 1

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

Uppgift 1 ( Betyg 3 uppgift )

Tentamen Datastrukturer (DAT037)

Föreläsning 8. Mängd, Avbildning, Hashtabell

B = Bokad tid. T = Tillfälligt bokad tid. L = Ledig tid. X = Spärrad tid

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

Kultur- och fritidskontoret LATHUND. Att komma med i föreningsregistret

Tentamen: Programutveckling ht 2015

Tentamen Marco Kuhlmann

Framsteg med resultatrapportering

EDA095 Nätverksprogrammering

Sätt att skriva ut binärträd

VASS HBI Användarmanual

Tentamen för kursen Objektorienterad programvaruutveckling GU (DIT010)

Kursutvärdering Ämne: SO Lärare: Esa Seppälä/Cecilia Enoksson Läsåret Klass: SPR2

Tentamen i Algoritmer & Datastrukturer i Java

Handledning Sfi i Hjo «Vi lär oss svenska tillsammans»

Sökning. Översikt. Binärt sökträd. Linjär sökning. Binär sökning. Sorterad array. Linjär sökning. Binär sökning Hashtabeller

Datastrukturer och algoritmer

Assessios webb-baserade testsystem

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

Instruktion av proceduren för att skapa föreningsfoldern.

Tentamen i Objektorienterad programmering

725G61 - Laboration 7 Implementation av ett API. Johan Falkenjack

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

Manual till 3C för CPUP

Va lkommen till Delfis statistikportal

Transkript:

Tentamen TEN1 HI1029 2014-05-22 Skrivtid: 8.15-13.00 Hjälpmedel: Referensblad (utdelas), papper (tomma), penna Logga in med tentamenskontot ni får av skrivvakten. Det kommer att ta tid att logga in ha tålamod! Logga inte ut förrän ni är klara med hela tentan. Svaren på uppgifterna ska vara program bestående av filer som ligger i kataloger: uppgift1, uppgift2,, uppgift5 som i sin tur ligger direkt under H:. Även om ni inte löser hela uppgiften så kan ni få delpoäng men ni måste se till att koden kompilerar och kan köras. Både output och koden bedöms och det är viktigt att denna är välskriven och uppfyller uppgiftens instruktioner. Välj bra variabelnamn och struktur men lägg inte så stor vikt vid kommentarer. Kom ihåg ert tentamenskonto. Resultaten kommer att presenteras kopplade till dessa! Tentamen består av 5 uppgifter. Filer som behövs för att lösa uppgifterna hittar ni i W:\PROV\AoD\ Java API hittar ni i W:\PROV\Java\api\index.html Betygsgränser (Max 15p): 7p Fx, 8p E, 9p D, 10p C, 11p B, 12 A Examinator och rättande lärare: Nicklas Brandefelt

1. I den här uppgiften utgår vi ifrån vårt binära sökträd från föreläsningen. Utgå ifrån filerna i W:\AoD\Uppgift3. Ändra inget i befintliga metoder utan skriv endast egna. a) Skriv en rekursiv metod som beräknar och returnerar antalet noder i det binära sökträdet. Troligen använder du en wrapper-metod som i sin tur anropar den metod som sedan anropar sig själv rekursivt. Du får inte använda medlemsvariabler. (2p) b) Skriv en rekursiv metod som beräknar och returnerar det binära sökträdets höjd. Troligen använder du en wrapper-metod som i sin tur anropar den metod som sedan anropar sig själv rekursivt. Du får inte använda medlemsvariabler. (1p) 2. Implementera en lista för Object med hjälp av en array som inre datastruktur. Kalla klassen för List. Du får inte använda några andra datastrukturer än en vanlig array från java s API. Med hjälp av konstruktorn ska man kunna sätta storleken som ska vara fix. Implementera metoderna size(), get(index) och add(index, object). Listan ska följa normala konventioner för en lista med nedanstående specifikationer. get(index) Index 0 motsvarar första elementet. Anropar man get med ett index mindre än noll eller om listan är tom skall get returnera null. Anropar man get med ett index större än högsta index ska get returnera elementet med störst index. add(index, object) Försöker man lägga till ett element i en full lista eller på ett index mindre än noll skall add lämna listan orörd och returnera false. Annars skall add infoga elementet på rätt plats och returnera true. Om index är ett värde högre än listans högsta index skall elementet infogas efter sista elementet. I W:\AoD\Uppgift2 hittar du ett skal som bör gå att köra med din lista. (3p)

3. I denna uppgift skall du implementera en egen Hash-tabell med öppen adressering för lagring av strängar. Du skall använda en array för lagring av strängarna och får inte använda någon mera avancerad datastruktur från java s api. I en hash-tabell lagras elementen på det index som elementets hash-kod ger. Om platsen där ett element skall lagras redan är upptagen så ökas index med ett (öppen adressering). På motsvarande sätt när vi letar efter ett element så måste vi ta hänsyn till att om platsen inte är tom kan elementet ligga längre ned i arrayen. Den förenklade hash-tabellen vi här ska implementera behöver inte kunna växa dynamiskt utan storleken sätts vi skapandet. Den skall ha endast två metoder: put(string s) och exist(string s). Metoden put placerar strängen på rätt plats i vår array med hjälp av java s inbyggda hashkod för strängar. Metoden exist returnerar true om strängen redan finns i vår hash-tabell och false om den inte finns. Ingen av metoderna behöver hantera problematiken vi får om tabellen är full. Däremot skall de hantera att vi kan behöva öka index flera gånger för att hitta en tom plats och ibland då kommer till arrayens sista plats och måste börja leta i början. Observera att vår hashtabell skall använda det effektiva sätt att sätta in i och hitta i en hashtabell som om man undviker krockar ger O(1). I W:\AoD\Uppgift3 hittar du ett skal som bör gå att köra med din hashtabell. (3p)

4. I den här uppgiften ska man börja på ovansidan och ta sig till undersidan. Man får börja på vilken ruta på ovansidan man vill och man får ta vilken väg man vill. Man får inte gå diagonalt. Skriv en algoritm som hittar den väg som ger minst summa om man summerar värdet på alla rutor man passerar. Negativa värden kan ej förekomma i rutorna. Ex: 2 6 8 0 5 4 7 9 3 6 8 1 5 8 3 7 4 5 7 8 1 2 7 8 4 5 2 8 9 6 1 2 5 9 6 5 6 1 1 2 7 1 4 6 4 7 8 9 8 8 6 8 1 7 1 2 1 5 6 7 5 6 7 7 5 7 7 2 8 9 6 7 9 5 5 9 7 9 6 8 8 8 1 8 6 8 9 8 6 8 I exemplet ovan är vägen man ska hitta: 2 6 8 0 5 4 7 9 3 6 8 1 5 8 3 7 4 5 7 8 1 2 7 8 4 5 2 8 9 6 1 2 5 9 6 5 6 1 1 2 7 1 4 6 4 7 8 9 8 8 6 8 1 7 1 2 1 5 6 7 5 6 7 7 5 7 7 2 8 9 6 7 9 5 5 9 7 9 6 8 8 8 1 8 6 8 9 8 6 8 Algoritmen ska naturligvis klara andra matriser också. Skriv en metod som tar en matris som in-parameter och returnerar värdet för den billigaste vägen (i exemplet ovan 16). Utgå från skalet som du hittar i W:\AoD\Uppgift4. Du får om du vill använda medlemsvariabler och behöver inte skapa några klasser. (3p)

5. I ett Sudoku ska man fylla i siffrorna 1-9 på de tomma platserna. Så att varje siffra förekommer endast en gång i varje rad, kolumn och 3*3 ruta. Skriv en metod som tar en 2D-array med vissa siffror ifyllda och nollor på de platser som är tomma och fyller i de tomma rutorna med siffror så att de uppfyller reglerna ovan. Utgå från skalet som du hittar i W:\AoD\Uppgift5. För full poäng skall du använda backtracking eller en algoritm med liknande effektivitet. (3p)