Tentamen Programmeringsteknik II Skrivtid: Skriv läsligt! Använd inte rödpenna! Skriv bara på framsidan av varje papper.

Relevanta dokument
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.

Trigonometri. 2 Godtyckliga trianglar och enhetscirkeln 2. 3 Triangelsatserna Areasatsen Sinussatsen Kosinussatsen...

Listor = generaliserade strängar. Introduktion till programmering SMD180. Föreläsning 8: Listor. Fler listor. Listindexering.

Finaltävling den 20 november 2010

Uppsala Universitet Matematiska Institutionen Bo Styf. Sammanfattning av föreläsningarna 5-7.

Kontrollskrivning 3 till Diskret Matematik SF1610, för CINTE1, vt 2019 Examinator: Armin Halilovic Datum: 2 maj

FORMELLA SPRÅK, AUTOMATER OCH BERÄKNINGSTEORI ÖVNINGSUPPGIFTER PÅ REGULJÄRA SPRÅK

Finita automater, reguljära uttryck och prefixträd. Upplägg. Finita automater. Finita automater. Olika finita automater.

Uppsala Universitet Matematiska Institutionen Thomas Erlandsson

14. MINSTAKVADRATMETODEN

Kan det vara möjligt att med endast

AUBER 95 9 jan LÖSNINGAR STEG 1:

Integralen. f(x) dx exakt utan man får nöja sig med att beräkna

Föreläsning 7: Trigonometri

Tentamen i Analys B för KB/TB (TATA09/TEN1) kl 08 13

1. (6p) (a) Använd delmängdskonstruktionen för att tillverka en DFA ekvivalent med nedanstående NFA. (b) Är den resulterande DFA:n minimal? A a b.

Föreläsning 7. Splay-träd. Prioritetsköer och heapar. Union/Find TDDC70/91: DALG. Innehåll. Innehåll. 1 Splay-träd

Induktion LCB 2000/2001

Tentamen i ETE115 Ellära och elektronik, 4/1 2017

Kvalificeringstävling den 2 oktober 2007

Tentamen i Databasteknik

Exponentiella förändringar

============================================================ V1. Intervallet [a,b] är ändligt, dvs gränserna a, b är reella tal och INTE ±.

SF1625 Envariabelanalys

Vilken rät linje passar bäst till givna datapunkter?

V1. Intervallet [a,b] är ändligt, dvs gränserna a, b är reella tal och INTE ±. är begränsad i intervallet [a,b].

Appendix. De plana triangelsatserna. D c

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

Tentamen i ETE115 Ellära och elektronik, 25/8 2015

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

Geometri. 4. Fyra kopior av en rätvinklig triangel kan alltid sättas ihop till en kvadrat med hål som i följande figur varför?

============================================================ V1. Intervallet [a,b] är ändligt, dvs gränserna a, b är reella tal och INTE.

Tentamen Programmeringsteknik II Skrivtid: Hjälpmedel: Java-bok (vilken som helst) Skriv läsligt! Använd inte rödpenna!

Preliminär version 2 juni 2014, reservation för fel. Tentamen i matematik. Kurs: MA152G Matematisk Analys MA123G Matematisk analys för ingenjörer

PASS 1. RÄKNEOPERATIONER MED DECIMALTAL OCH BRÅKTAL

V1. Intervallet [a,b] är ändligt, dvs gränserna a, b är reella tal och INTE ±. är begränsad i intervallet [a,b].

Bokstavsräkning. Regler och knep vid bokstavsräkning

Lösningsförslag till tentamen i SF1683 och SF1629 (del 1) 23 oktober 2017

TATA42: Föreläsning 4 Generaliserade integraler

Evighetskalender. 19 a) nyårsdagen var år 2000 b) julafton kommer att vara på år 2010 c) de första människorna landade på månen, 20 juli 1969

TATA42: Föreläsning 4 Generaliserade integraler

Mat Grundkurs i matematik 1, del III

Tentamen 1 i Matematik 1, HF dec 2016, kl. 8:00-12:00

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 matematisk statistik

Datorernas matematik

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.

SF1625 Envariabelanalys

Integraler. 1 Inledning. 2 Beräkningsmetoder. CTH/GU LABORATION 2 MVE /2013 Matematiska vetenskaper

Analys grundkurs B lab 1. Stefan Gustafsson Per Jönsson Fakulteten för Teknik och Samhälle, 2013

Sidor i boken

Sfärisk trigonometri

Tentamen i EITF90 Ellära och elektronik, 28/8 2018

1 e x2. lim. x ln(1 + x) lim. 1 (1 x 2 + O(x 4 )) = lim. x 0 x 2 /2 + O(x 3 ) x 2 + O(x 4 ) = lim. 1 + O(x 2 ) = lim = x = arctan x 1

Generaliserade integraler

Byt till den tjocka linsen och bestäm dess brännvidd.

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

MATEMATISKT INNEHÅLL UPPGIFT METOD. Omvandla mellan olika längdenheter. METOD BEGREPP RESONEMANG. Ta reda på omkrets. 5 Vilken omkretsen har figuren?

x = x = x = x=3 x=5 x=6 42 = 10x x + 10 = 15 x = = 20 x = 65 x + 36 = 46

TMV151/TMV181. Fredrik Lindgren. 19 november 2013

Råd och hjälpmedel vid teledokumentation

Skriv tydligt! Uppgift 1 (5p)

Area([a; b] [c; d])) = (b a)(d c)

Inledande kurs i matematik, avsnitt P.6. Vi ritar upp enhetscirkeln och vinkeln 2π 3.

Ett förspel till Z -transformen Fibonaccitalen

Några integraler. Kjell Elfström. x = f 1 (y) = arcsin y. . 1 y 2 Vi låter x och y byta roller och formulerar detta resultat som en sats: cos x = 1

Operativsystemets uppgifter. Föreläsning 6 Operativsystem. Skydd, allmänt. Operativsystem, historik

Associativa lagen för multiplikation: (ab)c = a(bc). Kommutativa lagen för multiplikation: ab = ba.

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


MEDIA PRO. Introduktion BYGG DIN EGEN PC

Lösningar och kommentarer till uppgifter i 1.2

ORTONORMERAT KOORDINAT SYSTEM. LÄNGDEN AV EN VEKTOR. AVSTÅND MELLEN TVÅ PUNKTER. MITTPUNKT. TYNGDPUNKT. SFÄR OCH KLOT.

Diskreta stokastiska variabler

Rationella uttryck. Förlängning och förkortning

Tentamen i EDA320 Digitalteknik-syntes för D2

Tentamen, Algoritmer och datastrukturer

TATA42: Föreläsning 11 Kurvlängd, area och volym

Nautisk matematik, LNC022, Lösningar

Så här gör du? Innehåll

Tentamen ellära 92FY21 och 27

LINJÄR ALGEBRA II LEKTION 1

0 a. a -Â n 2 p n. beskriver på sedvanligt sätt en a-periodisk utvidgning av f. Nedanför ritas en partialsumma av Fourierserien.

GEOMETRISKA VEKTORER Vektorer i rummet.

Frågor för tentamen EXTA50 Samhällsmätning, 9 hp, kl januari, 2015.

9. Vektorrum (linjära rum)

TENTAMEN. Matematik för basår I. Massimiliano Colarieti-Tosti, Niclas Hjelm & Philip Köck :00-12:00

Föreläsning 3: Strängmatchning

Volum av rotationskroppar. Båglängd, rotationsytor. Adams 7.1, 7.2, 7.3

Uttryck höjden mot c påtvåolikasätt:

Rektangulär kanal, K. Produktbeteckning. Beteckningsexempel. Sida A (se storlekstabell) Sida B (se storlekstabell)

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

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

Sammanfattning, Dag 9

12 frågor om patent RESEARCHA-ÖVNING

Definition. En cirkel är mängden av de punkter i planet vars avstånd till en given punkt är

a sin 150 sin 15 BC = BC AB 1.93 D C 39º 9.0

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

Gör slag i saken! Frank Bach

Mat Grundkurs i matematik 1, del III

Transkript:

Tentmen Progrmmeringsteknik II 014-10-4 Skrivtid: 1400 1900 Tänk på följnde Skriv läsligt! Använd inte rödpenn! Skriv r på frmsidn v vrje ppper. Börj lltid ny uppgift på nytt ppper. Lägg uppgiftern i ordning. Skriv uppgiftsnummer och din kod på ll ppper. Skriv inte längst upp i vänstr hörnet - det går inte tt läs där efter smmnhäftning. Fyll i försättssidn fullständigt. Det är principer och idéer som är viktig. Skriv så tt du övertygr rättren om tt du hr förstått dess även om detljer kn vr felktig. Progrmkod skll vr läslig, d.v.s. den skll vr vettigt strukturerd och indenterd. Nmn på vriler, metoder, funktioner, klsser etc. skll vr eskrivnde men kn ändå hålls gnsk kort. Såvid inget nnt nges, får mn ygg på lösningr till föregående uppgifter även om dess inte hr lösts. Det är tillåtet tt inför hjälpmetoder och hjälpklsser. Uttrycket skriv en metod som skll lltså inte tolks så tt lösningen inte får strukturers med hjälp v fler metoder. All uppgifter gäller progrmmeringsspråket Jv och progrmkod skll skrivs i Jv. Koden sk vr läslig, dvs den skll vr vettigt strukturerd och indenterd. Nmn på vriler, metoder, klsser etc skll vr eskrivnde men kn ändå hålls kort. Oserver tt poängvdrg lnd nnt kn görs för icke-privt instnsvriler dålig läslighet upprepning v identisk kod underlåtenhet tt utnyttj given eller egen tidigre skriven metod Uppgiftern kommer inte i svårighetsordning. Lyck till! 1

Uppgifter 1. En hshtell är en mycket nvändr dtstruktur om mn inte kräver tt dt skll hålls sorterde. Dess fördel är ju som eknt sn åtkomst och lgring. Exempel: Nednstående kod ger en dtstruktur enligt vidstående figur med Jvs stndrdklss HshSet. HshSet<Integer> = new Hsh<Integer>();.dd();.dd();.dd(9);.dd(1);.dd(4); 4 9 1 För tt lägg in dt och sök efter dt ehöver vi en hsh-nyckel. Den trnsformerr dt så tt vi får ett tl som ligger i intervllet [0::tellstorlek 1], i dett fll lltså intervllet [0 6]. Eftersom dt i dett fllet är heltl så är en enkel hshnyckel tl%tellstorleken som ger oss ett tl i önskt intervll. I exemplet får vi då följnde 9 1 4 0 Tekniskt så är tellen en rry v osorterde listor. I ovnstående exempel hr vi lltså en rry estående v sju osorterde listor. Uppgiften estår i tt skriv delr v en egen klss HshSet som sk vr en hshtell där vi lgrr strängr (Strings), inte heltl som exemplet ovn. Mn kn få frm en hshnyckel från en sträng exempelvis genom tt dder ll tecken i strängen och sedn pplicer %-opertorn enligt ovn. För tt får frm det i:e tecknet i strängen s nvänds nropet s.chrat(i). Bilgn HshSet innehåller ett skl till en klss som sk implementers. ) Skriv en klss HshSetException som en underklss till RuntimeException. Denn klss skll nvänds vid felktig nvändning v metodern i klssen HshSet. ) Skriv en klss Node som en klss deklrerd inuti klssen HshSet. Den sk nvänds för tt ygg vår listor. c) Skriv metoden hshkey(string s) som producerr en hshnyckel från given sträng. d) Skriv en prmeterlös konstruktor som skpr en tom HshSet med plts för 7 element.

e) Skriv en konstruktor som skpr en tom HshSet med plts för n element, där n ges som rgument till konstruktor se ilgn! f) Skriv en metod remove(string s) som tr ort given sträng ur hshtellen. Om den inte finns skll ett undntg ksts. g) Skriv en metod dd(string s) som lägger in en sträng i hshtellen. Om strängen redn finns skll ett undntg ksts. h) Skriv en metod find(string s) som söker efter en given sträng i tellen och som returnerr snt eller flskt.. i) Skriv en metod tostring() som implementerr tostring i klssen. Tips! Den efintlig koden i ilgn kn ge ledtrådr till hur metodern ovn sk implementers!. Ett Huffmnträd är ett träd som kn nvänds för tt komprimer en textfil genom tt kod tecknen på ett smrt sätt. Normlt representers ju ett tecken i Jv med 16 itr. Tnken med Huffmnkod är tt vnlig tecken sk representers med få itr medn ovnlig tecken kn h längre kod. På dett sätt kn mn spr plts. Ett krv är nturligtvis tt mn kn vkod den komprimerde texten på ett entydigt sätt. Det hel ygger på tt mn skpr en tell där ll tecken som förekommer i texten finns tillsmmns med sin frekvens ( hur mång gånger tecknet finns dividert med totl ntlet tecken). Denn tell är sorterd i fllnde frekvensordning. Lämpligen är vrje element i tellen en trädnod innehållnde tecknet, frekvensen, vänster och högerpekre. Sedn slår mn ihop de två nodern med lägst frekvens. Mn tr då ort dess ur tellen och lägger istället in en ny nod med ett rtificiellt tecken (0) och med den frekvens mn får om mn summerr de två ktuell noderns frekvens. Den ny noden måste sorters in i tellen på rätt plts. De två ktuell nodern lir rn till den ny noden, den med lägst frekvens lir vänsterrn. Sen repeters dett tills det r finns en nod kvr i tellen, då hr vi vårt Huffmnträd Se dett exempel för tt se hur mn gör om vi r hr fyr tecken,,c,d med olik snnolikhet. Vi utgår från en färdig frekvenssorterd tell som vi ygger trädet

ifrån. c d 0. 0. 0.18 0.1 0. 0. 0. De två med lägst snnolikhet slås ihop med en ny nod, summer frekvensen sorter Strtläge d c 0.1 0.18 Sist steget, nu kn t frm teckenkoder. 0. 0. 0. 0. d c 0.1 0.18 Tredje steget 1.0 0. 0. 0. 0. d c 0.1 0.18 = 0 = 10 c =111 d = 110 När vi väl hr trädet kn åde kod och vkod med smm träd. Vänstergrenr får koden 0 och högergrenr koden 1. Sen får vi en ny siffr för vrje steg. Exempelvis lir texten dc kodt 0010011010111 som är 1 itr som kn lgrs i ett tecken istället för de sju som originltexten kräver. Avkodningen görs så tt mn trverserr trädet så tt en noll gör tt mn tr ett steg till vänster, en ett gör tt mn tr ett steg till höger tills mn når ett löv. Då hn mn tecknet. Sen örjr mn om från örjn tills det är slut på input. I exemplet ovn så kommer först en noll, lltså ett steg till vänster, det är ett löv så då får vi tecknet. Vi örjr om i trädet, det kommer en noll till, lltså ett till osv. Bifogt finns en klss Huffmn som du utgår ifrån. Din uppgifter är: ) Skriv ett klss TreeNode som kn representer ett tecken och en frekvens i intervllet [0,1] i ditt träd ) Skriv en konstruktor som skpr en tell v lämplig storlek, prmeter till konstruktorn c) Skriv en metod uildtree som ygger ett Huffmnträd givet en komplett tell med tecken och frekvenser. Den sk lltså genomför de steg som exemplet ovn visr. Slutresulttet lir en tell med ett träd. d) Skriv en metod decodetext som vkodr en itsträng med hjälp v trädet och returnerr en sträng. Bitsträngen är för enkelhets skull en sträng där vrje element innehåller noll eller ett. Vi förutsätter tt ing fel inträffr. Du skll llså utgå från en kodd sträng och t frm originltexten med hjälp v trädet.. I ilgn llshpeclsses finns en sklss Shpe för tt representer geometrisk figurer med underklsser för rektnglr och cirklr. Figurern kn läss in, rits, skrivs och ders yt kn eräkns. Se den givn koden för möjlig opertioner. ) Klssen Shpe är deklrerd som strkt. Förklr vd det inneär och vrför den är deklrerd så. 4

) Klssen Rectngle nvänder nyckelordet super i en v konstruktorern. Förklr vd det inneär och vrför mn gör så. Vrför nvänds inte super i den prmeterlös konstruktorn? c) Vi vill lägg till en metod setcolor(color c). Vr i hierrkin sk den läggs? d) Skriv en klss Tringle för tt representer en tringel. Klssen skll skrivs som en underklss till klssen Shpe. Den sk innehåll konstruktorer så tt det går tt skp ojekt. En tringel representers v sin tre hörnpunkter. Dess position kn vr det först hörnet. Skriv också pint och re-metoden i klssen. red-metoden ehöver inte skrivs. Ytn v en tringel när mn vet sidorns längd kn eräkns med Herons formel. där re = q s (s ) (s ) (s c) s = 1 ( + + c) och, och c är sidorns längd. Mn kn rit en tringel med hjälp v metoden pulic strct void fillpolygon(int[] xpoints, int[] ypoints, int npoints) där mn lägger in x- och y-koordintern och ntl punkter. Os: För tt få poäng skll rv utnyttjs! Du skll lltså r skriv de delr som ehövs för de ny strukturern och inte upprep efintlig kod. Du sk dock skriv konstruktorer till vilk mn kn skick in värden på smtlig instnsvriler i din klsser. Exempel på indt, utskrifter och ritd figur. Indt: 00 00 rectngle 0 40 0 00 0 00 00 0 circle 40 00000 0 circle 100 00 0 00 0 00 80 tringle 00 00 00 0 060 90 exit Utskrifter: > jv DrwTest Stored shpes: Rectngle(0, 40) Circle(40, 0) Circle(100, 00) Tringle(00, 00) Totl re: 68 >