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å

Storlek: px
Starta visningen från sidan:

Download "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å"

Transkript

1 DAT 060 Laboration 2 I Malmös kasino Institutionen för datavetenskap 17 juni 2002 Per tänkte dryga ut sitt magra studielån genom att jobba som labbassistent på sommarkursen. Tyvärr fanns det redan tillräckligt många duktiga människor som tog jobbet, därför vände sig Per till den näst bästa lämpliga institutionen, d.v.s. Malmös nya kasino. Bland många intressanta spel blev Pelle särskilt attraherad av Black Jack - ett kortspel som man kan vinna stora pengar på. Men, efter några besök blev det tyvärr slut på studielånet och nu sitter Pelle och tänker på hur han borde spela för att vinna, eller åtminstone få sitt lån tillbaka. Hans korridorare, Micke, läser nu Scheme-kursen och bestämmer sig därför att utnyttja sina färska kunskaper inom ämnet för att hjälpa Pelle. Han tänker skriva en Black Jack-simulator för att prova olika strategier varav någon förhoppningsvis kan leda Pelle till en säker vinst. Black Jack kommer för oss att vara ett spel mellan två spelare. Målet med spelet är att få ett antal kort som ger så mycket poäng som möjligt, men som inte överskrider 21. Varje kort mellan 2 och 9 ger ett antal poäng motsvarande sitt nummer, ett ess ger 1 poäng, medan klädda kort räknas som 10 poäng var. Varje spelare får först ett kort som den andre spelaren får se. Följande kort delas ut så att endast spelaren som får dem får se dem. En spelare spelar först genom att be om nya kort (ett så kallade slag, hit på engelska), ett i taget, tills hon bestämmer sig att stanna med de poäng hon redan fått, eller tills hon får mer poäng än 21. I det andra fallet förlorar hon omedelbart (to bust på engelska). Om den första spelaren inte förlorar så tar den andre spelaren (kallad huset ) över och spelar genom att dra nya kort, ett i taget, tills han stannar eller förlorar genom att få mer än 21 poäng. När huset stannar avslöjas alla kort, poäng räknas och den spelare som har mest poäng vinner. I fall av likaantal poäng vinner huset. Den här versionen av spelet är förenklad μ vi tar inte hänsyn till att ett ess kan räknas på olika sätt, eller till delning ( splitting ). Eftersom vi endast kommer att analysera spelstrategier och jämföra dem med varandra, kommer vi inte heller att modellera satsning av pengar. Det måste Pelle fundera på själv. En spelares strategi bestämmer när vill han dra ett nytt kort och när vill han stanna med nuvarande hand (mängd av kort). I vårt fall kommer varje spelare modelleras som en procedur som implementerar hans strategi. Eftersom en typisk strategi för att bestämma när man bör slå samt när man bör stanna, är beroende av spelarens nuvarande hand och opponentens synliga kort, kommer en strategi att representeras som en procedur med två argument: spelarens hand och värdet på opponentens kort. Proceduren returnerar sann (#t) om spelaren skulle slå (be om ett nytt kort) och falsk (#f) om spelaren bör stanna. T.ex. skulle följande (ganska dumma) strategi alltid ta ett kort om opponentens kort är större än 5: (define (stupid-strategy my-hand opponent-up-card) (> opponent-up-card 5)) Följande procedur play-hand tar som argument en strategi, en hand, och opponentens synliga kortet. Proceduren slår så länge strategin tillåter det eller tills värdet på korten i handen överskrider 21. play-hand returnerar som sitt värde hela handen som delades ut. (define (play-hand strategy my-hand opponent-up-card) (cond ((> (hand-total my-hand) 21) my-hand) ; I lose... give up ((strategy my-hand opponent-up-card) ; hit? (play-hand strategy (hand-add-card my-hand (deal)) opponent-up-card)) (else my-hand))) ; stay Ett stort tack till Julian Togelius Ekwall för språkhjälp. Alla fel som fortfarande finns är förstås mina. Jacek Malec. This lab assignment has been prepared on the basis of the MIT's The ame of Twenty-one, available on the SICP homepage 1

2 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å det synliga kortet och värdet på spelares alla kort. Vi ska använda en enkel form av dataabstrahering som kommer att diskuteras på föreläsningen onsdagen den 19:e juni. Vi har en konstruktor-procedur make-hand som skapar en hand utav två tal, och två selektorer hand-up-card och hand-total som returnerar det synliga kortet och värde på alla kort i handen: (define (make-hand up-card total) (cons up-card total)) (define (hand-up-card hand) (car hand)) (define (hand-total hand) (cdr hand)) Vi kommer här att bortse från Schemes primitiver cons, car och cdr som används för att implementera dessa procedurer μ vi kommer att diskutera dem senare på föreläsningarna. Betrakta än så länge make-hand, hand-up-card och hand-total som enkla svarta lådor som tillåter oss att representera händer. Vi kan nu implementera några nyttiga operationer på händer. make-new-hand tar som sitt argument ett nytt kort och returnerar en hand med endast detta kort (d.v.s. kortet är både synligt och ingår i det totala värdet): (define (make-new-hand first-card) (make-hand first-card first-card)) hand-add-card tar en hand och ett nytt kort och returnerar en hand med samma synliga kort, men med det nya kortet inräknade i totalvärdet: (define (hand-add-card hand new-card) (make-hand (hand-up-card hand) (+ new-card (hand-total hand)))) Istället för att modellera en verklig kortlek delar vi ut kort slumpmässigt och antar att varje värde på kort mellan 1 och 10 är lika sannolik 1. (Det är förstås en översimplifiering, men eftersom vi fokuserar på strategier, så är skillnaderna inte så viktiga.) Att dela ett kort är då att slumpa fram ett tal mellan 1 och 10: (define (deal) (+ 1 (random 10))) Slutligen introducerar vi den översta nivån av simulering, proceduren twenty-one. Den tar två strategier: spelarens och husets, som sina två argument. Proceduren skapar ursprungliga händer för en spelare och för huset, sedan spelar spelarens strategi och slutligen spelar husets strategi. twenty-one returnerar 1 om spelaren vinner och 0 om huset vinner. (define (twenty-one player-strategy house-strategy) (let ((house-initial-hand (make-new-hand (deal)))) ; set up house hand ; let is covered on pp of text (let ((player-hand ; set up initial hand, and play out (play-hand player-strategy ; strategy to use (make-new-hand (deal)) ; initial player hand (hand-up-card house-initial-hand)))) ; ;information about house hand available to player (if (> (hand-total player-hand) 21) 0 ; bust : player loses (let ((house-hand ; play out house hand (play-hand house-strategy house-initial-hand (hand-up-card player-hand)))) (cond ((> (hand-total house-hand) 21) 1) ; bust : house loses ((> (hand-total player-hand) (hand-total house-hand)) 1) ; house loses (else 0))))))) ; player loses hit? är en enkel interaktiv strategiprocedur som kan användas med twenty-one. Den visar informationen tillgänglig för spelaren den simulerar och frågar om den bör ta ett nytt kort. Proceduren returnerar #t om du skriver j och #f om du skriver något annat 2. 1 En möjlig utvidgning vore att modellera en kortlek med större nogrannhet. Se utöknings-uppgifterna. 2 user-says-y? är definierat som (lambda () (eq? (read) 'j)). Proceduren jämför uttrycket läst från tangentbordet med symbolen j. Vi skall betrakta symboler och symboliska uttryck om ett par veckor (kapitel i boken.)

3 Institutionen för datavetenskap, DAT060, Laboration 2 3 (define (hit? your-hand opponent-up-card) (printf " Opponentens synligt kort: ") (printf " Λa" opponent-up-card) (printf " Din totalvärde: ") (printf " Λa" (hand-total your-hand)) (printf " Hit? ") (user-says-y?)) (define (user-says-y?) (eq? (read) 'j)) Att göra på laborationen Ladda koden från filen lab2.ss och försök spela mot dig själv genom att evaluera: (twenty-one hit? hit?) Kom ihåg att den första sekvensen av frågor gäller spelares hand, medan den andra husets hand. Definiera nu en procedur stanna-vid som tar ett tal som argument och returnerar en strategi. Strategin stanna-vid bör fråga om ett nytt kort om och endast om det totala värdet av handen är mindre än argumenten till stanna-vid. T.ex. (stanna-vid 15) bör returnera en strategi som frågar om ett kort när värdet av handen är mindre än 15, men stannar omedelbart om värdet blir 15 eller mer. För att testa din implementation av stanna-vid, spela några spel genom att evaluera: (twenty-one hit? (stanna-vid 16)) D.v.s. du ska spela mot huset som har strategin att stanna vid 16. Visa din procedur och några resultat för labbledaren. Definiera nu en procedur testa-strategi som testar två strategier genom att spela ett fördefinierat antal spel med de två strategierna. testa-strategi bör returnera antalet spel vunna av spelaren (därmed förlorade av huset). T.ex. (testa-strategi (stanna-vid 16) (stanna-vid 15) 10) bör spela tio BlackJack spel med (stanna-vid 16) som spelarens strategi och (stanna-vid 15) som husets strategi. Den bör returnera ett heltal som säger hur många spel som vunnits av spelaren. Visa proceduren och resultaten för en labbledare 3. Det är omöjligt att säga hur spelen pågår om man använder testa-strategi för testning, eftersom ingen kontroll kan utföras på enstaka spel. Det vore bra att kunna observera hur spelet utvecklas genom att se invärde till strategierna och deras beslut. Definiera en procedur observera-spelare som tar en strategi som argument och returnerar en strategi som resultat. Strategin som returneras av observera-spelare bör implementera exakt samma strategi som argumentet gör, men den bör dessutom skriva ut informationen som passerades till strategin och beslut som den fattade. T.ex.: (testa-strategi (observera-spelare (stanna-vid 16)) (observera-spelare (stanna-vid 15)) 2) bör spela två simulerade spel och visavad varje spelare gör i varje steg av spelet 4.Visakoden och resultat för din labbledare. Micke har slutligen övertygat Pelle att beskriva sin Black Jack strategi. Den är följande: Om handen är mindre än 12 poäng så ber alltid Pelle om ett nytt kort. Om handen är mer än 16 poäng så stannar Pelle alltid. Om handen är exakt 12 poäng så frågar Pelle efter ett nytt kort endast om husets synliga kort är mindre än 4. Om hans hand är exakt 16 så stannar han om husets synliga kort är värd 10. Om ingen av dessa villkor är uppfyllda (d.v.s. om hans hand ligger mellan 13 och 15) så frågar Pelle om ett nytt kort 3 Det bör finnas här en markering på marginalen i form av enbokstav. Det betyder att labbledaren bör godkänna det du gjorde. Senare i texten förekommer fler sådana markeringar, med samma betydelse. 4 Du kan ha nytta av Schemes dokumentation som finns tillgänglig i systemet. Leta efter utskriftsatserna och eventuellt utskriftsformattering. Du får prova DrSchemes inbyggd hjälp, men det kan också visa sig nyttig att leta efter R5RS. (Vad är det och var finns det?)

4 Institutionen för datavetenskap, DAT060, Laboration 2 4 endast om husets synliga kort är större än 6, annars stannar han. Definiera en strategi som heter pelle som implementerar Pelles strategi. Prova hans strategi mot strategierna som stannar vid 15, 16 och 17 genom att evaluera: (testa-strategi pelle (stanna-vid 15) 10) (testa-strategi pelle (stanna-vid 16) 10) (testa-strategi pelle (stanna-vid 17) 10) Visa koden för din labbledare. Implementera proceduren båda som tar två strategier som argument och returnerar en ny strategi. Den nya strategin bör be om ett nytt kort om och endast om båda argumentstrategierna gör det. T.ex. en strategi (båda (stanna-vid 19) hit?) ska fråga om ett nytt kort endast om värdet på handen är mindre än 19 och användaren ber om ett kort. Visa proceduren och resultat för din labbledare. Att utvidga simulatorn vidare Denna avsnitt innehåller förslag på utvidgningar som du skulle kunna vilja införa i ditt program. Eftersom de bygger på dataabstraktioner, behöver du inte nödvändigtvis vara redan bekant med materialet. Men du får gärna återkomma till uppgiften när du känner dig intresserad. Problem 1 Simulationen ovan är mycket förenklad eftersom en hand endast representeras som ett par tal. Låt oss anta att vi vill ha mer information om handen, nämligen vilka kort (deras storlek och färg) vi har i handen. En möjlighet vore att introducera dataabstraktionen kort som representerar ett kort och, m.h.a. kort, implementera kortmängd för att representera en mängd med kort i. En hand i denna simulering vore representerat som opponentens synliga kort och en mängd kort. Hur kan man implementera detta? Använd liststruktur för att representera kort och kortmängder. Hur skulle du ändra procedurerna make-hand, first-card, hand-up-card, hand-total och hand-add-card?vad mer måste du göra för att få simuleringen att fungera? Problem 2 I simuleringen ovan används en oändlig kortlek där alla kort mellan 1 och 10 är lika sannolika. Om Pelle verkligen siktar på Malmös kasino så är sådan simulering inte till stor hjälp. För att t.ex. använda strategin att räkna kort måste man kunna modellera utgång av kort från kortleken (eller kortlekerna - på de flesta kasinon använder man fyra till sex kortlekar tillsammans för att eliminera fördelar för snabbt räknande spelare). 1. Hur skulle du implementera en procedur som genererar en färsk kortlek som ser ut så här: ( ) Hur skulle du modifiera den för att också ta hänsyn till de klädda korten givet att varje också ger 10 poäng? 2. Hur skulle du implementera en procedur blanda, som tar en kortlek som argument och producerar en ny kortlek med samma kort, men i ändrad ordning. T.ex. det kan göras genom att dela kortleken i två lika stora delar och sedan blandning av de två halvor i tur och ordning: första kortet från första halvan, första kortet från andra halvan, andra kortet från första halvan, andra kortet från andra halvan, Observera att proceduren blanda alltid skulle returnera samma resultat givet samma argument. blanda är en deterministisk procedur. En bättre blandning skulle introducera en slumpfaktor i processen. Hur skulle du implementera slump-blanda som skulle ge icke-deterministiska resultat?

5 Institutionen för datavetenskap, DAT060, Laboration Slutligen, hur skulle du ta hänsyn i simuleringen till en ändlig kortlek? En möjlighet vore att passera kortleken som ett extra argument till relevanta procedurer och implementera procedurerna som tar det första kortet från kortleken och som returnerar resten av kortleken. En ganska verklig simulering skulle använda en färsk kortlek (eller några färska kortlekar), blanda den några gånger och sedan spela spelet tills antalet kort i kortleken blir tillräckligt litet (låt oss säga 10% av det ursprungliga antalet kort). Tack för idag.

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

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

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

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

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

Modularitet och tillstånd. Stora system kräver en uppdelning. En lösning: modularitet. Basera programmets struktur på den fysiska systemets struktur:

Modularitet och tillstånd. Stora system kräver en uppdelning. En lösning: modularitet. Basera programmets struktur på den fysiska systemets struktur: Modularitet och tillstånd Stora system kräver en uppdelning. En lösning: modularitet Basera programmets struktur på den fysiska systemets struktur: En fysisk objekt en beräkningsobjekt Ett agerande en

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

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

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

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

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

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

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

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

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

Språket Scheme. DAT 060: Introduktion till (funktions)programmering. DrScheme. uttryck. Jacek Malec m. fl. evaluering av uttryck. DAT 060: Introduktion till (funktions)programmering. Jacek Malec m. fl. www.cs.lth.se/home/jacek Malec/dat060 Idag: 1. Kursens innehåll 2. Kursens organisation 3. Programmeringsspråket Scheme 4. Introduktion

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

C++ Slumptalsfunktioner + switch-satsen

C++ Slumptalsfunktioner + switch-satsen C++ Slumptalsfunktioner + switch-satsen Veckans avsnitt består av ett antal lite udda funktioner man kan ha nytta av när man skriver program. Det är en slumptalsgenerator och lite annat smått och gott.

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

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

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

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

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

TDDC74 Programmering: Abstraktion och modellering Dugga 3, kl 8 10, 7 april 2016 TDDC74 Programmering: Abstraktion och modellering Dugga 3, kl 8 10, 7 april 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 ordnade i någon

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

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

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

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

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

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

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

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

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

Ändringsbar (mutable compound) data. TDDC74 Programmering: abstraktion och modellering. Sätta - samman listor kopiering. Hitta sista cons-cellen TDDC74 Programmering: abstraktion och modellering Ändringsbar (mutable comound) data Att göra strukturförändringar i listor Ändra car- och cdr-ekare SICP 3 (del ) Föreläsning 8 Anders Haraldsson (set-car!

Läs mer

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

TDDC74 FÖRELÄSNING 9 ANDERS MÄRAK LEFFLER IDA/HCS TDDC74 FÖRELÄSNING 9 ANDERS MÄRAK LEFFLER IDA/HCS 180226 Idag (ADT), OOP i Racket, labb 5 2 Allmän info Duggan. Laboration 4 deadline. Planering framöver Muddy cards (nästa timme) 3 Lite repetition ADT

Läs mer

Objektorientering i liten skala

Objektorientering i liten skala Linköpings Universitet Institutionen för datavetenskap (IDA) UPP-gruppen 2012-10-24 Objektorientering i liten skala Mål I denna lab skall du skriva ett objektorienterat program. Programmet skall delas

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

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

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

TDDC74 Programmering: Abstraktion och modellering Dugga 3, kl 14 16, 25 mars 2015 TDDC74 Programmering: Abstraktion och modellering Dugga 3, kl 14 16, 25 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

Agenda. Objektorienterad programmering Föreläsning 13

Agenda. Objektorienterad programmering Föreläsning 13 Objektorienterad programmering Föreläsning 13 Copyright Mahmud Al Hakim mahmud@dynamicos.se www.webacademy.se Agenda Ett objektorienterat exempel Repetition Mer om arv Abstrakta klasser Abstrakta metoder

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

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

Tentamen i. TDDC67 Funktionell programmering och Lisp

Tentamen i. TDDC67 Funktionell programmering och Lisp 1 Linköpings tekniska högskola Institutionen för datavetenskap Anders Haraldsson Tentamen i TDDC67 Funktionell programmering och Lisp och äldre kurser TDDC57 Programmering, Lisp och funktionell programmering

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

Uppgift 1 ( Betyg 3 uppgift )

Uppgift 1 ( Betyg 3 uppgift ) Uppgift 1 ( Betyg 3 uppgift ) Skriv ett program, Draw_Hexagones, som ritar ut en bikupa enligt körexemplen nedan. Exempel 1: Mata in storlek på bikupan: 1 Exempel 3: Mata in storlek på bikupan: 3 \ / \

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

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

Protokoll MiniBridge

Protokoll MiniBridge Protokoll MiniBridge Mer om Bridge Det du nu lärt dig är en enkel form av Bridge. Spelet är dock mer komplicerat än så här och kräver en mycket längre utbildning. Vill du lära dig mer om Bridge? Kontakta

Läs mer

Steg-för-steg. Hur vinner du i Bridge? Budgivningen. Grundförutsättningar. 1. Räkna poäng. 2. Budgivning - del 1. Vilket par har flest poäng?

Steg-för-steg. Hur vinner du i Bridge? Budgivningen. Grundförutsättningar. 1. Räkna poäng. 2. Budgivning - del 1. Vilket par har flest poäng? MiniBridge Det beräknas finnas drygt en miljon kortspelare i världen som tävlingsspelar i Bridge, varav drygt 27 500 är svenskar. Alla spelar efter samma regelbok. Här ska du på några minuter få en inblick

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

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

Grundläggande programmering, STS 1, VT Sven Sandberg. Föreläsning 20

Grundläggande programmering, STS 1, VT Sven Sandberg. Föreläsning 20 Grundläggande programmering, STS 1, VT 2007. Sven Sandberg Föreläsning 20 Förra gången: GUI: Sammanfattning Fler exempel: KryssEnkat och FotoAlbum Fönster med variabelt antal objekt Idag: Ett stort exempel:

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

PROJEKTRAPPORT EDA095 NÄTVERKSPROGRAMMERI

PROJEKTRAPPORT EDA095 NÄTVERKSPROGRAMMERI PROJEKTRAPPORT EDA095 NÄTVERKSPROGRAMMERI NG STRESS LUNDS TEKNISKA HÖGSKOLA - 2013-05-22 Projektmedlemmar: Emil Apelgren adi10eap@student.lu.se Fredrik Helander gda10fhe@student.lu.se Jonathan Klingberg

Läs mer

Artificiell intelligens En agent som spelar Black Jack Andreas Perjons [andpe813]

Artificiell intelligens En agent som spelar Black Jack Andreas Perjons [andpe813] 1 Artificiell intelligens En agent som spelar Black Jack Andreas Perjons [andpe813] Linköpings Universitet 2019 2 Innehåll Introduktion...3 Metod..4 Programmets komponenter.4 Resultat...5 Diskussion...7

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 Programmering: Abstraktion och modellering Dugga 1, kl 14-16

TDDC74 Programmering: Abstraktion och modellering Dugga 1, kl 14-16 TDDC74 Programmering: Abstraktion och modellering Dugga 1, 2017-02-22 kl 14-16 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

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

Chapter 4: Writing Classes/ Att skriva egna klasser.

Chapter 4: Writing Classes/ Att skriva egna klasser. Chapter 4: Writing Classes/ Att skriva egna klasser. I dessa uppgifter kommer du att lära dig om hur man definierar egna objekt genom att skriva klasser. Detta är grunden för att förstå objekt orienterad

Läs mer

TENTAMEN PROGRAMMERING I JAVA, 5P SOMMARUNIVERSITETET

TENTAMEN PROGRAMMERING I JAVA, 5P SOMMARUNIVERSITETET UMEÅ UNIVERSITET Datavetenskap 010824 TENTAMEN PROGRAMMERING I JAVA, 5P SOMMARUNIVERSITETET Datum : 010824 Tid : 9-15 Hjälpmedel : Inga Antal uppgifter : 7 Totalpoäng : 40 (halva poängtalet krävs normalt

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

Spelregler för restaurangkasinospel

Spelregler för restaurangkasinospel Spelregler för restaurangkasinospel Innehållsförteckning Allmänt... 2 Dessa spelregler gäller för samtliga restaurangkasinospel... 2 Black Jack... 3 Black Jack Burn... 5 Varianten Two Decks Black Jack...

Läs mer

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

Handbok Officersskat. Martin Heni Eugene Trounev Granskare: Mike McBride Översättare: Stefan Asserhäll

Handbok Officersskat. Martin Heni Eugene Trounev Granskare: Mike McBride Översättare: Stefan Asserhäll Martin Heni Eugene Trounev Granskare: Mike McBride Översättare: Stefan Asserhäll 2 Innehåll 1 Inledning 5 2 Hur man spelar 6 3 Spelets regler, strategi och tips 7 3.1 Spelbordet..........................................

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

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

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

Instruktioner - Datortentamen TDDE24 och TDDD73 Funktionell och imperativ programmering (i Python) Instruktioner - Datortentamen TDDE24 och TDDD73 Funktionell och imperativ programmering (i Python) Hjälpmedel Följande hjälpmedel är tillåtna: Exakt en valfri bok, t.ex. den rekommenderade kursboken. Boken

Läs mer

Uppgift 1 ( Betyg 3 uppgift )

Uppgift 1 ( Betyg 3 uppgift ) Uppgift 1 ( Betyg 3 uppgift ) Skriv ett program, Draw_Hexagones, som ritar ut en bikupa enligt körexemplen nedan. Exempel 1: Mata in storlek på bikupan: 1 + / \ + + + + \ / + Exempel 3: Mata in storlek

Läs mer

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.

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. Tentamen Programmeringsteknik II 2014-0-27 Skrivtid: 0800 100 Tänk på följande Skriv läsligt! Använd inte rödpenna! Skriv bara på framsidan av varje papper. Börja alltid ny uppgift på nytt papper. Lägg

Läs mer

JavaScript Block Editor:

JavaScript Block Editor: Micro:bit Tärningen Att räkna med slumpen genom t.ex. tärningsslag och föra statistik över antal slag kan vara tidskrävande. Speciellt om man ska gör 100 st eller 1000 st kast. Genom att använda programmering

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

International Olympiad in Informatics 2011 22 29 July 2011, Pattaya City, Thailand Tävlingsuppgifter Dag 2 Svenska 1.3. Papegojor

International Olympiad in Informatics 2011 22 29 July 2011, Pattaya City, Thailand Tävlingsuppgifter Dag 2 Svenska 1.3. Papegojor Papegojor Yanee är fågelentusiast. Sedan hon läst om IP over Avian Carriers (IPoAC), har hon spenderat mycket tid med att träna en flock papegojor att leverera meddelanden över långa avstånd. Yanees dröm

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

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

Inledande programmering med C# (1DV402) Tärningarna ska kastas

Inledande programmering med C# (1DV402) Tärningarna ska kastas Tärningarna ska kastas Upphovsrätt för detta verk Detta verk är framtaget i anslutning till kursen Inledande programmering med C# vid Linnéuniversitetet. Du får använda detta verk så här: Allt innehåll

Läs mer

TDIU Regler

TDIU Regler Regler Student får lämna salen tidigast en timme efter tentans start. Vid toalettbesök eller rökpaus ska pauslista utanför salen fyllas i. All form av kontakt mellan studenter under tentans gång är strängt

Läs mer

Hjälps åt att skriva några rader om senaste scoutmötet i avdelningens loggbok.

Hjälps åt att skriva några rader om senaste scoutmötet i avdelningens loggbok. SCOUTMÖTET KORTSPEL MED OLIKA FÖRUTSÄTTNINGAR Det är bra om du som ledare läser igenom detta innan mötet äger rum. Under dagens möte får scouterna prova på att kommunicera utan att prata med varandra och

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

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

Övning 3. Datateknik A, Java I, 5 poäng

Övning 3. Datateknik A, Java I, 5 poäng Datateknik A, Syfte: Att prova på att skriva egna klasser och skapa objekt av dessa klasser. Att skriva klasser med överlagrade metoder och konstruktor, samt att i en klass använda statiska medlemmar.

Läs mer

TENTAMEN MOM1 GRUNDLÄGGANDE PROGRAMMERINGSTEKNIK OCH

TENTAMEN MOM1 GRUNDLÄGGANDE PROGRAMMERINGSTEKNIK OCH UMEÅ UNIVERSITET Datavetenskap Marie Nordström 071207 TENTAMEN MOM1 GRUNDLÄGGANDE PROGRAMMERINGSTEKNIK OCH DATORSYSTEM/GRÄNSSNITT, 7.5HP. (5DV074/5DV075) Datum : 071207 Tid : 3 timmar Hjälpmedel : Allt.

Läs mer

Kortspel. Ett spel - tusen upplevelser

Kortspel. Ett spel - tusen upplevelser Kortspel Ett spel - tusen upplevelser 1 Översikt över korten i kortleken 7 8 9 10 Knekt Överste Kung Ess 2 Prova olika spel Farmor / Mormor 3-5 7, 8, 9, 10, Knekt, Överste, Kung, Ess Reglerna för detta

Läs mer

Tentamen i EDAF oktober Skrivtid: Skriv bara på ena sidan av pappret tentorna kommer att scannas in, och endast framsidorna rättas.

Tentamen i EDAF oktober Skrivtid: Skriv bara på ena sidan av pappret tentorna kommer att scannas in, och endast framsidorna rättas. Tentamen i EDAF60 29 oktober 2018 Skrivtid: 14-19 Skriv bara på ena sidan av pappret tentorna kommer att scannas in, och endast framsidorna rättas. Skriv inte med färgpenna enda tillåtna färg är svart/blått/blyerts.

Läs mer

allt.cl Page 1 of 17 Date: torsdag 7 december 2006

allt.cl Page 1 of 17 Date: torsdag 7 december 2006 allt.cl Page 1 of 17 Slumpspelaren Väljer slumpvis en flytt ur möjliga flyttar. (defun skapa-slump-spelare (namn bricktyp) "lisp-sträng x bricka -> spelare" (skapa-spelare #'slump-gör-flytt namn bricktyp))

Läs mer

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

KTH STH TENTAMEN. HI1024:TEN2 - Praktisk tentamen Tid: 8-13, den 18 februari 2012 KTH STH TENTAMEN HI1024:TEN2 - Praktisk tentamen Tid: 8-13, den 18 februari 2012 Gamla kurskoder: HI1900, 6E2950, etc. Examinator: Johnny Panrike Rättande lärare: Nicklas Brandefelt, Johnny Panrike och

Läs mer

Shannon-Fano-Elias-kodning

Shannon-Fano-Elias-kodning Datakompression fö 5 p.1 Shannon-Fano-Elias-kodning Antag att vi har en minnesfri källa X i som tar värden i {1, 2,...,L}. Antag att sannolikheterna för alla symboler är strikt positiva: p(i) > 0, i. Fördelningsfunktionen

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

Programmering II (ID1019) :00-11:00

Programmering II (ID1019) :00-11:00 ID1019 Johan Montelius Programmering II (ID1019) 2015-06-11 08:00-11:00 Instruktioner Du får inte ha något materiel med dig förutom skrivmateriel. Mobiler etc, skall lämnas till tentamensvakten. Svaren

Läs mer

Introduktion till programmering SMD180. Föreläsning 4: Villkor och rekursion

Introduktion till programmering SMD180. Föreläsning 4: Villkor och rekursion Introduktion till programmering Föreläsning 4: Villkor och rekursion 1 1 Några inbyggda funktioner (med resultat!) Konverterar mellan de grundläggande typerna: >>> int("32") 32 >>> int(3.999) 3 >>> float(32)

Läs mer

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

Datalogi, grundkurs 1 Övningsuppgifter i Scheme. Serafim Dahl, Carina Edlund, m.fl. Datalogi, grundkurs 1 Övningsuppgifter i Scheme Serafim Dahl, Carina Edlund, m.fl. Hösten 2004 Datalogi, grundkurs 1, hösten 2002 1 1. Vad blir det för resultat vid beräkningen av följande Scheme-uttryck.

Läs mer

PARALLELL OCH SEKVENTIELL DATABEHANDLING. Innehåll

PARALLELL OCH SEKVENTIELL DATABEHANDLING. Innehåll PARALLELL OCH SEKVENTIELL DATABEHANDLING Innehåll Parallellism i VHDL Delta delays och Simuleringstid VHDLs simuleringscykel Aktivering av Processer Parallella och sekventiella uttryck 1 Controller PARALLELLISM

Läs mer

Bridge. på 10 minuter

Bridge. på 10 minuter Bridge på 10 minuter STEG FÖR STEG Det bästa sättet att lära sig spela bridge på är att börja med en förenklad form av spelet. Varje giv består av två moment, efter det att man delat ut korten: budgivning

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

Dataabstraktion. TDDD73 Funktionell och impterativ programmering i Python Föreläsning 12. Peter Dalenius Institutionen för datavetenskap

Dataabstraktion. TDDD73 Funktionell och impterativ programmering i Python Föreläsning 12. Peter Dalenius Institutionen för datavetenskap Dataabstraktion TDDD73 Funktionell och impterativ programmering i Python Föreläsning 12 Peter Dalenius Institutionen för datavetenskap 2013-11-12 Översikt Vad är abstraktion? Vad är en abstrakt datatyp?

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

Imperativ programmering. Imperativ programmering konstruktioner i Lisp. Datastrukturer (kap ) arraystruktur poststruktur

Imperativ programmering. Imperativ programmering konstruktioner i Lisp. Datastrukturer (kap ) arraystruktur poststruktur Imperativ programmering konstruktioner i Lisp Imperativ programmering I den imperativa programmeringen skriver vi program satsvist. Datastrukturer (kap.-.) aystruktur poststruktur Iterativa uttryck (avs.)

Läs mer