Tentamen TEN1 HI

Relevanta dokument
Tentamen TEN1 HI

Tentamen TEN1 HI

HI1024 Programmering, grundkurs TEN

HI1024 Programmering, grundkurs TEN

HI1024 Programmering, grundkurs TEN

HI1024 Programmering, grundkurs TEN

HI1024 Programmering, grundkurs TEN

HI1024 Programmering, grundkurs TEN

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

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

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

TDDC30/725G63. Objektorienterad programmering i Java, datastrukturer och algoritmer

Tentamen i Algoritmer & Datastrukturer i Java

HI1024, Programmering, grundkurs, 8hp KTH STH TENTAMEN. HI1024:TEN2 - Praktisk tentamen Tid: Fredagen den 21 oktober 2011,

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

Föreläsning 13. Dynamisk programmering

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

TDDC30 Programmering i Java, datastrukturer och algoritmer

TDIU01 / 725G

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

Tentamen Datastrukturer (DAT036/DAT037/DIT960)

TDDC30/725G63. Objektorienterad programmering i Java, datastrukturer och algoritmer

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

Tentamen Datastrukturer för D2 DAT 035

Tentamen, Algoritmer och datastrukturer

Tentamen i Algoritmer & Datastrukturer i Java

Tentamen i Algoritmer & Datastrukturer i Java

kl Tentaupplägg

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

Tentamen Datastrukturer (DAT037)

Planering Programmering grundkurs HI1024 HT TIDAA

Tentamen i Programmering

Tentamen Datastrukturer D DAT 035/INN960

Tillämpad Programmering (ID1218) :00-13:00

Planering Programmering grundkurs HI1024 HT 2014

Det är principer och idéer som är viktiga. Skriv så att du övertygar rättaren om att du har förstått dessa även om detaljer kan vara felaktiga.

kl Tentaupplägg

kl Tentaupplägg

Algoritmer, datastrukturer och komplexitet

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

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

Tentamen Datastrukturer D DAT 035/INN960 (med mycket kortfattade lösningsförslag)

Teoretisk del. Facit Tentamen TDDC (6)

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

Planering Programmering grundkurs HI1024 HT data

KTH STH TENTAMEN. HI1024:TEN2 - Praktisk tentamen Tid: 8-13, den 18 februari 2012

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

Instruktioner - Datortentamen TDDD73 Funktionell och imperativ programmering i Python

Tentamen Datastrukturer D DAT 035/INN960

729G04 Programmering och diskret matematik

Föreläsning 4 Datastrukturer (DAT037)

Algoritmer, datastrukturer och komplexitet

Föreläsning 4 Datastrukturer (DAT037)

Föreläsning 6. Rekursion och backtracking

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

Kungl. Tekn. Högskolan Förel 1, bild 1 Föreläsning 1: Introduktion ffl Kursinnehåll ffl Javarepetition ffl Referenser ffl Nyckelordet static ffl Klass

Föreläsning 6. Rekursion och backtracking

Tentamen, EDAA10 Programmering i Java

Föreläsning Datastrukturer (DAT037)

Lösningsförslag tentamen FYTA11 Java

Lägg uppgifterna i ordning. Skriv uppgiftsnummer och din anmälningskod överst i högra hörnet på alla papper.

Datastrukturer i kursen. Föreläsning 8 Innehåll. Träd rekursiv definition. Träd

Föreläsning 7 Innehåll. Rekursion. Rekursiv problemlösning. Rekursiv problemlösning Mönster för rekursiv algoritm. Rekursion. Rekursivt tänkande:

Teoretisk del. Facit Tentamen TDDC kl (6) 1. (6p) "Snabba frågor" Alla svar motiveras väl.

729G04 Programmering och diskret matematik

Lösningar till tentamen i EIT070 Datorteknik

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

Tentamen Datastrukturer (DAT036)

Föreläsning 9. Sortering

Tentamen Datastrukturer, DAT037 (DAT036)

TDDC30 Programmering i Java, datastrukturer och algoritmer

kl Tentaupplägg

Tentamen i Grundläggande Programvaruutveckling, TDA548

kl Tentaupplägg

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

Föreläsning 9 Datastrukturer (DAT037)

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

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

Tentamen Datastrukturer (DAT036)

729G74 - IT och programmering, grundkurs. Dugga.

Tentamen Datastrukturer, DAT037 (DAT036)

OBJEKTORIENTERAD PROGRAMVARUUTVECKLING. Övningstentamen 2

TENTAMEN: Algoritmer och datastrukturer. Läs detta!

Föreläsning 2 Datastrukturer (DAT037)

DAI2 (TIDAL) + I2 (TKIEK)

Det är principer och idéer som är viktiga. Skriv så att du övertygar examinatorn om att du har förstått dessa även om detaljer kan vara felaktiga.

Instruktioner - Datortentamen TDDE24 och TDDD73 Funktionell och imperativ programmering (i Python)

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

Det är principer och idéer som är viktiga. Skriv så att du övertygar rättaren om att du har förstått dessa även om detaljer kan vara felaktiga.

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

kl Tentaupplägg

Föreläsning 9 Innehåll

Tentamen med lösningsförslag Datastrukturer för D2 DAT 035

3. Toppkvinnor på hög Låt lådan och de två kvinnornas famnar utgöra stackarna L, K1 respektive K2. Från början finns alla kort i L.

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 (grundläggande konstruktioner)

Datastrukturer och algoritmer. Föreläsning 15 Inför tentamen

Datastrukturer i Haskell

Tildatenta Lösningsskiss

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

Transkript:

Tentamen TEN1 HI1029 2014-03-14 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: Fx-7p, E-8p, D-9p, C-10p, B-11p, A-12p, Max-15p Examinator och rättande lärare: Nicklas Brandefelt Rättning: Generellt gäller korrekt lösning för att få poäng. -1p per mindre avvikelse från specifikation -1p per kvalitetavvikelse Uppgift 2 Stack istället för kö 0p Ej cirkulär array Max 1p Uppgift 3 Ej kontrollerat root!=null -1p (om allt annat snyggt och korrekt -0p) returnerar String eller Node<E> istället för E -1p nollställer ej medlemsvariabel så att anrop två blir fel -1p Uppgift 4 Använder mergesort i endast ett steg och sedan annan sortering -1p Saknar merge 0p Sorterar ej korrekt 0p

1. Taltriangel Vilken är den högsta summan man kan få genom summera talen längs valfri väg från toppen till botten i en taltriangel? Vid varje steg kan man alltså endast välja på att gå vänster eller höger. Utgå ifrån att alla tal är heltal större än eller lika med noll. Dina funktioner skall klara valfri storlek med godtyckliga siffror. Använd skalet ni hittar i W:\AoD\Uppgift1. a) Skriv en rekursiv funktion som beräknar högsta möjliga summan för en taltriangel. Troligen använder du en wrapper-funktion som i sin tur anropar den funktion som du sedan anropar rekursivt. (2p) b) Förbättra effektiviteten genom att tabulera värden du räknat ut (dynamisk programmering top-down). (1p) Tips: Om man vill lagra en triangel såsom ovan gör man det enklast i en array: 7 * * * * 3 8 * * * 8 1 0 * * 2 7 4 4 * 4 5 2 6 5 Om man då står på rad n och kolumn m och vill gå vänster ska man gå till rad n+1 och kolumn m. Vill man gå till höger ska man gå till rad n+1 och kolumn m+1.

2. Implementera en kö för strängar med hjälp av en array som inre datastruktur. Använd arrayen som en cirkulär array för att få en effektiv implementering. Kalla klassen för Queue. Med hjälp av konstruktorn ska man kunna sätta storleken som ska vara fix. Den skall endast ha två publika metoder: enqueue (för att köa) och dequeue (för att avköa). Försöker man köa en sträng i en full kö ska den returnera false annars true. Försöker man avköa en tom kö ska den returnera en tom sträng ( ). I W:\AoD\Uppgift2 hittar du ett skal som bör gå att köra med din kö. (3p) 3. 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. a) Skriv en metod som returnerar största värdet lagrat i det binära sökträdet. Trädet får inte påverkas av metoden. (2p) b) Skriv en metod som returnerar antalet noder som har exakt två barn. Trädet får inte påverkas av metoden. (2p) 4. Implementera en static metod som sorterar en array med heltal med hjälp av mergesort. Du får alltså inte använda någon färdig sorteringsalgoritm i javas api utan skall skriva en egen. Utgå från skalet du hittar i W:\AoD\Uppgift4. (2p) Mergesort - kort påminnelse: Dela upp en array i två arrayer Sortera vänster array Sortera höger array Sammanfoga de sorterade arrayerna

5. I följande pussel ska man få siffrorna i nummerordning genom att rotera de fyra i övre vänstra hörnet, övre högra hörnet, nedre vänstra hörnet eller nedre högra hörnet enligt bilden: Varje 2*2 ruta kan alltså roteras medurs eller moturs 90 grader. Ett drag består då av en sådan rotation. a) Skriv ett program som löser problemet för godtycklig startuppställning och berättar hur många drag som krävs. Programmet behöver alltså inte presentera dragen. Du får utgå ifrån att ingen startuppställning kräver mer är 9 drag (egentligen kräver en del uppställningar 11 drag). (2p) Exempel: 1,2,3,4,5,6,8,9,7 6 drag 1,2,3,4,5,6,9,8,7 7 drag b) Skriv en ny version (spara den gamla) som inte behöver veta antalet maximala drag genom att genomsöka möjligheterna med bredden först. Dvs den testar först alla möjliga första drag. Sedan testar den alla möjliga två drag och så vidare till den hittar lösningen. Den här lösningen kommer antagligen äta minne så du kan nöja dig med att testa den på exempel som löses på få drag. (1p) Exempel: 1,2,3,4,9,8,7,6,5 2 drag 1,2,3,4,5,7,6,9,8 4 drag