TDDC74 Programmering: Abstraktion och modellering Dugga 2, kl 8 10, 3 mars 2016

Relevanta dokument
TDDC74 Programmering: Abstraktion och modellering Dugga 2, kl 8 10, 5 mars 2015

TDDC74 Programmering: Abstraktion och modellering Datortenta

TDDC74 Programmering: Abstraktion och modellering Dugga 3, kl 8 10, 7 april 2016

TDDC74 Programmering: Abstraktion och modellering Dugga 1, exempeldugga

TDDC74 Programmering: Abstraktion och modellering Tentamen, onsdag 9 juni 2016, kl 14 18

TDDC74 Programmering: Abstraktion och modellering Dugga 3, kl 14 16, 25 mars 2015

TDDC74 Programmering: Abstraktion och modellering Tentamen, lördag 29 augusti 2015, kl 8 12

TDDC74 Programmering: Abstraktion och modellering Tentamen, onsdag 19 oktober 2016, kl 14 18

TDDC74 Programmering: Abstraktion och modellering Dugga 2, Tid: kl 08-10, Datum:

TDDC74 Programmering: Abstraktion och modellering Datordugga 2 - exempel

TDDC74 Programmering: Abstraktion och modellering Tentamen, lördag 27 augusti 2016, kl 8 12

TDDC74 Programmering: Abstraktion och modellering Tenta, kl 14 18, 11 juni 2014

TDDC74 Programmering: Abstraktion och modellering Dugga 2, , kl 14-16

TDDC74 Programmering: Abstraktion och modellering Dugga 2, , kl 17-19

TDDC74 Programmering: Abstraktion och modellering Datortenta , kl 14-18

TDDC74 Programmering, abstraktion och modellering DUGGA 3

TDDC74 Programmering: Abstraktion och modellering Dugga 1, kl 14-16

Signalflödesmodellen. Två (gamla) exempel: Kvadratera alla jämna löv.

TDDC74 Programmering, abstraktion och modellering. Tentamen

Lösningsförslag. TDDC74 Programmering: Abstraktion och modellering. Dugga 3 (provkod TEN1), Tid: kl 14-16, Datum:

Två fall: q Tom sekvens: () q Sekvens av element: (a b c) ; (sum-rec '(2 4 6)) = 12. q Första elementet uppfyller vissa villkor: (2 a b c)

TDDC74 Programmering, abstraktion och modellering DUGGA 2

TDDC74 Programmering, abstraktion och modellering. Tentamen

TDDC74 Programmering: Abstraktion och modellering. Provkod TEN1, Tid: kl 14-18, , Kåra

TDDC74 Programmering, abstraktion och modellering. Tentamen

TDDC74 Programmering, abstraktion och modellering. Tentamen

TDDC74 Programmering, abstraktion och modellering DUGGA 2

TDDC74 Programmering: Abstraktion och modellering Datortenta , kl 14-18

TDDC74 Programmering: Abstraktion och modellering Datortenta , kl 08-12

TDDC74 - Lektionsmaterial C

TDDC74 Lab 04 Muterbara strukturer, omgivningar

Lära dig analysera större och mer komplicerade problem och formulera lösningar innan du implementerar.

n Detta för att kunna koncentrera oss på n Tal: number? n Symboler: symbol? n Strängar: string? n Tecken: char? n Boolskt: boolean?

TDDC74 Programmering, abstraktion och modellering DUGGA 1

Idag: Dataabstraktion

TDDC74 Lab 02 Listor, sammansatta strukturer

Ändringsbar (mutable compound) data. TDDC74 Programmering: abstraktion och modellering. Sätta - samman listor kopiering. Hitta sista cons-cellen

TDDC74 PROGRAMMERING: ABSTRAKTION OCH MODELLERING VT 2017

TDDC74 FÖRELÄSNING 9 ANDERS MÄRAK LEFFLER IDA/HCS

Datalogi, grundkurs 1. Lösningsförslag till tentamen

Tentamen i. TDDC67 Funktionell programmering och Lisp

Föreläsning 9 Exempel

Föreläsning 9 Exempel. Intervallhalveringsmetoden. Intervallhalveringsmetoden... Intervallhalveringsmetoden...

Tentamen i. TDDA 69 Data och programstrukturer

Institutionen för datavetenskap, DAT060, Laboration 2 2 För denna enkla simulerings skull kommer handen att representeras som ett par tal μ värdet på

Datalogi, grundkurs 1 Övningsuppgifter i Scheme. Serafim Dahl, Carina Edlund, m.fl.

Börja med att kopiera källkoden till din scheme-katalog (som du skapade i Laboration 1).

Datalogi, grundkurs 1

Dagens föreläsning Programmering i Lisp Fö 5

Abstraktion. procedurabstraktion. DA2001 (Föreläsning 26) Datalogi 1 Hösten / 27

BEGREPP HITTILLS FÖRELÄSNING 2 SAMMANSATTA UTTRYCK - SCHEME DATORSPRÅK

Deklarationer/definitioner/specifikationer

Abstraktion. Abstraktion... Abstraktion... Abstraktion...

Symbolisk data. quote. (define a 1) (define b 2) (jacek johan david) (list a b)

Idag: Par och listor. Symboler. Symboler används för att uttrycka icke-numeriska data såsom namn, adress, bilregisternummer, boktitel, osv.

Idag: Par och listor. Scheme. DA2001 (Föreläsning 6) Datalogi 1 Hösten / 29

Idag: Dataabstraktion

Universitetet i Linköping Institutionen för datavetenskap Anders Haraldsson 2

Datalogi, grundkurs 1. Lösningsförslag till tentamen

Objektorienterad programmering i Racket

FÖRELÄSNING 1 PERSONAL TDDC74 PROGRAMMERING: ABSTRAKTION OCH MODELLERING VT 2017 SYFTE EXAMINATION ORGANISATION

Programmering II (ID1019) :00-11:00

FÖRELÄSNING 2, TDDC74, VT2018 BEGREPP PROBLEMLÖSNING MED HJÄLP AV FALLANALYS PROBLEMLÖSNING MED HJÄLP AV REKURSION

Sökning och sortering. Sökning och sortering - definitioner. Sökning i oordnad lista. Sökning med vaktpost i oordnad lista

Sökning och sortering

Datalogi, grundkurs 1

INFORMATIK - MED SYSTEMVETENSKAPLIG INRIKTNING, GRK/A (1-30 HP)

Dagens föreläsning. Diverse Common Lisp. Konstanter, parametrar, globala variabler

ADT Set, Map, Dictionary. Iteratorer TDDD86: DALGP. Tommy Färnqvist, IDA, Linköpings universitet

Programmering II (ID1019) :00-12:00

Funktionell programmering DD1361

Objektorienterad programmering i Racket

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

HI1024 Programmering, grundkurs TEN

Programmering II (ID1019) :00-12:00

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

Dagens föreläsning Programmering i Lisp. - Bindning av variabler (avs 14.6) fria variabler statisk/lexikalisk och dynamisk bindning

Programmering II (ID1019) :00-11:00

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

Uppgift 6A - Frekvenstabell

Språket Scheme. DAT 060: Introduktion till (funktions)programmering. DrScheme. uttryck. Jacek Malec m. fl. evaluering av uttryck.

Operatorer Tilldelning Kodblock { } if satsen Logiska uttryck Att programmera

Projekt i programmering 1 (ver 2)... 2 Projektidé... 2 Planering... 2 Genomförande... 2 Testning och buggar... 3 Utvärdering... 3 Planering...

EDAA20 Programmering och databaser. Mål komprimerat se kursplanen för detaljer. Checklista. Föreläsning 1-2 Innehåll. Programmering.

Datalogi, grundkurs 1. Lösningsförslag till tentamen

Information om vidare studier

Programmering II (ID1019) :00-17:00

OMTENTAMEN I DATASTRUKTURER OCH ALGORITMER DVG B kl. 14:15 19:15

Tentamen i Introduktion till programmering

Examination i. PROGRAMMERINGSTEKNIK F1/TM1 TIN212 (Dugga) Dag: Onsdag Datum: Tid: (OBS 3 tim) Rum: V

Uppgifter till tenta i 729G04 Programmering och diskret matematik. 7 augusti 2015, kl 08:00-12:00

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

729G74 - IT och programmering, grundkurs. Dugga.

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

TDDE44 Programmering, grundkurs

OMTENTAMEN I DATASTRUKTURER OCH ALGORITMER DVG B kl. 08:15-13:15

Målet för D1 är att studenterna ska kunna följande: Använda några av de vanligaste PROC:arna. Sammanställa och presentera data i tabeller och grafiskt

Java, klasser, objekt (Skansholm: Kapitel 2)

Typsystem. Typsystem... Typsystem... Typsystem... 2 *

Typsystem. DA2001 (Föreläsning 23) Datalogi 1 Hösten / 19

Transkript:

TDDC74 Programmering: Abstraktion och modellering Dugga 2, kl 8 10, 3 mars 2016 Läs alla frågorna först och bestäm dig för i vilken ordning du vill lösa uppgifterna. Uppgifterna är inte ornade i någon särskild ordning! Skriv tydligt och läsligt. Använd väl valda namn på parametrar och indentera din kod. Väl valda namn inkluderar konsekvent språk med mera. Stora parenteser får användas för att avsluta alla öppna parenteser. Även om det i uppgiften står att du skall skiva en procedur/funktion, så får du gärna skriva ytterligare hjälpfunktioner som kan vara nödvändiga. OBS! Du får använda define för att definiera procedurer och namn. Men du får inte använda det (eller set!) för att ändra på/uppdatera värden associerade med namn. mcons och associerade procedurer får inte heller användas i denna dugga. Tanken är att lösningarna ska vara strikt funktionella. Betyg: Det finns tre duggor i kursen. På varje dugga kan man få som mest 12p (så totalt 36p för alla tre). För att kunna få betyget 3 på duggorna måste du sammanlagt (på alla tre duggor) ha fått minst 18p, för betyget 4 gäller minst 23p och för betyget 5 minst 27p. Lycka till!

Uppgift 1 (3 poäng) a) Antag att vi har evaluerat följande uttryck i Racket. (define x 12) (define y 33) (define z yy) (define a (list x y)) (define b (cons 1 2)) (define c (cons x (cons y z))) (define d (cons a a)) (define e (cons y (cons medtek (cons matte ())))) (define f (list (cons du to) (cons två do))) Rita box-pointer -diagram för de strukturer som a, b, c, d, e och f representerar. Uppgift 2 (3 poäng) Skriv en funktion translate, vilken givet ett ord och en ordlista med översättningar, returnerar översättningen på ordet. Om ordet inte finns i ordboken skall #f returneras. Följande exempel visar hur funktionen skall fungera.: > (define dictionary ((bazar. b^az^ar) (broder. bar^adar) (fader. pedar) (du. to) (jag. man) (moder. m^adar) (människa. ^adam) (namn. n^am) (tak. t^aq) (vacker. zib^a) (vän. dust))) > (translate jag dictionary) man > (translate mamma dictionary) #f > (translate moder dictionary) m^adar 2

Uppgift 3 (3 poäng) Vi skulle vilja representera och behandla information om vilka filmer personer har sett. I samband med detta skulle vi vilja skapa en dataabstraktion där vi är intresserad av en persons namn (namn), födelsedag (birthday) och en lista på vilka filmer personen har sett (films). a) Välj en lämplig representation för detta ändamål och definiera följande funktioner för dataabstraktionen. 1) Konstruktor (make-person name birthday films) 2) Selektorer person-name, person-birthday, person-movies Så här tänker vi använda dataabstraktionen: > ( define person -1 (make - person ( Linnea Axberg ) 920311 (( room ) ( spartacus ) ( the revenant ) ( local hero )))) > ( person - name person -1) ( Linnea Axberg ) > ( person - birthday person -1) 920311 > ( person - movies person -1) (( room ) ( spartacus ) ( the revenant ) ( local hero )))) b) Skriv en funktion common-movies som tar två personer som argument och returnerar en lista som innehåller de filmer som båda personerna har sett. Om personerna inte sett samma filmer returneras (). Exempel: > ( define person -2 (make - person ( Anna Persson ) 960104 (( iceman ) ( the big short ) ( jaws ) ( the revenant ) ( spotlight )))) > ( common - movies person -1 person -2) (( the revenant )) 3

Uppgift 4 (3 poäng) Ett tal kallas överflödande om summan av dess riktiga delare 1 är större än talet själv. Alla talets delare förutom talet själv är dess riktiga delare. Exempelvis är 12 överflödande då summan av dess riktiga delare 1, 2, 3, 4 och 6 är 16. a) Skriv ett predikat abundant? vilket testar om ett tal är överflödande eller ej. Kom ihåg att ni får definiera hjälpprocedurer för att bryta ner problemet. Din lösning skall använda de relevanta procedurerna ur procedursamlingen enumerate, map, filter, och accumulate på lämpligt sätt. Se nedan för definitionerna, dessa behöver inte skrivas av för att användas. ( define ( enumerate low high ) (if (> low high ) () ( cons low ( enumerate (+ low 1) high )))) ( define ( map proc L) (if ( null? L) () ( cons ( proc ( car L)) ( map proc ( cdr L))))) ( define ( filter pred? L) ( cond (( null? L) ()) (( pred? ( car L)) ( cons ( car L) ( filter pred? ( cdr L)))) ( else ( filter pred? ( cdr L))))) ( define ( accumulate proc null - value L) ; Same as the procedure REDUCE from lectures (if ( null? L) null - value ( proc ( car L) ( accumulate proc null - value ( cdr L))))) 1 proper divisors på engelska 4

Följande lista visar hur en lista med flera personer skulle kunna skapas, den behövs inte i samband med duggauppgifterna. (define person-database (list (make-person (Daniel Fatrous) 960420 ((the revenant) (mad max))) (make-person (Anja Klerstad) 940704 ((jaws) (the big short))) (make-person (Elin Hällstrand) 940225 ((the manchurian candidate) (room) (local hero) (dead again) (the cotton club) (make-person (Otto Valjus) 900303 ((the big easy) (the exorcist) (the godfather) (amarcord) (malcolm x))) (make-person (Sasan Mårtensson) 950510 ((the martian) (amadeus) (spotlight) (brooklyn) (spotlight))) (make-person (Emilia Wängberg) 930723 ((the godfather) (the manchurian candidat (make-person (Emil Sadowski) 950809 ((amarcord) (brooklyn) (malcolm x) (mad max (make-person (Linnea Axberg) 920311 ((room) (spartacus) (the revenant) (local h (make-person (Mathias Dahlqvist) 960628 ((the big easy) (metropolis) (the martian) (dead again) (malcolm x))) (make-person (Elias Gosö) 950307 ((the manchurian candidate) (mad max))) (make-person (Anna Persson) 960104 ((iceman) (the big short) (jaws) (the revenant) (spotlight))) (make-person (Elin Kåreklint) 950810 ((the martian) (the big short) (the martian) (othello) (room))))) 5