Föreläsning 9 i programmeringsparadigm. Unifiering (Brna Chapter 4.1).

Storlek: px
Starta visningen från sidan:

Download "Föreläsning 9 i programmeringsparadigm. Unifiering (Brna Chapter 4.1)."

Transkript

1 Föreläsning 9 i programmeringsparadigm. Unifiering (Brna Chapter 4.1). Repetition: I Haskell är mönster-passning (pattern-matchning) jättepraktiskt: När vi gör ett anrop av en funktion med ett visst argument mönster-passas argumentet mot olika mönster i funktionens definitioner : Ex Vi vill räkna ut f (Sq 6 7)(Chess ((Sq 2 3, NoChessman): [])) där f :: Square -> Chess -> Bool f _ (Chess [] ) = False f sq (Chess ((sq1, ch1):sqcms)) = sq == sq1 f sq (Chess sqcms) Första ekvationens vänsterled matchar inte; men den andra går bra och följande bindningar görs: f (Sq 6 7)(Chess ((Sq 2 3, NoChessman): [] )) -- argumentet f sq (Chess ((sq1, ch1) : sqcms)) -- vänsterledet sq binds till (Sq 6 7) sq1 binds till Sq 2 3 ch1 binds till NoChessman sqcms binds till [] Dessa bindningar används sedan i högerledet (utom ch1 varför man skulle kunna använda _ i stället i mönstret). Bindningarna görs till namnen (identifierarna) sq, sq1, ch1, sqcms. Namnen finns i mönstren i funktiondefinitionerna och namnen måste inledas med en gemen (liten bokstav). Konstruerarna skall stämma exakt, i vårt fall Chess, : (,) (Konstruerarna med namn har versal initial, börjar med stora bokstäver). Matchningen är "en-vägs", eftersom de namn som binds bara finns "på ena sidan", i mönstren i funkttionsdefinitonerna. Prolog : I Prolog kan bindningar (substitioner) göras till logiska variabler, med versal initial, medan värden (t ex atomer) har gemen intial. M a o är det tvärtom när det gäller gemener och versaler. Brna kallar matchning för unifiering. (Vissa författare skiljer på unifiering och matchning, den förenklade form av unifiering som används i Prolog av effektivitetsskäl). Unifieringen i Prolog är "två-vägs", eftersom logiska variabler kan finnas "på båda sidorna", både i det mål som Prolog försöker satisfiera och predikathuvuena (vänsterleden) i predikatens definitioner (de olika klausulerna) i databasen. I Prolog är unifiering det kanske allra viktigaste mekanismen för språkets funktion. Om unifieringen lyckas försöker Prolog använda klausulen, dvs satisfiera målen i klausulens kropp om en sådan finns. I prolog är unifiering fundamentalt för språkets semantik. Unifiering används för övrigt också i Haskell för att klura ut typer och kontrollera typer. Unifiering beskrevs första gången i detalj 1964 i en "landmark thesis" av Robinson. Unifiering är en mycket viktig teoretisk grundval för de båda deklarativa paradigmen (= logik- och funktionella paradigmen).

2 Byrd Box - modellen (Sökningarna i Brna Chapter 3 beskrivna med en variant av Box-modellen i Brna Chapter 5). En Byrd Box är ett grafiskt sätt att rita procedur-synen på ett predikat. Tre olika exempel : eller a(x):- b(x), och a/1 c(x). a(x) :- b(x), c(x). Procedurell läsnig: Proceduren Procedurell läsnig: Proceduren (med portar) a(x) : försök b(x) sedan ev. e(x) Logisk läsnig: Predikatet Logisk läsnig: Predikat med aritet (ställighet) 1 med med 1 klausuler, en regel 4 klausuler, alla faktum. med två konjugerade submål Exempel Byrd Box model förfrågan happy(p): e(x):- e(x):- e/1 g(x). h(x). eller e(x) :- g(x). e(x) :- h(x). Procedurell läsnig: Proceduren a(x) : försök b(x) eller e(x) Logisk läsnig: Predikat med 2 klausuler, 2 regler med varsitt submål, disjunkta. Byrd Box model för frågan happy(p) Program Database wise(jean). happy(p) :- happy(p) :- wealthy(p), happy(p) :- wise(p), e l l e r n y s a t s wealthy(p), wise(p), wise(jean). och,

3 En "körning" av Prolog kan spåras med trace och illustreras i Box-modellen. Genom att göra trace i Sixstus skriver Sixstus ut vad som händer på ett sätt som underlättar förståelsen av förloppet i Box-modellen. Två enkla körningar av ett predikat med fyra fakta illustrerade i Box-modellen: (streckade pilar skrivs ej ut av Sicstus)?- trace. {The debugger will first creep -- showing everything (trace)}?- 1 1 : woman(jean)? 1 1 : woman(jean)??- 1 1 : woman(joan)? 1 1 : woman(joan)? woman(jean) woman(joan) Dessa två körningar fungerar som motsvarande körning av denna Haskell-funktion woman :: Atom -> Bool -- Ett anrop motsvarar -porten woman Jean = True -- Resultatet True woman Jane = True -- motsvarar -porten woman Joan = True woman Pat = True woman _ = False -- False motsvarar -porten, no. Vi får svaret istället för True. I Prolog skall parametern/argument omges med (). I Prolog lämnar vi proceduren med -porten. Eftersom vi fått svar på vår fråga skriver Prolog. Körningar av ett predikat med fyra fakta som misslyckas:?- woman(eve). 1 1 : woman(eve)? 1 1 : woman(eve)? no Motsvarande Haskell-funktion skulle returnera False. I Prolog lämnar vi proceduren med -porten. Eftersom vi fått svar på vår fråga skriver Prolog no.

4 Körningar av ett predikat med fyra fakta. Frågan innehåller en logisk variabel. Prolog föreslår en substitution för att frågan skall kunna besvaras jakande. Vi är nöjda med Prologs första förslag till substitution:?- woman(w). 1 1 : woman(_206)?? 1 1 : woman(jean)? W = jean??- woman(w) W = jean? I körningen mönsterpassar ("matchar", unifierar) vi anropet woman(w), dvs ett anrop med en logisk variabel W, med ett "mönster med "ett värde" Sådan "baklänges" matchning gjorde vi aldrig i Haskell, men Prolog gör det och föreslår substitutionen W = jean?. Vi är nöjda ( bara vagnretur efer W = jean? ) så svarar sedan Prolog. Körning av ett predikat med fyra fakta. Frågan innehåller en logisk variabel. Vi vill ha flera förslag. Prolog föreslår en substitution för att frågan skall kunna besvaras jakande. Vi är dock ej nöjda med Prologs två första förslag till substitutioner, vilket vi visar genom att ge ; i stället för att ge vagnretur.?- woman(w). 1 1 : woman(_206)?? 1 1 : woman(jean)? W = jean? ; 1 1 : woman(jean)?? 1 1 : woman(jane)? W = jane? ; 1 1 : woman(jane)?? 1 1 : woman(joan)? W = joan? woman(w) W = jean?; W = jane?; W = joan?- I körningen tvingar vi Prolog att pröva ytterligare två gånger. Att Prologprocedurer kan "försöka igen med nästa klausul" illustreras med att vi använder -porten. Skulle vi inte vara nöjda med något förslag så svarar till slut Prolog no, dvs Prolog kan inte finna några ytterligare förslag till substitution av den logiska variablen som gör frågan sann.

5 Lyckad körning av ett predikat med regel: happy(jean) Byrd Box model för frågan happy(jean)?- happy(jean). 1 1 : happy(jean)? 2 2 : healthy(jean)? 2 2 : healthy(jean)? 3 2 : woman(jean)? 3 2 : woman(jean)?? 1 1 : happy(jean)? wealthy(p) avkortad bild Missyckad körning av ett predikat med regel: Byrd Box model för frågan happy(pat)?- happy(pat). 1 1 : happy(pat)? 2 2 : healthy(pat)? 2 2 : healthy(pat)? 3 2 : wealthy(pat)? 3 2 : wealthy(pat)? 4 2 : wise(pat)? 4 2 : wise(pat)? 1 1 : happy(pat)? no?- happy(pat) wealthy(p), wise(p), wise(jean)

6 Två körningar av ett predikat definierat med en regel. Frågor med logisk variabel : happy(p) Byrd Box model för frågan happy(p)?- happy(p). 1 1 : happy(_206)? 2 2 : healthy(_206)?? 2 2 : healthy(jim)? 3 2 : woman(jim)? 3 2 : woman(jim)? 2 2 : healthy(jim)?? 2 2 : healthy(jane)? 4 2 : woman(jane)? 4 2 : woman(jane)?? 1 1 : happy(jane)? P = jane? - - wealthy(p), - wise(p), wise(jean)?- happy(r). 1 1 : happy(_206)? 2 2 : healthy(_206)?... som ovan? 1 1 : happy(jane)? R = jane? ; 1 1 : happy(jane)? 2 2 : healthy(jane)? 2 2 : healthy(jean)? 5 2 : woman(jean)? 5 2 : woman(jean)?? 1 1 : happy(jean)? R = jane? happy(r) R = jean? ; 1 1 : happy(jean)? 6 2 : wealthy(_206)?? 6 2 : wealthy(jane)? 7 2 : woman(jane)? 7 2 : woman(jane)?? 1 1 : happy(jane)? Byrd Box model för frågan wealthy(p), wise(p), wise(jean) happy(p)

7 Prologs semantik (i procedurell syn) beskriven med Byrds boxmodell: 1. Anrop av procedure: Vi kommer in genom -porten (fungerar ungefär som vanliga programspråk): Vi finner ett faktum som unifierar. Vi finner ej någon klausul (regel eller faktum) med huvud som unifierar.... Vi finner en regel med huvud som unifierar. Vi gör ett anrop () på första delmål (subgoal) i koppen. 2. Förnyat försök att satisfiera en procedure: Vi kommer in genom -porten: Vi lämnade proceduren via ett faktum Vi finner ett nytt faktum som unifierar. (Vi kommer ihåg vilka vi redan testat) Vi lämnade proceduren via ett fakum Vi finner ej något ytterligarefaktum eller regel som unifierar. (Vi kommer ihåg vilka vi redan testat) Vi lämnade proceduren via ett fakum Vi finner en ny regel med huvud som unifierar. (Vi kommer ihåg regler/fakta vilka vi redan testat) Vi lämnade proceduren via en regel. 3. Kopplingar. Vi kommer ut genom -portar eller -portar : ( från frågan ger no)... =.... =..? Inga logiska Logiska variabler variabler i frågan. Förslag i frågan till substitution. Vi är nöjda. från procduren som är frågan.. =.... =..?; Logiska variabler i frågan. Förslag till substitution. Vi är ej nöjda.

8 talksabout(a, B) talksabout(a, B) Rekursion (Exemplet i Brna Chapter 4.2). talksabout(a, B):-. talksabout(a, B):- knows(a, C), talksabout(c,b). knows(bill, jane). knows(jane, pat). knows(jane, fred). knows(fred, bill). % Faktum. Ex på till-slut-på-raden-kommentar /* Körning?- talksabout(x, Y). Y = jane? ; X = jane, Y = pat? ; X = jane, Y = fred? ; X = fred, Y = bill? ; talksabout(a, B) talksabout(a, B) Y = pat? ; talksabout(a, B) Y = fred? ; Y = bill? ; Y = jane? ; Y = pat? ; */.

Föreläsning 8. newtype Chess = Chess [(Square, Chessman)] -- data ist f newtype OK -- data istället för newtype krävs om >1 konstruerare.

Föreläsning 8. newtype Chess = Chess [(Square, Chessman)] -- data ist f newtype OK -- data istället för newtype krävs om >1 konstruerare. Föreläsning 8. Typer och programmeringsstil i Haskell. När vi definerade ett schack gjorde vi så här: newtype Chess = Chess [(Square, Chessman)] -- data ist f newtype OK deriving Show -- newtype effektivare

Läs mer

Föreläsning 9 i programmeringsparadigm. Paradigmöversikt, paradigmhistoria, paradigmgeografi. Se även föreläsning 1.

Föreläsning 9 i programmeringsparadigm. Paradigmöversikt, paradigmhistoria, paradigmgeografi. Se även föreläsning 1. Föreläsning 9 i programmeringsparadigm. Paradigmöversikt, paradigmhistoria, paradigmgeografi. Se även föreläsning 1. Användning av Prolog. Prolog har framför allt används inom AI ( Articifial Intellegence),

Läs mer

Föreläsning 8. Paradigmöversikt, paradigmhistoria, paradigmgeografi. Se även föreläsning 1.

Föreläsning 8. Paradigmöversikt, paradigmhistoria, paradigmgeografi. Se även föreläsning 1. Föreläsning 8. Paradigmöversikt, paradigmhistoria, paradigmgeografi. Se även föreläsning 1. Användning av Prolog. Haskell kan i princip användas till mycket, men grafiska paket, kopplingar till färdiga

Läs mer

DD1361 Programmeringsparadigm HT15

DD1361 Programmeringsparadigm HT15 DD1361 Programmeringsparadigm HT15 Logikprogrammering 1 Dilian Gurov, TCS Innehåll Logikprogrammering Kontrollflöde Unifiering Backtracking Negation Snitt Induktiva datatyper och rekursion Inbyggda datatyper:

Läs mer

Nada Tentamensdag 2004 okt 18 Tentamen Programmeringsparadigm Skrivtid 5 h

Nada Tentamensdag 2004 okt 18 Tentamen Programmeringsparadigm Skrivtid 5 h Nada Tentamensdag 2004 okt 18 Tentamen Programmeringsparadigm Skrivtid 5 h Antalet uppgifter : 1 (allmänt)+ 4 (Haskell) + 4 (Prolog) = 10p +(6p + 18p +6p+ 20p) + (10p +12p + 8p +10p) = 10p + 50p + 40 p

Läs mer

Centrala begrepp i prolog och logikprogrammering. Annamaris lista

Centrala begrepp i prolog och logikprogrammering. Annamaris lista Centrala begrepp i prolog och logikprogrammering Annamaris lista Databas med fakta och regler: Ett prolog-system består av en databas av fakta, och regler som gäller för dessa fakta. Fakta har formen av

Läs mer

Del : Funktionell programmering. I alla deluppgifterna, använd Haskell och skriv typen för de identifierare du definierar.

Del : Funktionell programmering. I alla deluppgifterna, använd Haskell och skriv typen för de identifierare du definierar. Nada Tentamensdag 2005 jan11 Tentamen Programmeringsparadigm Skrivtid 5 h Antalet uppgifter : 1 (allmänt)+ 4 (Haskell) + 4 (Prolog) = 10p +(6p + 10p +14p+ 20p) + (9p +11p + 8p +12p) = 10p + 50p + 40 p

Läs mer

DD1361 Programmeringsparadigm HT17

DD1361 Programmeringsparadigm HT17 DD1361 Programmeringsparadigm HT17 Logikprogrammering 1 Dilian Gurov, KTH Delkursinnehåll Logisk versus procedurell läsning Kontrollflöde: Unifiering, Backtracking, Snitt Induktiva datatyper och rekursion

Läs mer

Nada KTH 2003 okt 23 Tentamen Programmeringsparadigm 2D1350 Skrivtid 5 h 8-13

Nada KTH 2003 okt 23 Tentamen Programmeringsparadigm 2D1350 Skrivtid 5 h 8-13 Nada KTH 2003 okt 23 Tentamen Programmeringsparadigm 2D1350 Skrivtid 5 h 8-13 Antalet uppgifter : 1 (allmänt)+ 4 (Haskell) + 4 (Prolog) = 9 10p +(14p + 12p +10p+ 14p) + (8p +12p + 12p +8p) = 10p + 50p

Läs mer

Nada KTH 2004 jan 12 Tentamen Programmeringsparadigm 2D1350 Skrivtid 5 h 8-13

Nada KTH 2004 jan 12 Tentamen Programmeringsparadigm 2D1350 Skrivtid 5 h 8-13 Nada KTH 2004 jan 12 Tentamen Programmeringsparadigm 2D1350 Skrivtid 5 h 8-13 Antalet uppgifter : 1 (allmänt)+ 4 (Haskell) + 4 (Prolog) = 9 10p +( 5p + 14p +15p+ 16p) + (12p +10p + 10p +8p) = 10p + 50p

Läs mer

DD1361 Programmeringsparadigm HT16

DD1361 Programmeringsparadigm HT16 DD1361 Programmeringsparadigm HT16 Logikprogrammering 1 Dilian Gurov, TCS Delkursinnehåll Logikprogrammering Logisk versus procedurell läsning Kontrollflöde Unifiering, Backtracking, Snitt Negation Induktiva

Läs mer

Del : Paradigmer allmänt.

Del : Paradigmer allmänt. Nada Tentamensdag 2003 jan 13 Tentamen Programmeringsparadigm Skrivtid 5 h Antalet uppgifter : 1 (allmänt)+ 3 (Haskell) + 4 (Prolog) = 5p +(15p + 15p +20p) + (10p +12p + 15p +8p) = 5p + 50p + 45 p = 100p

Läs mer

Del : Funktionell programmering. I alla deluppgifterna, använd Haskell och skriv typen för de identifierare du definierar.

Del : Funktionell programmering. I alla deluppgifterna, använd Haskell och skriv typen för de identifierare du definierar. Nada Tentamensdag 2004 aug 23 Tentamen Programmeringsparadigm Skrivtid 5 h Antalet uppgifter : 1 (allmänt)+ 4 (Haskell) + 4 (Prolog) = 10p +(5p + 20p +5p+ 20p) + (10p +12p + 8p +10p) = 10p + 50p + 40 p

Läs mer

Innehåll. Föreläsning 7. Satslogiken är för grov. Samma sak i predikatlogik: Första ordningens predikatlogik. Logik med tillämpningar

Innehåll. Föreläsning 7. Satslogiken är för grov. Samma sak i predikatlogik: Första ordningens predikatlogik. Logik med tillämpningar Innehåll Föreläsning 7 Logik med tillämpningar 99-03-01 Första ordningens predikatlogik Objekt, predikat, kvantifierare Funktioner, termer, wffs Bindning och räckvidd Tolkningar och värderingar Satisfiering,

Läs mer

Länkning av Prolog under C

Länkning av Prolog under C Länkning av Prolog under C Kent Boortz Swedish Institute of Computer Science Box 1263, S-164 28 Kista, Sweden 1 september 1991 T91:14 Sammanfattning SICStus länkmoduler ger möjlighet att blanda Prolog-

Läs mer

Lådmodellen....eller procedure box control flow model. Dynamisk bild av ett prologprogram Förklarar i detalj procedurell läsning av ett program.

Lådmodellen....eller procedure box control flow model. Dynamisk bild av ett prologprogram Förklarar i detalj procedurell läsning av ett program. Lådmodellen...eller procedure box control flow model. Dynamisk bild av ett prologprogram Förklarar i detalj procedurell läsning av ett program. Lådmodellen...eller procedure box control flow model. Dynamisk

Läs mer

Del : Paradigmer allmänt.

Del : Paradigmer allmänt. Nada Tentamensdag 2003 aug 25 Tentamen Programmeringsparadigm Skrivtid 5 h Antalet uppgifter : 1 (allmänt)+ 4 (Haskell) + 4 (Prolog) = 5p +(12p + 15p +5p+ 20p) + (10p +14p + 8p +11p) = 5p + 52p + 43 p

Läs mer

Kursanalys för Programmeringsparadigm 2D1361, läsperiod 1 och 2 läsåret 2005/2006

Kursanalys för Programmeringsparadigm 2D1361, läsperiod 1 och 2 läsåret 2005/2006 Leif Kusoffsky 2005 - dec - 07 Nada KTH Kursanalys för Programmeringsparadigm 2D1361, läsperiod 1 och 2 läsåret 2005/2006 Kursdata Momentindelning Kursen genomförd Kursledare Kurslitteratur Antal studenter

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

Traditionell Programmering

Traditionell Programmering Crash Course in Prolog Baran Çürüklü Introduktion till PROLOG, dvs. PROgramming in LOGic Prolog-programmen är deklarativa och består av egenskaper, relationer och regler. Lisp and Prolog är de vanligaste

Läs mer

DD1361 Programmeringsparadigm HT15

DD1361 Programmeringsparadigm HT15 DD1361 Programmeringsparadigm HT15 Logikprogrammering 3 Dilian Gurov, TCS Idag Induktiva datatyper: Träd (inte inbyggd) Binära träd utan data Binära träd med data Prolog-specifika konstruktioner Negation,

Läs mer

Prova på-laboration i Prolog

Prova på-laboration i Prolog Prova på-laboration i Prolog Peter Dalenius petda@ida.liu.se Institutionen för datavetenskap, Linköpings universitet 2006-09-12 1. Introduktion till Prolog Programspråket Prolog konstruerades i början

Läs mer

Några inbyggda funktioner (med resultat!) Introduktion till programmering D0009E. Föreläsning 4: Villkor och rekursion. Modulus-operatorn.

Några inbyggda funktioner (med resultat!) Introduktion till programmering D0009E. Föreläsning 4: Villkor och rekursion. Modulus-operatorn. Några inbyggda funktioner (med resultat!) Introduktion till programmering D0009E Föreläsning 4: Villkor och rekursion Konverterar mellan de grundläggande typerna: >>> int("") >>> int(.999) >>> float().0

Läs mer

Föreläsning [ ] i programmeringsparadigm. Om multiparadigm-språket OZ och en tjock bok.

Föreläsning [ ] i programmeringsparadigm. Om multiparadigm-språket OZ och en tjock bok. Föreläsning [14.. 15] i programmeringsparadigm. Jag har ju delat ut Lite grann om syntax, semantik och syntaxanalys. Några ex finns på Nadas kursexpedidition. Labben "Danska räkneord" ska göras med en

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

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

DD1361 Programmeringsparadigm HT15

DD1361 Programmeringsparadigm HT15 DD1361 Programmeringsparadigm HT15 Logikprogrammering 3 Dilian Gurov, TCS Idag Induktiva datatyper: Träd (inte inbyggd) Binära träd utan data Binära träd med data Prolog-specifika konstruktioner Negation,

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

Föreläsning 7: Syntaxanalys

Föreläsning 7: Syntaxanalys DD2458, Problemlösning och programmering under press Föreläsning 7: Syntaxanalys Datum: 2007-10-30 Skribent(er): Erik Hammar, Jesper Särnesjö Föreläsare: Mikael Goldmann Denna föreläsning behandlade syntaxanalys.

Läs mer

Ett Logikprogram. Logik och Programmering. Introduktion till PROLOG, dvs. PROgramming in LOGic. Viktiga begrepp/områden i Prolog. Framtiden?

Ett Logikprogram. Logik och Programmering. Introduktion till PROLOG, dvs. PROgramming in LOGic. Viktiga begrepp/områden i Prolog. Framtiden? Crash Course in Prolog Peter Funk FUKO HT2001 IDt, Computer Science and Engineering Mälardalen University Västerås, Sweden Peter.Funk@mdh.se Introduktion till PROLOG, dvs. PROgramming in LOGic Prolog-programmen

Läs mer

TATA42: Föreläsning 9 Linjära differentialekvationer av ännu högre ordning

TATA42: Föreläsning 9 Linjära differentialekvationer av ännu högre ordning TATA42: Föreläsning 9 Linjära differentialekvationer av ännu högre ordning Johan Thim 4 mars 2018 1 Linjära DE av godtycklig ordning med konstanta koefficienter Vi kommer nu att betrakta linjära differentialekvationer

Läs mer

Datorlingvistisk grammatik I Institutionen för lingvistik och filologi Oktober 2007 Mats Dahllöf

Datorlingvistisk grammatik I Institutionen för lingvistik och filologi Oktober 2007 Mats Dahllöf UPPSALA UNIVERSITET Datorlingvistisk grammatik I Institutionen för lingvistik och filologi Oktober 2007 Mats Dahllöf http://stp.ling.uu.se/ matsd/uv/uv07/dg1/ Logisk semantik II 1 Predikatlogik, generella

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

Logikprogrammering. Undervisningsmaterialet NYTT för 2013: Learn Prolog Now! SWI Prolog-tolk, startas under tuxedo/ pingvinerna med swipl!

Logikprogrammering. Undervisningsmaterialet NYTT för 2013: Learn Prolog Now! SWI Prolog-tolk, startas under tuxedo/ pingvinerna med swipl! Logikprogrammering Undervisningsmaterialet NYTT för 2013: Learn Prolog Now! SWI Prolog-tolk, startas under tuxedo/ pingvinerna med swipl! Learn Prolog Now! SWI Prolog Gratis Prolog-tolk Lesser GNU Public

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

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

I en deterministisk omgivning beror nästa tillstånd bara av agentens handling och nuvarande tillstånd.

I en deterministisk omgivning beror nästa tillstånd bara av agentens handling och nuvarande tillstånd. OBS! För flervalsfrågorna gäller att ett, flera eller inget alternativ kan vara korrekt. På flervalsfrågorna ges 1 poäng för korrekt svar och 0,5 poäng om skillnaden mellan antalet korrekta svar och antalet

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

Funktionell programmering. Haskell. Ge#ng started...

Funktionell programmering. Haskell. Ge#ng started... Funktionell programmering Haskell Ge#ng started... Installera Haskell För a/ installera Haskell på egen maskin, ladda ned Haskell Pla9orm från h/p://www.haskell.org/pla9orm/ Där finns instrukdoner, dokumentadon,

Läs mer

Föreläsning 10 i programmeringsparadigm. Boxmodellen för append.

Föreläsning 10 i programmeringsparadigm. Boxmodellen för append. Föreläsning 10 i programmeringsparadigm. Boxmodellen för append. Jag försöker förklara denna bild för en körning av append([1,2], [3, 4], Rs) närmare på föreläsningen. Principen är att vid anrop (Call)

Läs mer

Deklarativt programmeringsparadigm

Deklarativt programmeringsparadigm Deklarativt programmeringsparadigm Det vi introducerade på förra föreläsningen var ett exempel på deklarativ programmering. Vi specificerade en fallanalys som innehöll fakta och regler för hur man skulle

Läs mer

Grundläggande logik och modellteori (5DV102)

Grundläggande logik och modellteori (5DV102) Tentamen 2013-10-31 Grundläggande logik och modellteori (5DV102) M. Berglund och K. Markström Totalt antal uppgifter 11 Maximalt antal poäng 30 Krav för 3 i betyg 14 poäng Krav för 4 i betyg 19 poäng,

Läs mer

Grundläggande logik och modellteori

Grundläggande logik och modellteori Grundläggande logik och modellteori Kapitel 8: Predikatlogik Henrik Björklund Umeå universitet 2. oktober, 2014 Första ordningens predikatlogik Signaturer och termer Första ordningens predikatlogik Formler

Läs mer

Semantik och pragmatik (Serie 4)

Semantik och pragmatik (Serie 4) Semantik och pragmatik (Serie 4) Satser och logik. Mats Dahllöf Institutionen för lingvistik och filologi April 2015 1 / 30 Så här långt (satslogik) Konjunktion (p q): att två enklare satser båda är uppfyllda.

Läs mer

Introduktion till programmering D0009E. Föreläsning 5: Fruktbara funktioner

Introduktion till programmering D0009E. Föreläsning 5: Fruktbara funktioner Introduktion till programmering D0009E Föreläsning 5: Fruktbara funktioner 1 Retur-värden Funktioner kan både orsaka en effekt och returnera ett resultat. Hittills har vi ej definierat några egna funktioner

Läs mer

Tommy Färnqvist, IDA, Linköpings universitet. 2 Strukturer 2 2.1 Domäner... 2 2.2 Tolkningar... 3

Tommy Färnqvist, IDA, Linköpings universitet. 2 Strukturer 2 2.1 Domäner... 2 2.2 Tolkningar... 3 Föreläsning 2 Semantik 729G06 Logikdelen Föreläsningsanteckningar i Programmering och logik 27 januari 2014 Tommy Färnqvist, IDA, Linköpings universitet 2.1 Innehåll Innehåll 1 Lite mer syntax 1 2 Strukturer

Läs mer

Översikt. Varför lära sig detta? Motivering Syntax och semantik Imperativa språkets byggstenar och Python. PL-boken Kap 1 (repetition):

Översikt. Varför lära sig detta? Motivering Syntax och semantik Imperativa språkets byggstenar och Python. PL-boken Kap 1 (repetition): Översikt Motivering Syntax och semantik Imperativa språkets byggstenar och Python Datatyper Tilldelning och uttryck Kontrollstrukturer (på satsnivå) Subprogram Relaterade avsnitt: PL 3.1-3.2, 5.1-5.3,

Läs mer

Grundläggande logik och modellteori

Grundläggande logik och modellteori Grundläggande logik och modellteori Kapitel 7: SAT-lösare Henrik Björklund Umeå universitet 29. september, 2014 SAT En instans av SAT är en mängd av mängder av literaler. Exempel: {{p, q, r}, {p, q, s},

Läs mer

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

EDAA20 Programmering och databaser. Mål komprimerat se kursplanen för detaljer. Checklista. Föreläsning 1-2 Innehåll. Programmering. EDAA20 Programmering och databaser Mål komprimerat se kursplanen för detaljer Läsperiod 1 7.5 hp anna.aelsson@cs.lth.se http://cs.lth.se/edaa20 Mer information finns på kursens webbsida samt på det utdelade

Läs mer

Föreläsning 11 i programmeringsparadigm. Boxmodellen i Sicstus-manualen.

Föreläsning 11 i programmeringsparadigm. Boxmodellen i Sicstus-manualen. Föreläsning 11 i programmeringsparadigm. Boxmodellen i Sicstus-manualen. The Procedure Box Control Flow Model During debugging, the debugger prints out a sequence of goals in various states of instantiation

Läs mer

TATA42: Föreläsning 8 Linjära differentialekvationer av högre ordning

TATA42: Föreläsning 8 Linjära differentialekvationer av högre ordning TATA42: Föreläsning 8 Linjära differentialekvationer av högre ordning Johan Thim 23 april 2018 1 Differentialoperatorer För att underlätta notation och visa på underliggande struktur introducerar vi begreppet

Läs mer

Avslutning. Vad? Hur? Anmärkningar inför tentan 2. Vad ska kunnas?

Avslutning. Vad? Hur? Anmärkningar inför tentan 2. Vad ska kunnas? Avslutning Anmärkningar inför tentan Vad ska kunnas? Avslutning 1 Vad? Anmärkningar inför tentan 1 Att ha en bra förståelse för det som behandlades på föreläsningarna och gruppövningarna räcker i princip.

Läs mer

Introduktion till programmering SMD180. Föreläsning 5: Fruktbara funktioner

Introduktion till programmering SMD180. Föreläsning 5: Fruktbara funktioner Introduktion till programmering Föreläsning 5: Fruktbara funktioner 1 Retur-värden Funktioner kan både orsaka en effekt och returnera ett resultat. Hittills har vi ej definierat några egna funktioner med

Läs mer

Föreläsning 5-6 Innehåll. Exempel på program med objekt. Exempel: kvadratobjekt. Objekt. Skapa och använda objekt Skriva egna klasser

Föreläsning 5-6 Innehåll. Exempel på program med objekt. Exempel: kvadratobjekt. Objekt. Skapa och använda objekt Skriva egna klasser Föreläsning 5-6 Innehåll Exempel på program med objekt Skapa och använda objekt Skriva egna klasser public class DrawSquare { public static void main(string[] args) { SimpleWindow w = new SimpleWindow(600,

Läs mer

Avslutning. Vad? Hur? Anmärkningar inför tentan 2. Vad ska ni kunna?

Avslutning. Vad? Hur? Anmärkningar inför tentan 2. Vad ska ni kunna? Avslutning Anmärkningar inför tentan Vad ska ni kunna? Avslutning 1 Vad? Anmärkningar inför tentan 1 Att ha en bra förståelse för det som behandlades på föreläsningarna, inlämningsuppgifterna och gruppövningarna

Läs mer

Föreläsning 5-6 Innehåll

Föreläsning 5-6 Innehåll Föreläsning 5-6 Innehåll Skapa och använda objekt Skriva egna klasser Datavetenskap (LTH) Föreläsning 5-6 HT 2017 1 / 32 Exempel på program med objekt public class DrawSquare { public static void main(string[]

Läs mer

K3 Om andra ordningens predikatlogik

K3 Om andra ordningens predikatlogik KTH Matematik Bengt Ek Maj 2005 Kompletteringsmaterial till kursen 5B1928 Logik för D1: K3 Om andra ordningens predikatlogik Vi presenterar på dessa sidor kortfattat andra ordningens predikatlogik, vilket

Läs mer

I en deterministisk omgivning beror nästa tillstånd bara av agentens handling och nuvarande tillstånd.

I en deterministisk omgivning beror nästa tillstånd bara av agentens handling och nuvarande tillstånd. OBS! För flervalsfrågorna gäller att ett, flera eller inget alternativ kan vara korrekt. På flervalsfrågorna ges 1 poäng för korrekt svar och 0,5 poäng om skillnaden mellan antalet korrekta svar och antalet

Läs mer

Föreläsning 3: rekursion

Föreläsning 3: rekursion Föreläsning 3: rekursion Teori Introducera rekursiva definitioner i Prolog Fyra exempel Visa att det kan finnas diskrepanser mellan Prolog-programmets deklarativa och procedurala betydelse! Rekursiva definitioner

Läs mer

Lambdas. (och fler design patterns) Objekt-orienterad programmering och design (DIT952) Niklas Broberg, 2017

Lambdas. (och fler design patterns) Objekt-orienterad programmering och design (DIT952) Niklas Broberg, 2017 Lambdas (och fler design patterns) Objekt-orienterad programmering och design (DIT952) Niklas Broberg, 2017 Funktioner En funktion (i programmeringstermer) är en operation som tar ett eller flera argument,

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

Multipel tilldelning. Introduktion till programmering D0009E. Föreläsning 6: Iteration. while-satsen. Kom ihåg. Snurror kontra rekursion

Multipel tilldelning. Introduktion till programmering D0009E. Föreläsning 6: Iteration. while-satsen. Kom ihåg. Snurror kontra rekursion Introduktion till programmering D0009E Föreläsning 6: Iteration Multipel tilldelning Helt ok att tilldela en variabel flera gånger: bruce = bruce, bruce = 7 bruce Output: 7 Som tillståndsdiagram: bruce

Läs mer

Föreläsningen ger en introduktion till differentialekvationer och behandlar stoff från delkapitel 18.1, 18.3 och 7.9 i Adams. 18.

Föreläsningen ger en introduktion till differentialekvationer och behandlar stoff från delkapitel 18.1, 18.3 och 7.9 i Adams. 18. Föreläsningen ger en introduktion till differentialekvationer och behandlar stoff från delkapitel 18.1, 18.3 och 7.9 i Adams. 18.1 Delkapitlet introducerar en del terminologi och beteckningar som används.

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

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

FÖRELÄSNING 3 ANDERS MÄRAK LEFFLER IDA/HCS 729G06 Logik FÖRELÄSNING 3 ANDERS MÄRAK LEFFLER IDA/HCS 160208 Idag C-regeln, informell (och formell) inledning till predikatlogik (Bevis kommer senare.) 2 3 Vår (Snöfritt Cykla) (Vår Snöfritt) Cykla Lätt

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

Sats. Om t är en rätvinklig triangel så är summan av kvadraterna på kateterna i t lika med kvadraten på hypotenusan.

Sats. Om t är en rätvinklig triangel så är summan av kvadraterna på kateterna i t lika med kvadraten på hypotenusan. Lunds tekniska högskola Datavetenskap Lennart Andersson Föreläsningsanteckningar EDAF10 3 Predikatlogik 3.1 Motivering I satslogiken är de minsta beståndsdelarna satslogiska variabler som kan anta värdena

Läs mer

En introduktion till predikatlogik

En introduktion till predikatlogik rasmus.blanck@gu.se FT1200, LC1510 och LGFI52 VT2017 (Premiss 1) (Premiss 2) (Slutsats) Alla människor är dödliga Sokrates är en människa Sokrates är dödlig Detta argument är intuitivt giltigt: Det finns

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

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

Föreläsning 9: NP-fullständighet

Föreläsning 9: NP-fullständighet Föreläsning 9: NP-fullständighet Olika typer av problem: 1. Beslutsproblem: A(x) =Ja. 2. Optimeringsproblem: A(x) =m Vanligen max/min. 3. Konstruktionsproblem: A(x) =En struktur. Vanligen lösningen till

Läs mer

Substitution och unifiering

Substitution och unifiering Substitution och unifiering Exempel varför behövs substitution? Substitution Unifiering Den mest generella unifieraren Substitution och unifiering 1 Resolution kräver substitution ett enkelt exempel Gäller

Läs mer

732G Linköpings universitet 732G11. Johan Jernlås. Översikt. Repetition. Felsökning. Datatyper. Referenstyper. Metoder / funktioner

732G Linköpings universitet 732G11. Johan Jernlås. Översikt. Repetition. Felsökning. Datatyper. Referenstyper. Metoder / funktioner 732G11 Linköpings universitet 2011-01-21 1 2 3 4 5 6 Skapa program Kompilera: Källkod Kompilator bytekod Köra: Bytekod Virtuell maskin Ett riktigt program Hej.java class Hej { public static void main (

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

Ö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

Innehållsförtekning Sida. Inledning 3 Vad är fuzzy logic? 3 Mängder 3 Medlemsfunktioner 5 Operationer 6 Fuzzification 8 Litteraturförteckning 9

Innehållsförtekning Sida. Inledning 3 Vad är fuzzy logic? 3 Mängder 3 Medlemsfunktioner 5 Operationer 6 Fuzzification 8 Litteraturförteckning 9 Fuzzy Logic Innehållsförtekning Sida Inledning 3 Vad är fuzzy logic? 3 Mängder 3 Medlemsfunktioner 5 Operationer 6 Fuzzification 8 Litteraturförteckning 9 2 Inledning Med detta fördjupningsarbete vill

Läs mer

1 Funktioner och procedurell abstraktion

1 Funktioner och procedurell abstraktion 1 Funktioner och procedurell abstraktion Det som gör programkonstruktion hanterlig och övergripbar och överhuvudtaget genomförbar är möjligheten att dela upp program i olika avsnitt, i underprogram. Vår

Läs mer

Föreläsning 3-4 Innehåll. Diskutera. Metod. Programexempel med metod

Föreläsning 3-4 Innehåll. Diskutera. Metod. Programexempel med metod Föreläsning 3-4 Innehåll Diskutera Vad gör programmet programmet? Föreslå vilka satser vi kan bryta ut till en egen metod. Skriva egna metoder Logiska uttryck Algoritm för att beräkna min och max Vektorer

Läs mer

Grundläggande logik och modellteori (5DV102)

Grundläggande logik och modellteori (5DV102) Tentamen 2014-01-10 Grundläggande logik och modellteori (5DV102) M. Berglund och K. Markström Totalt antal uppgifter 10 Maximalt antal poäng 30 Krav för 3 i betyg 1 Krav för 4 i betyg 19 poäng, vara minst

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

varandra. Vi börjar med att behandla en linjes ekvation med hjälp av figur 7 och dess bildtext.

varandra. Vi börjar med att behandla en linjes ekvation med hjälp av figur 7 och dess bildtext. PASS 8 EKVATIONSSYSTEM OCH EN LINJES EKVATION 8 En linjes ekvation En linjes ekvation kan framställas i koordinatsystemet Koordinatsystemet består av x-axeln och yaxeln X-axeln är vågrät och y-axeln lodrät

Läs mer

Programmering och Programspråk. 7,5 högskolepoäng. Namn: (Ifylles av student) Personnummer: (Ifylles av student)

Programmering och Programspråk. 7,5 högskolepoäng. Namn: (Ifylles av student) Personnummer: (Ifylles av student) Programmering och Programspråk Provmoment: Ladokkod: Tentamen ges för: Tentamen NPL011 Systemarkitektprogrammet 7,5 högskolepoäng Namn: (Ifylles av student) Personnummer: (Ifylles av student) Tentamensdatum:

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

Föreläsning 5 i programmeringsparadigm.

Föreläsning 5 i programmeringsparadigm. Föreläsning 5 i programmeringsparadigm. λ-notation (lamda-notation, anonyma funktioner). Hutton 4.5. (Fokker 2.3.4.) Vi kan om vi vill definiera hjälpkonstanter, t ex i denna funktiondefinition : kommunalskatt

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

Utsagor (Propositioner) sammansatta utsagor sanningstabeller logisk ekvivalens predikat (öppna utsagor) kvantifierare Section

Utsagor (Propositioner) sammansatta utsagor sanningstabeller logisk ekvivalens predikat (öppna utsagor) kvantifierare Section Föreläsning 1 Utsagor (Propositioner) sammansatta utsagor sanningstabeller logisk ekvivalens predikat (öppna utsagor) kvantifierare Section 1.1-1.3 i kursboken Definition En utsaga (proposition) är ett

Läs mer

Föreläsning 3-4 Innehåll

Föreläsning 3-4 Innehåll Föreläsning 3-4 Innehåll Skriva egna metoder Logiska uttryck Algoritm för att beräkna min och max Vektorer Datavetenskap (LTH) Föreläsning 3-4 HT 2017 1 / 36 Diskutera Vad gör programmet programmet? Föreslå

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

Enjoy Vattenfallsmodellen i funktionella språk

Enjoy Vattenfallsmodellen i funktionella språk Föreläsning 2 i Programmeringsparadigm Funktionell programmering := variabler pekare sidoeffekter ;...; Fy, fy => bugfree förståeliga korta inga "satser", bara uttryck! Enjoy Vattenfallsmodellen i funktionella

Läs mer

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

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

Läs mer

Logisk semantik I. 1 Lite om satslogik. 1.1 Konjunktioner i grammatisk bemärkelse. 1.2 Sant och falskt. 1.3 Satssymboler. 1.

Logisk semantik I. 1 Lite om satslogik. 1.1 Konjunktioner i grammatisk bemärkelse. 1.2 Sant och falskt. 1.3 Satssymboler. 1. UPPSALA UNIVERSITET Datorlingvistisk grammatik I Institutionen för lingvistik och filologi Oktober 2007 Mats Dahllöf http://stp.ling.uu.se/ matsd/uv/uv07/dg1/ Logisk semantik I 1 Lite om satslogik 1.1

Läs mer

Texten är en omarbetning av en text skriven av Rikard Bögvad för kursen Matematik I (30 hp).

Texten är en omarbetning av en text skriven av Rikard Bögvad för kursen Matematik I (30 hp). Introduktion Med hjälp av dator kan man utföra omfattande matematiska beräkningar, men också få datorn att producera lösningar på icke-triviala uppgifter. I det här momentet av kursen ska vi bekanta oss

Läs mer

STRÄNGAR DATATYPEN. Om du vill baka in variabler eller escape-tecken måste du använda dubbla citattecken. strängar

STRÄNGAR DATATYPEN. Om du vill baka in variabler eller escape-tecken måste du använda dubbla citattecken. strängar STRÄNGAR En av de mest avancerade av de normala datatyperna är. Här skall vi grundläggande gå igenom hur den datatypen fungerar och vidare flertalet funktioner som hör till datatypen. Låt oss kasta oss

Läs mer

Datalogi I, grundkurs med Java 10p, 2D4112, Fiktiv tentamen, svar och lösningar och extra kommentarer till vissa uppgifter 1a) Dividera förs

Datalogi I, grundkurs med Java 10p, 2D4112, Fiktiv tentamen, svar och lösningar och extra kommentarer till vissa uppgifter 1a) Dividera förs Datalogi I, grundkurs med Java 10p, 2D4112, 2002-2003 Fiktiv tentamen, svar och lösningar och extra kommentarer till vissa uppgifter 1a) Dividera först talet 37 med 2. Använd heltalsdivision. Det ger kvoten

Läs mer

Tentamen i kurserna Beräkningsmodeller (TDA181/INN110) och Grundläggande Datalogi (TDA180)

Tentamen i kurserna Beräkningsmodeller (TDA181/INN110) och Grundläggande Datalogi (TDA180) Göteborgs Universitet och Chalmers Tekniska Högskola 19 januari 2005 Datavetenskap TDA180/TDA181/INN110 Tentamen i kurserna Beräkningsmodeller (TDA181/INN110) och Grundläggande Datalogi (TDA180) Onsdagen

Läs mer

FL 5: Aritmetik. Teori

FL 5: Aritmetik. Teori FL 5: Aritmetik Teori Introducerar Prologs inbyggda operationer för aritmetik Tillämpar dessa på enkla listhanteringsproblem, mha ackumulatorer Ser på svansrekursiva predikat och förklarar varför de är

Läs mer

Objektorienterad programmering Föreläsning 5

Objektorienterad programmering Föreläsning 5 Objektorienterad programmering Föreläsning 5 Copyright Mahmud Al Hakim mahmud@dynamicos.se www.webbacademy.se Agenda UML Övning Mer om metoder Standardklassen String Konstruktorer Överlagrade metoder Standardklassen

Läs mer

Laboration 1: Figurer i hierarki

Laboration 1: Figurer i hierarki Laboration 1: Figurer i hierarki Bakgrund Två grundläggande tekniker i objektorienterad konstruktion är arv och komposition. Mål Laborationen har flera avsikter: 1. Ge kunskaper i hur program kan organiseras

Läs mer

TATA42: Föreläsning 7 Differentialekvationer av första ordningen och integralekvationer

TATA42: Föreläsning 7 Differentialekvationer av första ordningen och integralekvationer TATA42: Föreläsning 7 Differentialekvationer av första ordningen och integralekvationer Johan Thim 0 januari 207 Introduktion En differentialekvation (DE) i en variabel är en ekvation som innehåller både

Läs mer