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

Storlek: px
Starta visningen från sidan:

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

Transkript

1 Datalogi, grundkurs 1 Övningsuppgifter i Scheme Serafim Dahl, Carina Edlund, m.fl. Hösten 2004

2

3 Datalogi, grundkurs 1, hösten Vad blir det för resultat vid beräkningen av följande Scheme-uttryck. a. (- 10 (- 8 (- 6 4))) b. (/ 40 (* 5 20)) c. (/ 2 3) d. (+ (* ) (/ 4-3)) 2. Översätt följande aritmetiska uttryck till Scheme-uttryck. a. (4 7) (13 + 5) b. (3 (4 + ( 5 3))) c. (2.5 (5 (1 10))) d. 5 ((537 ( (375 ( )))) + 255) 3. Översätt följande Scheme-uttryck till det vanliga skrivsättet som används t.ex i matematik. a. (+ 10 ( )) b. (+ 10 (- ( ) 10)) c. (+ (* ) (* )) d. (/ ( ) ( )) 4. Nedan finns en sekvens av uttryck. Vad kommer guile att skriva som svar på inmatning av dessa uttryck? Antag att de matas in i den ordning de står. a. 10 b. ( ) c. (- 9 1) d. (/ 6 2) e. (+ (* 2 4) (- 4 6)) f. (define a 3) g. (define b (+ a 1)) h. (+ a b (* a b)) i. (= a b) j. (if (and (> b a) (< b (* a b))) b a) k. (cond ((= a 4) 6) ((= b 4) (+ 6 7 a)) (else 25)) l. (+ 2 (if (> b a) b a))

4 2 Övningsuppgifter scheme m. (* (cond ((> a b) a) ((< a b) b) (else -1)) (+ a 1)) 5. Översätt följande uttryck till scheme ( 2 ( 3 ( ))) 5 3 (6 2) (2 7) 6. Definiera en procedur som tar tre tal som argument och returnerar summan av kvadraten av de två största av talen. >(maxsqsum 1 2 3) Definiera en procedur som beräknar ytan av en ellips area(a, b) = π a b med a och b som argument. Visa beräkningsstegen för uttrycket >(area 3 4) 8. Definiera en procedur volume(a, b, h) = h area(a, b) som beräknar volymen av en elliptisk cylinder med radierna a och b samt höjden h som argument. area(a, b) är proceduren definierad i föregående uppgift. Visa beräkningsstegen för uttrycket >(volume 3 4 5) 9. Märk att beräkningsmodellen i Scheme tillåter kombinationer vars operatorer är sammansatta uttryck. Använd denna observation för att beskriva hur följande procedur fungerar: (define a-plus-abs-b (lambda (a b) ((if (> b 0) + -) a b))) 10. Om man definierat (define succ (lambda (x) (+ x 1))) (define pred (lambda (x) (- x 1))) kan man implementera + på många sätt. Illustrera för båda definitionerna nedan av plus beräkningen av följande uttryck, med hjälp av substitutionsmetoden.

5 Datalogi, grundkurs 1, hösten >(plus 3 2) >(plus 2 3) a. (define plus (lambda (a b) (if (= a 0) b (succ (plus (pred a) b))))) b. (define plus (lambda (a b) (if (= a 0) b (plus (pred a) (succ b))))) c. Vilken är svansrekursiv? Motivera! 11. Implementera den rekursiva funktionen nedan i Scheme. 0 om n = 0 2 om n = 1 f(n) = 37 om n = 2 f(n 3) + 1 om n är udda f(n/2 1) + 7 annars a. Visa med hjälp av substitutioner hur beräkningen av din implementation sker då anropet är: >(f 17) b. Är din lösning svansrekursiv eller ej? Motivera! 12. De naturliga talen kan delas i udda och jämna tal. En rekursiv beskrivning kan vara jämnt om n = 0 f(n) = udda om n = 1 f(n 2) annars Ur den beskrivningen kan man finna mönster för att implementera egna versioner av even?, som kollar om ett tal är jämnt och odd?, som kollar om ett tal är udda. a. Implementera even? med hjälp av pred. b. Implementera odd? med hjälp av pred c. Implementera odd? med hjälp av even? Det kan göras på två olika sätt finn och implementera båda.

6 4 Övningsuppgifter scheme 13. Om man definierar (define succ (lambda (x) (+ x 1))) (define pred (lambda (x) (- x 1))) kan man implementera +, *, ^, fac, min och max med hjälp av succ, pred och varandra. Gör detta för de naturliga talen (så att procedurerna fungerar för endast 0 och de positiva heltalen). Algoritmer som kan vara till hjälp är bland annat: { 0 om y = 0 mul(x, y) = plus(x, mul(x, pred(y))) annars x om y = 0 cut off(x, y) = 0 om x = 0 cut off(pred(x), pred(y)))) annars { 1 om n = 0 power(b, n) = mul(b, power(b, pred(n))) annars Visa samtidigt hur interpretatorn hanterar subrutinanrop och rekursion. a. Skriv * med hjälp av lösningen till föregående uppgift (med plus) b. Skriv fakultetsberäkning med hjälp av de redan implementerade procedurerna. c. Skriv s.k. cut-off -subtraktion, d.v.s. så att man får noll för resultat som skulle gett negativt resultat om alla heltal varit tillåtna. d. Skriv min som ger det minsta av sina två argument till resultat, med hjälp av cut-off -subtraktionsproceduren. e. Skriv max som ger det största av sina två argument till resultat, med hjälp av cut-off -subtraktionsproceduren. f. skriv power ( upphöjt till ). 14. Antag att du låter guile utföra beräkningen av (list 1 (list 2 (list 3 4))) Visa vad guile-interpretatorn kommer att svara och ge motsvarande box-ochpekar-diagram.

7 Datalogi, grundkurs 1, hösten Antag följande definitioner: (define x (list 1 2 3)) (define y (list 4 5 6)) Vad kommer guile svara då följande uttryck beräknas? a. (append x y) b. (cons x y) c. (list x y) Rita även motsvarande box-och-pekar-diagram. 16. Det är vanligt att man behöver utföra samma beräkning på alla element i en lista och tillverka en ny lista av alla svaren. Byt alla?? mot uttryck så att proceduren nedan kan användas för att, då den anropas med en lista, återsända en lista vars element är kvadraten på elementen i den medsända listan. (define square-list (lambda (a-list) (if???? (cons (square?? ) (square-list?? ))))) 17. Definiera en procedur last-pair som returnerar en lista som innehåller bara ett enda element, nämligen det sista elementet av en given (ej tom) lista: >(last-pair (list )) (34) 18. I ett försök att skriva squarelist svansrekursivt har följande procedur kommit till världen: (define square-list (lambda (x) (define iter (lambda (list answer) (if (null? list) answer (iter (cdr list) (cons (square (car list)) answer))))) (iter x ()))) Den fungerar inte så bra eftersom resultatet kommer reverserat jämfört med vad man väntar sig. Förklara varför. I ett försök att rätta till saken införs i stället följande

8 6 Övningsuppgifter scheme (define square-list (lambda (x) (define iter (lambda (list answer) (if (null? list) answer (iter (cdr list) (cons answer (square (car list))))))) (iter x ()))) Det fungerar inte heller något vidare. Förklara varför. 19. Definiera en procedur som beräknar medelvärdet av alla tal i en lista med bara tal. >(mean (list 1 2 3)) Definiera en procedur som beräknar det minsta talet av talen i en lista med bara tal. >(minimum (list 1 2 3)) Definiera en procedur filter som tar två argument varav den ena är ett predikat och den andra är en lista. Proceduren filter filtrera ut de elementen i listan för vilka predikatet ger värdet \#t. >(filter odd? (list )) (1 3) 22. reverse vänder på en lista men inte på de listor som är element i listan (om det finns). Sålunda kommer resultatet av (reverse ((1 2) (3 4))) att bli ((3 4) (1 2)) Skriv proceduren deep-reverse som vänder på alla listor på alla nivåer, så att (deep-reverse ((1 2) (3 4))) blir ((4 3) (2 1))

9 Datalogi, grundkurs 1, hösten Två listor anses lika om de innehåller samma element ordnade på samma sätt då de jämförs med equal?. Därför får man guile>(equal? (this is a list) (this is a list)) #t guile>(equal? (this is a list) (this (is a) list)) #f Definiera myequal? som en procedur så att a och b är lika enligt equal? om de båda är symboler och lika enligt eq? eller de båda är listor och (car a) är equal? med (car b) och (cdr a) är equal? med (cdr b). 24. Ingen version av make-rat som givits på föreläsning eller i boken är riktigt korrekt. Om man ska normalisera ett rationellt tal bör numeratorn vara det som bär på det rationella talets tecken, men ingenstans har man tagit hänsyn till tecken över huvud taget. Det är till och med så att den gcd-algoritm som givits i boken bara fungerar med positiva heltal. Den som finns inbyggd i guile däremot fungerar korrekt. Definiera om make-rat så att de rationella talen normaliseras korrekt oavsett gcd-version. 25. Om man vill representera punkter i planet kan detta göras med par av tal medan linjer i planet enklast representeras med par av punkter. a. Skriv konstruktorer och selektorer för att representera punkter i planet. b. Skriv konstruktorer och selektorer för att representera linjer i planet. c. Skriv med hjälp av de ovan nämnda konstruktorerna och selektorerna en procedur som återsänder mittpunkten på en linje. 26. I boken använder man talintervall som ett sätt att hantera osäkerhet, om än lite luddigt förklarat. Det man är ute efter är att man i många fall inte kan bestämma ett värde exakt, utan måste nöja sig med ett ungefärligt värde. Trots detta kan man vara tvungen att försöka använda det funna (ungefärliga) värdet på ett meningsfullt sätt. Man kan då antingen ge ett intervall, t ex [5..7], eller ett nominellt värde och en felgräns, t ex 6±1. Man får då speciella regler för hur man ska räkna med sådana ungefärliga värden. Här nedan återges några av verbatimmen i boken med viss modifiering: (define int-add (lambda (x y) (make-interval (+ (lower-bound x) (lower-bound y)) (+ (upper-bound x) (upper-bound y))))) (define center-width (lambda (c w) (make-interval (- c w) (+ c w))))

10 8 Övningsuppgifter scheme (define center (lambda (i) (/ (+ (lower-bound i) (upper-bound i)) 2))) (define width (lambda (i) (/ (- (upper-bound i) (lower-bound i)) 2))) (define int-div (lambda (x y) (make-intervall (/ (lower-bound x) (upper-bound y)) (/ (upper-bound x) (lower-bound y))))) (define int-mul (lambda (x y) (let ((p1 (* (lower-bound x) (lower-bound y))) (p2 (* (lower-bound x) (upper-bound y))) (p3 (* (upper-bound x) (lower-bound y))) (p4 (* (upper-bound x) (upper-bound y)))) (make-interval (min p1 p2 p3 p4) (max p1 p2 p3 p4))))) (define int-div-2 (lambda (x y) (int-mul x (make-interval (/ 1 (upper-bound y)) (/ 1 (lower-bound y)))))) a. Skriv de i verbatimmen använda konstruktorerna och selektorerna för intervallen (make-int, lower-bound och upper-bound). b. Skriv en procedur som subtraherar två intervall. c. Visa att vidden (avståndet mellan undre och övre gränserna) för summan av resp. differensen mellan två intervall endast beror av vidden på operanderna (de två intervall man ska operera på) och ge exempel på att det int är fallet för multiplikation resp. division. d. Den föreslagna divisionsoperatorn fungerar inte så bra om dividenden (det man dividerar med) är ett intervall som spänner över noll (vars undre gräns är negativ medan övre gränsen är positiv). Skriv om divisionsprocedurerna så att de varnar om det är så (och inte utför operationen). 27. Trapetsregeln används i boken som ett exempel på hur summationsformeln kan användas för att utföra integralberäkningar:

11 Datalogi, grundkurs 1, hösten y f(x) A a dx b x Namnet trapetsregeln kommer sig av att man kan betrakta varje parallelltrapets i figuren för sig och räkna ut ytan som begränsas av funktionen och x-axeln från x = a till x = b som summan av alla parallelltrapetserna. A = b a f(x) dx vilket i sin tur kan approximeras som A n a i, n i=1 [ ( f a + dx ) ( + f a + 3dx ) ( + + f b dx )] dx och beräknas med schemeproceduren (define integral (lambda (f a b dx) (define +dx (lambda (x) (+ x dx))) (* (sum (+ a (/ dx 2)) (- b (/ dx 2)) f +dx) dx))) Simpsons formel är en noggrannare formel för numerisk integrering än trapetsregeln. Enligt Simpsons formel är integralen, A, för en funktion f i intervallet [a, b] ungefär h 3 (y 0 + 4y 1 + 2y 2 + 4y 3 + 2y y n 2 + 4y n 1 + y n ) där h = (b a)/n för något jämnt heltal n och y k = f(a + k h). Noggrannheten ökar ju större n är. Definiera en procedur simpson, som tar fyra

12 10 Övningsuppgifter scheme argument, f, a, b och n och vars värde är ungefär lika med f, approximerad med hjälp av n enligt Simpsons formel. Testa med att beräkna b a 0 n = 100 och n = Skriv in proceduren integral, som den givits på föreläsning, gör motsvarande test och jämför med resultaten från simpson. 1 x 3 för 28. Proceduren sum är bara en av de enklaste av en mängd liknande abstraktioner (generaliseringar) som kan definieras som högre ordningens procedurer. a. Skriv en analog procedur product som returnerar produkten av alla funktionsvärden (för en given funktion) i punkter i ett intervall. Visa hur man kan definiera fact (factorial) i termer av product. b. Visa också hur man använder product för att beräkna π enligt formeln π 4 = Både sum och product är specialfall av en ännu mer generell abstraktion som vi kan kalla accumulate, som kombinerar en mängd termer genom att använda någon sorts ackumuleringsfunktion. (accumulate combiner null-value term a next b) Accumulate tar som argument samma term och intervallspecifikation som sum och product. Dessutom tar accumulate en combiner-procedur, som specificerar hur en term skall kombineras med redan ackumulerat resultat och ett null-värde som specificerar vilket värde som ska användas då serien av termer tar slut. Skriv accumulate och visa hur både sum och product kan definieras som enkla anrop till accumulate 30. Definiera en procedur cubic som tar tre argument och genererar en funktion för att beräkna värdet av ett tredjegradspolynom. D v s att (define f (cubic a b c)) ska generera en procedur som representerar f(x) = x 3 +ax 2 +bx+c. Testa cubic genom att använda den tillsammans med intervallhalvering 1 och med Newton-Raphsons metod enligt föreläsning eller AS. 31. Om f är en funktion och n är ett positivt heltal kan man generera den n-te repeterade applikationen av f som definieras som den funktion vars värde i punkten x är 1 som ju är svansrekursiv enligt guile f(f(... (f(x))...)) }{{} n anrop

13 Datalogi, grundkurs 1, hösten så att om f(x) = x+1 så är ((repeated f 3) 1) 4. Skriv repeated och visa vad som händer då (define g (repeated f 3)) används. 32. Funktioner för att utjämna (eng. smoothe) är viktiga i signalhanteringssammanhang för att ta bort störningar i signaler som enligt erfarenhet skall ha ett lugnt förlopp. Om f är en funktion och dx är något (litet) tal, så kan den utjämnade versionen av f vara antingen medeltalet av f(x dx) och f(x) eller medeltalet av f(x dx), f(x) och f(x + dx). Skriv smoothe som tar en funktion som argument och returnerar den utjämnade versionen av funktionen. Se till att den fungerar tillsammans med repeated så att g blir den n-te utjämnade versionen av f genom anropet (define g (repeated (smoothe f) n)). 33. Implementera createstack, push, retrieve och pop för att manipulera en stack. 34. Kan man förena retrieve och pop i en procedur? Motivera! 35. Skriv en procedur som tar ett argument, och avgör om det är en lista. Lösningen får inte använda sig av proceduren list? (som gör samma sak), men den kan med fördel använda sig av pair? (som avgör om dess argument är ett par). 36. Skriv en procedur som tar ut det näst största talet ur en lista med heltal. Om ett näst största tal inte finns skall proceduren returnera falskt. 37. Proceduren map tar som argument en procedur och en lista, och returnerar en lista vilkas element har skapats genom att applicera den givna proceduren på varje element i den givna listan. Nedan följer ett exempel på hur map kan fungera. (define double (lambda (n) (* n 2))) > (map double (list 1 2 3)) (2 4 6) > (map odd? (list 1 2 3)) (#t #f #t) Skriv proceduren deep-map som även applicerar den givna proceduren på listor i listor. deep-map skall kunna användas på följande sätt. (define double (lambda (n) (* n 2))) > (deep-map double (list 1 2 3)) (2 4 6) > (deep-map double (1 ((2 (3)) 4))) (2 ((4 (6)) 8))

14 12 Övningsuppgifter scheme 38. Skriv en procedur polynom som tar en lista som argument. Den givna listan skall innehålla koefficienter för ett polynom. polynom skall returnera en procedur som beräknar polynomet med de givna koefficienterna. Anropet (polynom (list 1 2 3)) skall alltså returnera en procedur som givet x beräknar 1 + 2x + 3x 2. Nedan följer ett exempel. (define p (polynom (list 2 4 5))) > (p 2) Skriv en procedur make-safe som kan anropas på följande sätt: (make-safe func demands) där func är en procedur, och demands är en lista med krav som argumenten till func måste uppfylla. Första platsen i demands innehåller ett predikat (en procedur som returnerar sant eller falskt) som måste vara sant för det första argumentet till func, andra platsen innehåller ett predikat som måste vara sant för det andra argumentet till func, och så vidare. Längden av demands måste alltså vara lika med antalet argument som func tar. make-safe ska returnera en procedur som kontrollerar att alla kraven i demands är uppfyllda. Om kraven är uppfyllda skall den nya proceduren returnera värdet av func; om något av kraven inte är uppfyllt returneras ett felmeddelande. Nedan följer ett exempel på hur make-safe kan användas för att skapa ett säkert plus som tar två argument. (define safe-add (make-safe + (list number? number?))) > (safe-add 1 2) 3 > (safe-add a 2) "error" Tips: För att lösa denna uppgift måste man använda sig av proceduren apply, som tar en procedur och en lista med argument, och applicerar proceduren på argumenten. > (apply + (list 1 2)) 3

15 Datalogi, grundkurs 1, hösten a. Skriv en procedur som tar en array med heltal och returnerar det minsta talet i arrayen. b. Skriv en procedur som tar en array med heltal och returnerar det näst minsta talet i arrayen.

Procedurer och villkor. Rekursiva procedurer. Exempel: n-fakultet

Procedurer och villkor. Rekursiva procedurer. Exempel: n-fakultet Procedurer och villkor Rekursiva procedurer (define lessorequal (lambda (x y) (or (< x y) (= x y)))) (define between (lambda (x y z) (and (lessorequal x y) (lessorequal y z)))) > (between 3 4 5) #t > (between

Läs mer

Procedurer och villkor

Procedurer och villkor Procedurer och villkor (define lessorequal (lambda (x y) (or (< x y) (= x y)))) (define between (lambda (x y z) (and (lessorequal x y) (lessorequal y z)))) > (between 3 4 5) #t > (between 3 2 5) #f DA2001

Läs mer

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

Signalflödesmodellen. Två (gamla) exempel: Kvadratera alla jämna löv. Strömmar (streams) De sista dagarna objekt med tillstånd modellerades som beräkningsobjekt med tillstånd. Isådana modeller är tiden modelerad (implicit) som en sekvens av tillstånd. För att kunna modellera

Läs mer

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. Symboler. Symboler används för att uttrycka icke-numeriska data såsom namn, adress, bilregisternummer, boktitel, osv. Idag: Par och listor Symboler Hur hanterar man icke-numeriska problem? Hur hanterar man en samling av data? Hur konstruerar man sammansatta datastrukturer? Bra om du har läst följande avsnitt i AS: Pair

Läs mer

Idag: Dataabstraktion

Idag: Dataabstraktion Idag: Dataabstraktion Hur använder vi det vi hittills kan om Scheme för att realisera (implementera) sammansatta data? DA2001 (Föreläsning 7) Datalogi 1 Hösten 2013 1 / 16 Idag: Dataabstraktion Hur använder

Läs mer

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)

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) Programmönster: # Listan som sekvens, Rekursiv process Enkel genomgång av sekvens (element på toppnivån i en lista)) TDDC60 Programmering: abstraktion och modellering Föreläsning 5 Rekursiva och iterativa

Läs mer

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

Idag: Par och listor. Scheme. DA2001 (Föreläsning 6) Datalogi 1 Hösten / 29 Idag: Par och listor DA2001 (Föreläsning 6) Datalogi 1 Hösten 2010 1 / 29 Idag: Par och listor Hur hanterar man icke-numeriska problem? DA2001 (Föreläsning 6) Datalogi 1 Hösten 2010 1 / 29 Idag: Par och

Läs mer

Föreläsning 9 Exempel

Föreläsning 9 Exempel Föreläsning 9 Exempel Intervallhalveringsmetoden DA2001 (Föreläsning 9) Datalogi 1 Hösten 2013 1 / 24 Föreläsning 9 Exempel Intervallhalveringsmetoden Newton-Raphsons metod DA2001 (Föreläsning 9) Datalogi

Läs mer

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

Föreläsning 9 Exempel. Intervallhalveringsmetoden. Intervallhalveringsmetoden... Intervallhalveringsmetoden... Föreläsning 9 Intervallhalveringsmetoden Intervallhalveringsmetoden Newton-Raphsons metod Mer om rekursion Tidskomplexitet Procedurabstraktion Representation Bra om ni läst följande avsnitt i AS: Procedures

Läs mer

Datalogi, grundkurs 1

Datalogi, grundkurs 1 Datalogi, grundkurs 1 Tentamen 10 december 2008 konverterad till Python Hjälpmedel: Kommer att finnas i skrivsalarna, bl.a. Revised 6 Report on the Algorithmic Language Scheme och två olika s.k. Cheat

Läs mer

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?

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? Tidigare TDDC74 Programming: Abstraktion och modellering Föreläsning 4 Symboler, Par, Listor Representation av par, Grafisk notation för par Representation av listor mha par Typiska listhanteringsprocedurer

Läs mer

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

TDDC74 Programmering: Abstraktion och modellering Datortenta , kl 14-18 TDDC74 Programmering: Abstraktion och modellering Datortenta - 2018-06-07, kl 14-18 Läs alla frågorna först och bestäm dig för i vilken ordning du vill lösa uppgifterna. Uppgifterna är inte nödvändigtvis

Läs mer

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

Datalogi, grundkurs 1. Lösningsförslag till tentamen Datalogi, grundkurs 1 Lösningsförslag till tentamen 10 december 2008 1. a. Man testar med typiska värden, gränsvärden och värden utanför specificerad indatavärdemängd. Helst med alla permutationer av

Läs mer

TDDC74 Lab 04 Muterbara strukturer, omgivningar

TDDC74 Lab 04 Muterbara strukturer, omgivningar TDDC74 Lab 04 Muterbara strukturer, omgivningar 1 Översikt I den här laborationen kommer ni att lära er mer om: Tillstånd, och skillnader mellan ren funktionell programmering och imperativ. Skillnaden

Läs mer

TDDC74 Programmering, abstraktion och modellering DUGGA 2

TDDC74 Programmering, abstraktion och modellering DUGGA 2 AID-nummer: Datum: 2011-02-18 1 Tekniska högskolan vid Linköpings universitet Institutionen för datavetenskap Anders Haraldsson TDDC74 Programmering, abstraktion och modellering DUGGA 2 Fredag 18 feb 2011

Läs mer

TDDC74 Programmering: Abstraktion och modellering Datordugga 2 - exempel

TDDC74 Programmering: Abstraktion och modellering Datordugga 2 - exempel TDDC74 Programmering: Abstraktion och modellering Datordugga 2 - exempel Läs alla frågorna först och bestäm dig för i vilken ordning du vill lösa uppgifterna. Uppgifterna är inte nödvändigtvis i svårighetsordning.

Läs mer

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

TDDC74 Programmering: Abstraktion och modellering Tentamen, onsdag 19 oktober 2016, kl 14 18 TDDC74 Programmering: Abstraktion och modellering Tentamen, onsdag 19 oktober 2016, kl 14 18 Läs alla frågorna först, och bestäm dig för i vilken ordning du vill lösa uppgifterna. Skriv tydligt och läsligt.

Läs mer

TDDC74 Lab 02 Listor, sammansatta strukturer

TDDC74 Lab 02 Listor, sammansatta strukturer TDDC74 Lab 02 Listor, sammansatta strukturer 1 Översikt I denna laboration kommer ni att lära er mer om: Mer komplexa rekursiva mönster, procedurer och processer. Hur man kan hantera listor och andra enklare

Läs mer

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

TDDC74 Programmering: Abstraktion och modellering Tenta, kl 14 18, 11 juni 2014 TDDC74 Programmering: Abstraktion och modellering Tenta, kl 14 18, 11 juni 2014 Läs alla frågorna först, och bestäm dig för i vilken ordning du vill lösa uppgifterna. Skriv tydligt och läsligt. Använd

Läs mer

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

BEGREPP HITTILLS FÖRELÄSNING 2 SAMMANSATTA UTTRYCK - SCHEME DATORSPRÅK FÖRELÄSNING 2 Viss repetition av Fö1 Rekursivt fallanalys Rekursiva beskrivningar BEGREPP HITTILLS Konstant, Namn, Procedur/Funktion, LAMBDA, Parameter, Argument, Kropp, Villkor/Rekursion, Funktionsanrop,

Läs mer

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

TDDC74 Programmering: Abstraktion och modellering Tentamen, lördag 29 augusti 2015, kl 8 12 TDDC74 Programmering: Abstraktion och modellering Tentamen, lördag 29 augusti 215, kl 8 12 Läs alla frågorna först, och bestäm dig för i vilken ordning du vill lösa uppgifterna. Skriv tydligt och läsligt.

Läs mer

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

TDDC74 Programmering: Abstraktion och modellering Tentamen, onsdag 9 juni 2016, kl 14 18 TDDC74 Programmering: Abstraktion och modellering Tentamen, onsdag 9 juni 2016, kl 14 18 Läs alla frågorna först, och bestäm dig för i vilken ordning du vill lösa uppgifterna. Skriv tydligt och läsligt.

Läs mer

Datalogi, grundkurs 1

Datalogi, grundkurs 1 Datalogi, grundkurs 1 Fiktiv Tentamen Lösningsförslag och kommentarer 1. Lösningsförslaget nedan förutsätter ingenting om filens innehåll och är alltså mer generell än nödvändigt: alfa= ABCDEFGHIJKLMNOPQRSTUVWXYZÅÄÖ

Läs mer

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

Dagens föreläsning Programmering i Lisp Fö 5 Anders Haraldsson 1 Dagens föreläsning Programmering i Lisp Fö 5 - Funktioner - lambda-uttryck (avs 7.1) - funcall och function (avs 7.2) - Högre ordningens funktioner (avs 7.3) - Iteratorer - Egenskaper

Läs mer

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

TDDC74 Programmering: Abstraktion och modellering Dugga 2, kl 8 10, 5 mars 2015 TDDC74 Programmering: Abstraktion och modellering Dugga 2, kl 8 10, 5 mars 2015 Läs alla frågorna först, och bestäm dig för i vilken ordning du vill lösa uppgifterna. Skriv tydligt och läsligt. Använd

Läs mer

Idag: Dataabstraktion

Idag: Dataabstraktion Idag: Dataabstraktion Hur använder vi det vi hittills kan om Scheme för att realisera (implementera) sammansatta data? Hur separerar man datastrukturen från resten av ett program så att ändringar i datastrukturen

Läs mer

TDDC74 Programmering, abstraktion och modellering. Tentamen

TDDC74 Programmering, abstraktion och modellering. Tentamen AID-nummer: Datum: 2011-06-10 1 Tekniska högskolan vid Linköpings universitet Institutionen för datavetenskap Anders Haraldsson TDDC74 Programmering, abstraktion och modellering Tentamen Fredag 10 juni

Läs mer

Datalogi, grundkurs 1

Datalogi, grundkurs 1 Datalogi, grundkurs 1 Tentamen 9 dec 2014 Tillåtna hjälpmedel: Revised 6 Report on the Algorithmic Language Scheme och Tre olika s.k. Cheat Sheets för Scheme Sex olika s.k. Cheat Sheets för Python Tänk

Läs mer

Våra enkla funktioner eller procedurer

Våra enkla funktioner eller procedurer Föreläsning 3 Våra enkla funktioner eller procedurer Programmönster 1. Repetition 2. Högre-ordningens procedurer/programmönster - Procedurer som argument - Procedurer som returnerade värden 3. Scope och

Läs mer

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

TDDC74 Programmering: Abstraktion och modellering Tentamen, lördag 27 augusti 2016, kl 8 12 TDDC74 Programmering: Abstraktion och modellering Tentamen, lördag 27 augusti 2016, kl 8 12 Läs alla frågorna först, och bestäm dig för i vilken ordning du vill lösa uppgifterna. Skriv tydligt och läsligt.

Läs mer

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

Universitetet i Linköping Institutionen för datavetenskap Anders Haraldsson 2 Anders Haraldsson 1 Anders Haraldsson 2 Dagens föreläsning Programmering i Lisp Fö 5 - Funktioner - lambda-uttryck (avs 7.1) - funcall och function (avs 7.2) - Högre ordningens funktioner (avs 7.) - Iteratorer

Läs mer

DD1361 Programmeringsparadigm. Carina Edlund

DD1361 Programmeringsparadigm. Carina Edlund DD1361 Programmeringsparadigm Carina Edlund carina@nada.kth.se Funktionell programmering Grundidéen med funktionell programmering är att härma matematiken och dess funktionsbegrepp. Matematiskt funktionsbegrepp

Läs mer

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

TDDC74 Programmering: Abstraktion och modellering Dugga 2, Tid: kl 08-10, Datum: TDDC74 Programmering: Abstraktion och modellering Dugga 2, Tid: kl 08-10, Skriv tydligt så att inte dina lösningar missförstås. Använd väl valda namn på parametrar och indentera din kod. Även om det i

Läs mer

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

TDDC74 Programmering: Abstraktion och modellering. Provkod TEN1, Tid: kl 14-18, , Kåra Tentamen Provkod TEN1, Tid: kl 14-18, 2013-06- 07, Kåra Läs alla frågorna först och bestäm dig för den ordning som passar dig bäst. Även om det i uppgi;en står a< du skall skriva en procedur/funk?on, så

Läs mer

I dag: Blockstruktur, omgivningar, problemlösning

I dag: Blockstruktur, omgivningar, problemlösning Förra gången Förra gången: Rekursiva procedurer I dag I dag: Blockstruktur, omgivningar, problemlösning (define add-1 (define add-2 (lambda (a b) (lambda (a b) (if (= a 0) (if (= a 0) b b (+ 1 (add-1 (add-2

Läs mer

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

FÖRELÄSNING 2, TDDC74, VT2018 BEGREPP PROBLEMLÖSNING MED HJÄLP AV FALLANALYS PROBLEMLÖSNING MED HJÄLP AV REKURSION FÖRELÄSNING 2, TDDC74, VT2018 Begrepp och definitioner (delvis från föreläsning 1) Fallanalys som problemlösningsmetod Rekursivt fallanalys Rekursiva beskrivningar och processer de kan skapa Rekursiva

Läs mer

TDDC74 Programmering, abstraktion och modellering DUGGA 1

TDDC74 Programmering, abstraktion och modellering DUGGA 1 AID-nummer: Datum: 2011-02-04 1 Tekniska högskolan vid Linköpings universitet Institutionen för datavetenskap Anders Haraldsson TDDC74 Programmering, abstraktion och modellering DUGGA 1 Fredag 4 feb 14-16

Läs mer

TDDC74 - Lektionsmaterial C

TDDC74 - Lektionsmaterial C TDDC74 - Lektionsmaterial C Lektioner innehåller uppgifter av varierande slag. En del är mer diskussionsartade, andra mer experimentella. Ni behöver inte lämna in eller visa upp lösningarna på dessa för

Läs mer

TDDC74 Programmering, abstraktion och modellering. Tentamen

TDDC74 Programmering, abstraktion och modellering. Tentamen AID-nummer: Datum: 2011-08-17 1 Tekniska högskolan vid Linköpings universitet Institutionen för datavetenskap Anders Haraldsson TDDC74 Programmering, abstraktion och modellering Tentamen Onsdag 17 augusti

Läs mer

Förra gången: Primitiva data

Förra gången: Primitiva data Förra gången: Primitiva data > 30 30 > 45.56 45.56 Variabler: > (define telnr 6000) > telnr 6000 DA2001 (Föreläsning 3) Datalogi 1 Hösten 2013 1 / 24 Förra gången: Procedurapplikation: > (+ 7900000 telnr)

Läs mer

Lösningsanvisningar till de icke obligatoriska workoutuppgifterna

Lösningsanvisningar till de icke obligatoriska workoutuppgifterna Lösningsanvisningar till de icke obligatoriska workoutuppgifterna Linjära system 7. (a) Falskt. Kondition är en egenskap hos problemet oberoende av precisionen i beräkningarna. (b) Falskt. Pivotering påverkar

Läs mer

TDDC74 Programmering, abstraktion och modellering. Tentamen

TDDC74 Programmering, abstraktion och modellering. Tentamen AID-nummer: Datum: 2011-01-11 1 Tekniska högskolan vid Linköpings universitet Institutionen för datavetenskap Anders Haraldsson TDDC74 Programmering, abstraktion och modellering Tentamen Tisdag 11 januari

Läs mer

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

Lösningsförslag. TDDC74 Programmering: Abstraktion och modellering. Dugga 3 (provkod TEN1), Tid: kl 14-16, Datum: Dugga 3 (provkod TEN1), Tid: kl 14-16, Datum: 2013-03-12 Lösningsförslag Dugga 3 (provkod TEN1), Tid: kl 14-16, Datum: 2013-03- 12 Läs alla frågorna först och bestäm dig för den ordning som passar dig

Läs mer

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

TDDC74 Programmering: Abstraktion och modellering Dugga 2, , kl 14-16 TDDC74 Programmering: Abstraktion och modellering Dugga 2, 207-04-06, kl 4-6 Läs alla frågorna först och bestäm dig för i vilken ordning du vill lösa uppgifterna. Uppgifterna är inte nödvändigtvis i svårighetsordning.

Läs mer

a = a a a a a a ± ± ± ±500

a = a a a a a a ± ± ± ±500 4.1 Felanalys Vill man hårddra det hela, kan man påstå att det inte finns några tal i den tillämpade matematiken, bara intervall. Man anger till exempel inte ett uppmätt värde till 134.78 meter utan att

Läs mer

TDDC74 Programmering, abstraktion och modellering. Tentamen

TDDC74 Programmering, abstraktion och modellering. Tentamen AID-nummer: Datum: 2012-01-10 1 Tekniska högskolan vid Linköpings universitet Institutionen för datavetenskap Anders Haraldsson TDDC74 Programmering, abstraktion och modellering Tentamen Tisdag 10 januari

Läs mer

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

Lära dig analysera större och mer komplicerade problem och formulera lösningar innan du implementerar. Laboration 5 Mängder Syfte Lära dig analysera större och mer komplicerade problem och formulera lösningar innan du implementerar. Lära dig kombinera på ett lämpligt sätt de begrepp och metoder som du har

Läs mer

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

TDDC74 Programmering: Abstraktion och modellering Dugga 2, , kl 17-19 TDDC74 Programmering: Abstraktion och modellering Dugga 2, 2017-04-06, kl 17-19 Läs alla frågorna först och bestäm dig för i vilken ordning du vill lösa uppgifterna. Uppgifterna är inte nödvändigtvis i

Läs mer

1, 2, 3, 4, 5, 6,...

1, 2, 3, 4, 5, 6,... Dagens nyhet handlar om talföljder, ändliga och oändliga. Talföljden 1,, 3, 4, 5, 6,... är det första vi, som barn, lär oss om matematik över huvud taget. Så småningom lär vi oss att denna talföljd inte

Läs mer

TDDC74 Programmering: Abstraktion och modellering Datortenta

TDDC74 Programmering: Abstraktion och modellering Datortenta TDDC74 Programmering: Abstraktion och modellering Datortenta - 2017-08-26 Läs alla frågorna först och bestäm dig för i vilken ordning du vill lösa uppgifterna. Uppgifterna är inte nödvändigtvis i svårighetsordning.

Läs mer

Tentamen i. TDDA 69 Data och programstrukturer

Tentamen i. TDDA 69 Data och programstrukturer 1 Linköpings tekniska högskola Institutionen för datavetenskap Anders Haraldsson Tentamen i TDDA 69 Data och programstrukturer Torsdag den 14 januari 2009, kl 14-18 Hjälpmedel: Inga. Poänggränser: Maximalt

Läs mer

Rekursiva algoritmer sortering sökning mönstermatchning

Rekursiva algoritmer sortering sökning mönstermatchning Anders Haraldsson 1 Anders Haraldsson 2 Dagens föreläsning Programmering i Lisp Fö 6-7 Rekursiva strukturer rekursiva definitioner rekursiva funktioner rekursiva bevis: induktion - rekursion strukturell

Läs mer

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

Börja med att kopiera källkoden till din scheme-katalog (som du skapade i Laboration 1). Laboration 3 Grafiska figurer I den här laborationen skall du konstruera ett schemeprogram som kan rita rektanglar, punkter, cirklar, linjer och bilder som består utav en eller flera av nyss nämnda figurer.

Läs mer

Logik och Jämförelser. Styrsatser: Villkorssatsen if och repetitonssatsen for. Scriptfiler. Kommentarer. Tillämpningar: Ett enkelt filter.

Logik och Jämförelser. Styrsatser: Villkorssatsen if och repetitonssatsen for. Scriptfiler. Kommentarer. Tillämpningar: Ett enkelt filter. TAIU07 Föreläsning 3 Logik och Jämförelser. Styrsatser: Villkorssatsen if och repetitonssatsen for. Scriptfiler. Kommentarer. Tillämpningar: Ett enkelt filter. 27 januari 2016 Sida 1 / 21 Logiska variabler

Läs mer

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

TDDC74 Programmering: Abstraktion och modellering Datortenta , kl 08-12 TDDC74 Programmering: Abstraktion och modellering Datortenta - 2019-05-27, kl 08-12 Läs alla frågorna först och bestäm dig för i vilken ordning du vill lösa uppgifterna. Uppgifterna är inte nödvändigtvis

Läs mer

TDDC74 PROGRAMMERING: ABSTRAKTION OCH MODELLERING VT 2017

TDDC74 PROGRAMMERING: ABSTRAKTION OCH MODELLERING VT 2017 FÖRELÄSNING 1 TDDC74 PROGRAMMERING: ABSTRAKTION OCH MODELLERING VT 2017 Introduktion till kursen Schemespråkets grunder Enkla exempel Jalal Maleki Institutionen för datavetenskap Linköpings universitet

Läs mer

Lösandet av ekvationer utgör ett centralt område inom matematiken, kanske främst den tillämpade.

Lösandet av ekvationer utgör ett centralt område inom matematiken, kanske främst den tillämpade. 1.1 Ekvationslösning Lösandet av ekvationer utgör ett centralt område inom matematiken, kanske främst den tillämpade. 1.1.1 Polynomekvationer Ett polynom i en variabel x är som bekant en summa av termer

Läs mer

LÖSNINGSFÖRSLAG TILL TENTAMEN 2 SF1664

LÖSNINGSFÖRSLAG TILL TENTAMEN 2 SF1664 LÖSNINGSFÖRSLAG TILL TENTAMEN 2 SF1664 Tillämpad envariabelanalys med numeriska metoder för CFATE1 den 1 mars 214 kl 8.-1. 1. Bestäm värdemängden till funktionen f(x) = 2 arctan x + ln (1 + x 2 ), där

Läs mer

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

Typsystem. Typsystem... Typsystem... Typsystem... 2 * Typsystem Typsystem finns i alla programmeringsspråk. Avsikten med typsystem är att kontrollera att uttryck är säkra i den bemärkelsen att innebörden i operanderna är klar och inte är motsägelsefull och

Läs mer

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

Typsystem. DA2001 (Föreläsning 23) Datalogi 1 Hösten / 19 Typsystem Typsystem finns i alla programmeringsspråk. Avsikten med typsystem är att kontrollera att uttryck är säkra i den bemärkelsen att innebörden i operanderna är klar och inte är motsägelsefull och

Läs mer

Introduktion till algoritmer - Lektion 4 Matematikgymnasiet, Läsåret 2014-2015. Lektion 4

Introduktion till algoritmer - Lektion 4 Matematikgymnasiet, Läsåret 2014-2015. Lektion 4 Introduktion till algoritmer - Lektion 4 Matematikgymnasiet, Läsåret 014-015 Denna lektion ska vi studera rekursion. Lektion 4 Principen om induktion Principen om induktion är ett vanligt sätt att bevisa

Läs mer

TDDC74 Programmering, abstraktion och modellering DUGGA 3

TDDC74 Programmering, abstraktion och modellering DUGGA 3 1 Tekniska högskolan vid Linköpings universitet Institutionen för datavetenskap Anders Haraldsson TDDC74 Programmering, abstraktion och modellering DUGGA 3 Torsdag 4 mars 2010 kl 8-10 Namn: Personnummer:

Läs mer

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

FÖRELÄSNING 1 PERSONAL TDDC74 PROGRAMMERING: ABSTRAKTION OCH MODELLERING VT 2017 SYFTE EXAMINATION ORGANISATION TDDC74 PROGRAMMERING: ABSTRAKTION OCH MODELLERING VT 2017 Jalal Maleki Institutionen för datavetenskap Linköpings universitet jalal.maleki@liu.se FÖRELÄSNING 1 Introduktion till kursen Schemespråkets grunder

Läs mer

MMA132: Laboration 2 Matriser i MATLAB

MMA132: Laboration 2 Matriser i MATLAB MMA132: Laboration 2 Matriser i MATLAB Introduktion I den här labben skall vi lära oss hur man använder matriser och vektorer i MATLAB. Det är rekommerad att du ser till att ha laborationshandledningen

Läs mer

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

Datalogi, grundkurs 1. Lösningsförslag till tentamen Datalogi, grundkurs 1 Lösningsförslag till tentamen 6 maj 2000 1. För att proceduren sortera ska fungera som tänkt kan den se ut på följande sätt: const min = 1; max = 3; type tal = integer; index = min..max;

Läs mer

public static void mystery(int n) { if (n > 0){ mystery(n-1); System.out.print(n * 4); mystery(n-1); } }

public static void mystery(int n) { if (n > 0){ mystery(n-1); System.out.print(n * 4); mystery(n-1); } } Rekursion 25 7 Rekursion Tema: Rekursiva algoritmer. Litteratur: Avsnitt 5.1 5.5 (7.1 7.5 i gamla upplagan) samt i bilderna från föreläsning 6. U 59. Man kan definiera potensfunktionen x n (n heltal 0)

Läs mer

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

TDDC74 Programmering: Abstraktion och modellering Dugga 2, kl 8 10, 3 mars 2016 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

Läs mer

f (a) sin

f (a) sin Hur kan datorn eller räknedosan känna till värdet hos till exempel sin0.23 eller e 2.4? Denna fråga är berättigad samtidigt som ingen tror att apparaterna innehåller en gigantisk tabell. Svaret på frågan

Läs mer

Resträkning och ekvationer

Resträkning och ekvationer 64 Resträkning och ekvationer Torsten Ekedahl Stockholms Universitet Beskrivning av uppgiften. Specialarbetet består i att sätta sig in i hur man räknar med rester vid division med primtal, hur man löser

Läs mer

Del I: Lösningsförslag till Numerisk analys,

Del I: Lösningsförslag till Numerisk analys, Lösningsförslag till Numerisk analys, 2016-08-22. Del I: (1) Nedan följer ett antal påståenden. Använd nyckelbegreppen därunder och ange det begrepp som är mest lämpligt. Skriv rätt bokstav (a)-(l) i luckan

Läs mer

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

Symbolisk data. quote. (define a 1) (define b 2) (jacek johan david) (list a b) Symbolisk data (1 2 3 4) (a b c d) (jacek johan david) ((jacek "jacek@cs.lth.se") (johan "johang@cs.lth.se") (david "dat99dpe@ludat.lth.se")) ((anna 13) (per 11) (klas 9) (eva 4)) (+ (* 23 4) (/ y x))

Läs mer

f(x + h) f(x) h f(x) f(x h) h

f(x + h) f(x) h f(x) f(x h) h NUMPROG, D för M, vt 008 Föreläsning N: Numerisk derivering och integrering Inledning: numerisk lösning av analytiska problem Skillnader mellan matematisk analys och numeriska metoder. Grundläggande begrepp

Läs mer

Repetition i Python 3. Exemplen fac. Exemplen fac motivering. Exemplen fac i Python

Repetition i Python 3. Exemplen fac. Exemplen fac motivering. Exemplen fac i Python Repetition i Python 3 Exemplen fac Orginalet I Scheme använde vi rekursion för all slags repetition. Efterom Scheme är ett funktionellt språk återsänder alla språkkonstruktioner ett värde men i Python

Läs mer

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

TDDC74 Programmering: Abstraktion och modellering Datortenta , kl 14-18 TDDC74 Programmering: Abstraktion och modellering Datortenta - 017-10-7, kl 14-18 Läs alla frågorna först och bestäm dig för i vilken ordning du vill lösa uppgifterna. Uppgifterna är inte nödvändigtvis

Läs mer

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

Dagens föreläsning. Diverse Common Lisp. Konstanter, parametrar, globala variabler 21-1-2 1 Dagens föreläsning Hur fungerar ett Lisp system intern struktur av symbolen, tal, listan pekare - delade strukturer - eq minneshantering fri lista - sophämtning/garbage collection stack Diverse

Läs mer

Inlämningsuppgift MiniPlotter

Inlämningsuppgift MiniPlotter LUNDS TEKNISKA HÖGSKOLA Institutionen för datavetenskap EDAA01 Programmeringsteknik fördjupningskurs Inlämningsuppgift MiniPlotter I den här uppgiften ska ett program som ritar grafer av matematiska funktioner

Läs mer

Flervariabelanalys och Matlab Kapitel 3

Flervariabelanalys och Matlab Kapitel 3 Flervariabelanalys och Matlab Kapitel 3 Thomas Wernstål Matematiska Vetenskaper 28 september 2012 3 Multipelintegraler 3.1 ubbelintegraler I detta kapitel skall vi studera olika sätt på vilket man kan

Läs mer

Funktionell programmering DD1361

Funktionell programmering DD1361 Funktionell programmering DD1361 Tupler Två eller fler (men ändligt) antal element. Elementen kan vara av olika typer. Ex: (1,2) :: (Integer, Integer) (( 2, hejsan ), True) ::? Tupel med två element ->

Läs mer

Lennart Carleson. KTH och Uppsala universitet

Lennart Carleson. KTH och Uppsala universitet 46 Om +x Lennart Carleson KTH och Uppsala universitet Vi börjar med att försöka uppskatta ovanstående integral, som vi kallar I, numeriskt. Vi delar in intervallet (, ) i n lika delar med delningspunkterna

Läs mer

Modul 4 Tillämpningar av derivata

Modul 4 Tillämpningar av derivata Institutionen för Matematik SF1625 Envariabelanalys Läsåret 2015/2016 Modul 4 Tillämpningar av derivata Denna modul omfattar kapitel 4 i kursboken Calculus av Adams och Essex och undervisas på tre föreläsningar,

Läs mer

Övningshäfte 2: Induktion och rekursion

Övningshäfte 2: Induktion och rekursion GÖTEBORGS UNIVERSITET MATEMATIK 1, MMG200, HT2017 INLEDANDE ALGEBRA Övningshäfte 2: Induktion och rekursion Övning D Syftet är att öva förmågan att utgående från enkla samband, aritmetiska och geometriska,

Läs mer

Teorifrågor. 6. Beräkna konditionstalet för en diagonalmatris med diagonalelementen 2/k, k = 1,2,...,20.

Teorifrågor. 6. Beräkna konditionstalet för en diagonalmatris med diagonalelementen 2/k, k = 1,2,...,20. Teorifrågor Störningsanalys 1. Värdet på x är uppmätt till 0.956 med ett absolutfel på högst 0.0005. Ge en övre gräns för absolutfelet i y = exp(x) + x 2. Motivera svaret. 2. Ekvationen log(x) x/50 = 0

Läs mer

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. Sökning och sortering - definitioner. Sökning i oordnad lista. Sökning med vaktpost i oordnad lista Sökning och sortering Sökning och sortering - definitioner Att söka efter data man lagrat undan för senare användning är vanligt Egentligen har man ingen annan anledning för att lagra undan data Har man

Läs mer

Prov 1 2. Ellips 12 Numeriska och algebraiska metoder lösningar till övningsproven uppdaterad 20.5.2010. a) i) Nollställen för polynomet 2x 2 3x 1:

Prov 1 2. Ellips 12 Numeriska och algebraiska metoder lösningar till övningsproven uppdaterad 20.5.2010. a) i) Nollställen för polynomet 2x 2 3x 1: Ellips Numeriska och algebraiska metoder lösningar till övningsproven uppdaterad.. Prov a) i) ii) iii) =,, = st 9,876 =,9876,99 = 9,9,66,66 =,7 =,7 Anmärkning. Nollor i början av decimaltal har ingen betydelse

Läs mer

Matematisk analys för ingenjörer Matlabövning 2 Numerisk ekvationslösning och integration

Matematisk analys för ingenjörer Matlabövning 2 Numerisk ekvationslösning och integration 10 februari 2017 Matematisk analys för ingenjörer Matlabövning 2 Numerisk ekvationslösning och integration Syfte med övningen: Introduktion till ett par numeriska metoder för lösning av ekvationer respektive

Läs mer

TAIU07 Matematiska beräkningar med Matlab

TAIU07 Matematiska beräkningar med Matlab TAIU07 Matematiska beräkningar med Matlab Laboration 3. Linjär algebra Namn: Personnummer: Epost: Namn: Personnummer: Epost: Godkänd den: Sign: Retur: 1 Introduktion 2 En Komet Kometer rör sig enligt ellipsformade

Läs mer

Sökning och sortering

Sökning och sortering Sökning och sortering Att söka efter data man lagrat undan för senare användning är vanligt Egentligen har man ingen annan anledning för att lagra undan data Har man mycket data och många sökningar måste

Läs mer

Repetition i Pascal. Exemplen fac. Exemplen fac i Pascal. Exemplen fac motivering. Orginalet

Repetition i Pascal. Exemplen fac. Exemplen fac i Pascal. Exemplen fac motivering. Orginalet Repetition Introduktion Repetition i Exemplen fac Orginalet I Scheme använde vi rekursion för all slags repetition. Efterom Scheme är ett funktionellt språk återsänder alla språkkonstruktioner ett värde

Läs mer

Programkonstruktion och datastrukturer. Moment 9 Om högre ordningens funktioner. PKD 2010/11 moment 9 Sida 1 Uppdaterad

Programkonstruktion och datastrukturer. Moment 9 Om högre ordningens funktioner. PKD 2010/11 moment 9 Sida 1 Uppdaterad Programkonstruktion och datastrukturer Moment 9 Om högre ordningens funktioner PKD 2010/11 moment 9 Sida 1 Uppdaterad 2010-12-02 Anonyma funktioner igen En funktion som inte är namngiven kallas för en

Läs mer

Ansvariga lärare: Yury Shestopalov, rum 3A313, tel 054-7001856 (a) Problem 1. Använd Eulers metod II (tre steg) och lös begynnelsevärdesproblemet

Ansvariga lärare: Yury Shestopalov, rum 3A313, tel 054-7001856 (a) Problem 1. Använd Eulers metod II (tre steg) och lös begynnelsevärdesproblemet FACIT: Numeriska metoder Man måste lösa tre problem. Problemen 1 och är obligatoriska, och man kan välja Problemet 3 eller 4 som den tredje. Hjälp medel: Miniräknare (med Guidebook för miniräknare) och

Läs mer

Lösningsanvisningar till de icke obligatoriska workoutuppgifterna

Lösningsanvisningar till de icke obligatoriska workoutuppgifterna Lösningsanvisningar till de icke obligatoriska workoutuppgifterna Linjära system 7. (a) Falskt. Kondition är en egenskap hos problemet oberoende av precisionen i beräkningarna. (b) Falskt. Pivotering påverkar

Läs mer

SF1661 Perspektiv på matematik Tentamen 24 oktober 2013 kl Svar och lösningsförslag. z 11. w 3. Lösning. De Moivres formel ger att

SF1661 Perspektiv på matematik Tentamen 24 oktober 2013 kl Svar och lösningsförslag. z 11. w 3. Lösning. De Moivres formel ger att SF11 Perspektiv på matematik Tentamen 4 oktober 013 kl 14.00 19.00 Svar och lösningsförslag (1) Låt z = (cos π + i sin π ) och låt w = 1(cos π 3 + i sin π 3 ). Beräkna och markera talet z11 w 3 z 11 w

Läs mer

Programmeringsteknik med C och Matlab

Programmeringsteknik med C och Matlab Programmeringsteknik med C och Matlab Kapitel 2: C-programmeringens grunder Henrik Björklund Umeå universitet Björklund (UmU) Programmeringsteknik 1 / 32 Mer organisatoriskt Imorgon: Datorintro i lab Logga

Läs mer

TATM79: Föreläsning 1 Notation, ekvationer, polynom och summor

TATM79: Föreläsning 1 Notation, ekvationer, polynom och summor TATM79: Föreläsning 1 Notation, ekvationer, polynom och summor Johan Thim 22 augusti 2018 1 Vanliga symboler Lite logik Implikation: P Q. Detta betyder att om P är sant så är Q sant. Utläses P medför Q

Läs mer

Sökning i ordnad lista. Sökning och sortering. Sökning med vaktpost i oordnad lista

Sökning i ordnad lista. Sökning och sortering. Sökning med vaktpost i oordnad lista Sökning och sortering Sökning i oordnad lista Att söka efter data man lagrat undan för senare användning är vanligt Egentligen har man ingen annan anledning för att lagra undan data Har man mycket data

Läs mer

En vanlig uppgift är att bestämma max resp min för en trigonometrisk funktion och de x- värden för vilka dessa antas.

En vanlig uppgift är att bestämma max resp min för en trigonometrisk funktion och de x- värden för vilka dessa antas. Max och min för trigonometriska funktioner En vanlig uppgift är att bestämma max resp min för en trigonometrisk funktion och de x- värden för vilka dessa antas. Ta t.ex y = 12 sin(3x-90) När man ska studera

Läs mer

Lösningsförslag Tentamen i Beräkningsvetenskap I, 5.0 hp,

Lösningsförslag Tentamen i Beräkningsvetenskap I, 5.0 hp, Uppsala universitet Institutionen för informationsteknologi Teknisk databehandling Lösningsförslag Tentamen i Beräkningsvetenskap I, 5. hp, 14-6-4 Kursmål (förkortade), hur de täcks i uppgifterna och maximalt

Läs mer

Programmering II (ID1019)

Programmering II (ID1019) ID1019 Johan Montelius Instruktioner Betyg Programmering II (ID1019) 2019-03-08 Svaren skall lämnas på dessa sidor, använd det utrymme som nns under varje uppgift för att skriva ner ditt svar (inte på

Läs mer

Tentamen i Grundläggande Programvaruutveckling, TDA548

Tentamen i Grundläggande Programvaruutveckling, TDA548 Tentamen i Grundläggande Programvaruutveckling, Joachim von Hacht/Magnus Myreen Datum: 2016-12-20 Tid: 08.30-12.30 Hjälpmedel: Engelskt-Valfritt språk lexikon Betygsgränser: U: -23 3: 24-37 4: 38-47 5

Läs mer