729G74 IT och programmering, grundkurs. Tema 2. Föreläsning 3 Jody Foo,

Relevanta dokument
729G74 IT och programmering, grundkurs. Tema 2. Föreläsning 3 Jody Foo,

729G74 IT och programmering, grundkurs. Tema 2, Föreläsning 1 Jody Foo,

729G74 IT och programmering, grundkurs. Tema 3. Föreläsning 2 Jody Foo,

729G74 IT och programmering, grundkurs. Tema 1, Föreläsning 3 Jody Foo,

729G74 IT och programmering, grundkurs. Tema 2, Föreläsning 2 Jody Foo,

729G74 IT och programmering, grundkurs. Tema 3. Föreläsning 1 Jody Foo,

TDDE44 Programmering, grundkurs

729G74 IT och programmering, grundkurs. Tema 1, Föreläsning 2 Jody Foo,

Programmering och algoritmiskt tänkande. Tema 3, föreläsning 1 Jody Foo

729G04 Programmering och diskret matematik. Python 2: Villkorssatser, sanningsvärden och logiska operatorer

Språket Python - Del 1 Grundkurs i programmering med Python

Instruktioner - Datortentamen TDDD73 Funktionell och imperativ programmering i Python

729G74 IT och programmering, grundkurs. Tema 1, Föreläsning 2 Jody Foo,

729G04 - Diskret matematik. Hemuppgift.

729G04: Inlämningsuppgift i Diskret matematik

729G75: Programmering och algoritmiskt tänkande. Tema 1, föreläsning 1 Jody Foo

729G75: Programmering och algoritmiskt tänkande. Tema 1. Föreläsning 1 Jody Foo

Dataabstraktion. TDDD73 Funktionell och imperativ 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

Dagens föreläsning Programmering i Lisp Fö 7. Sammanfattning funktionell programmering Exempel på funktionella programspråk

1 Föreläsning Implikationer, om och endast om

MA2047 Algebra och diskret matematik

729G04 Programmering och diskret matematik

Programmering grundkurs

Föreläsning 2 Programmeringsteknik och C DD1316

Pythons standardbibliotek

Kap. 8 Relationer och funktioner

Grafer. 1 Grafer. Grunder i matematik och logik (2015) 1.1 Oriktade grafer. Marco Kuhlmann

Föreläsning 7. Träd och binära sökträd

729G04 Programmering och diskret matematik

Datatyper och kontrollstrukturer. Skansholm: Kapitel 2) De åtta primitiva typerna. Typ Innehåll Defaultvärde Storlek

Trädstrukturer och grafer

Problemlösning och funktioner Grundkurs i programmering med Python

Övningshäfte 3: Funktioner och relationer

729G04 Programmering och diskret matematik. Föreläsning 7

Lösningar: Tentamen i Datavetenskapens grunder för D1, SDU, TDV A

TDIU01 - Programmering i C++, grundkurs

Instruktioner - Datortentamen TDDD73 Funktionell och imperativ programmering i Python

TDP015: Lektion 5 - Svar

I kursen i endimensionell analys är mängden av reella tal (eng. real number), R, fundamental.

Diskret matematik, lektion 2

Fuzzy Logic. När oskarpa definitioner blir kristallklara. Åsa Svensson. Linköpings Universitet. Linköping

Föreläsning 5: Grafer Del 1

Föreläsningsanteckningar, Introduktion till datavetenskap HT S4 Datastrukturer. Tobias Wrigstad

MS-A0409 Grundkurs i diskret matematik I

Föreläsning 7. Träd och binära sökträd

MS-A0409 Grundkurs i diskret matematik I

Programmering för Språkteknologer II. Innehåll. Associativa datastrukturer. Associativa datastrukturer. Binär sökning.

Föreläsning 2 Programmeringsteknik och C DD1316. Mikael Djurfeldt

Relationer och funktioner

Digitalitet. Kontinuerlig. Direkt proportionerlig mot källan. Ex. sprittermometer. Elektrisk signal som representerar ljud.

TDIU01 - Programmering i C++, grundkurs

Föreläsning 4 Programmeringsteknik och Matlab DD1312. Logiska operatorer. Listor. Listor, tupler, strängar och forslingor

Grundläggande databehandling ht 2005

Programdesign, databasdesign. Databaser - Design och programmering. Funktioner. Relationsmodellen. Relation = generaliserad funktion.

Föreläsning 9 Exempel

729G04 - Diskret matematik. Lektion 3. Valda lösningsförslag

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

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)

TDDE44 Programmering, grundkurs

Programmering II (ID1019) :00-12:00

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

10. Mängder och språk

729G04 Programmering och diskret matematik. Python 3: Loopar

729G74 IT och programmering, grundkurs. Tema 1, Föreläsning 1 Jody Foo,

(N) och mängden av heltal (Z); objekten i en mängd behöver dock inte vara tal. De objekt som ingår i en mängd kallas för mängdens element.

Relationsalgebra. Varför behöver jag lära mig relationsalgebra?!

Övningshäfte 1: Logik och matematikens språk

729G04 PYTHON 6 JODY FOO. Department of Computer and Information Science (IDA) Linköping University, Sweden

TDDC74 Programmering, abstraktion och modellering DUGGA 2

Mängder. 1 Mängder. Grunder i matematik och logik (2015) 1.1 Grundläggande begrepp. 1.2 Beskrivningar av mängder. Marco Kuhlmann

Föreläsning 10. Grafer, Dijkstra och Prim

Föreläsning 10. Grafer, Dijkstra och Prim

Programmering grundkurs

Föreläsning 8 i kursen Ma III, #IX1305, HT 07. (Fjärde föreläsningen av Bo Åhlander)

Grundläggande logik och modellteori

Föreläsning Datastrukturer (DAT036)

Tenta (TEN3) i kursen 729G04 Programmering och diskret matematik 5 feb 2016, kl 14:00-18:00

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

Algoritmer och datastrukturer, föreläsning 11

Föreläsning 10. Grafer, Dijkstra och Prim

Uppmärkningsspråk. TDP007 Konstruktion av datorspråk Föreläsning 4. Peter Dalenius Institutionen för datavetenskap

Matematik för språkteknologer (5LN445) Institutionen för lingvistik och filologi VT 2014 Författare: Marco Kuhlmann 2013

Sista delen av kursen

Tentamen i. TDDC67 Funktionell programmering och Lisp

Grafer MST Top. sortering Starkt samm. komponenter Kortaste avstånd. Grafalgoritmer 1. Douglas Wikström KTH Stockholm

Föreläsning 7 Datastrukturer (DAT037)

Uppgifter om funktioner

Algoritmer, datastrukturer och komplexitet

RELATIONER OCH FUNKTIONER

Formell logik Kapitel 1 och 2. Robin Stenwall Lunds universitet

Föreläsning 6 Datastrukturer (DAT037)

Introduktion till programmering SMD180. Föreläsning 8: Listor

Programmering I Tobias Wrigstad fredag, 2009 augusti 28

PYTHON SNABBREPETITION MEN FÖRST LITE ALLMÄNT OM PROGRAMMERING 729G04 PYTHON 2. Dagens Python

Programmering II (ID1019) :00-11:00

Tillämpad programmering

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

Tentamen i Introduktion till programmering

729G04 Programmering och diskret matematik

Transkript:

729G74 IT och programmering, grundkurs Tema 2. Föreläsning 3 Jody Foo, jody.foo@liu.se

Föreläsningsöversikt Information i grafstrukturer Diskret matematik Relationer: kopplingar mellan mängder Funktioner som brygga mellan mängder Grafer och träd som informationsstrukturer Python logiska operatorer exempel på användning av while-loopen

Information i grafstrukturer

Exempel Introuppgifter Introuppgift 1 Introuppgift 2 Introuppgift 3 DM-uppg 1 Tema 1 Py-uppg 1 DM-uppgifter DM-uppg 2 Tema 2 Py-uppg 2 Pythonuppgifter DM-uppg 3 Tema 3 Py-uppg 3 Temauppgift 1 Temauppgift 2 Temauppgift 3 Temauppgifter

Mängdrepresentationer av fyrkanterna T = { t 1, t 2, t 3 } D = { d 1, d 2, d 3 } P = { p 1, p 2, p 3 } U t = { u t1, u t2, u t3 } U i = { u i1, u i2 u i3 } U = { d, p, u t, u i }

Hur representerar vi strecken? Varje streck får vara en mängd där start och slut finns med. Vi samlar sedan alla dessa i en mängd: en mängd av streck E = { {d, d1}, {d, d2}... {d1,t1}, {ui, ui1},... }

Relationer kopplingar mellan mängder

Repetition: par, tupler En 2-tupel är ett ordnat par av värden. Notation: (a, b) Eftersom paret är ordnat gäller (a, b) (b, a) En n-tupel är en ändlig sekvens av n stycken komponenter (jmf med element i en mängd) ordnade par (även kallade för enbart par) och n-tupler är tupler.

Kryssprodukt / Kartesisk produkt A = { a, b, c }, B = { 1, 2, 3 } A B är kryssprodukten av A och B (utläses "A kryss A") A B = { (a,1), (a,2), (a,3), (b,1), (b,2), (b,3), (c,1), (c,2), (c,3), } a b 1 2 3 (a,1) (a,2) (a,3) (b,1) (b,2) (b,3) c (c,1) (c,2) (c,3)

Relationer Informellt: en relation mellan två mängder A och B är en mängd som innehåller par med en komponentfrån A och en komponent från B. En relation "på mängden A" är en relation mellan mängden A och sig själv. Om A = { a, b, c } får vi alla möjliga tupler som kan ingå i relationen R på A genom att ta A A.

Relationer En relation mellan två mängder A och B är en delmängd av A B. En relation på mängden A är en delmängd av A A. Notation Låt A och B vara mängder och och R vara en relation mellan A och B. Om (a, b) R kan vi skriva arb som utläses "a är relaterat till b"

Funktioner som bryggor mellan mängder

Funktion En funktion är en "regel" som kopplar varje element i en mängd, till exakt ett element i en annan mängd.

ƒ : A B Funktionen ƒ går från mängden A till mängden B. A är funktionens definitionsmängd, D f. B är funktionens målmängd. Om vi får en mer specifik definition av ƒ, t.ex. ƒ(x) = 2x, så kan vi även beskriva funktionens värdemängd. Värdemängden V f är då { y : y ƒ(x) }. Vidare, om vi vet att A är de naturliga talen N, kan vi säga att värdemängden är { y : y 2x, x N }

Grafer och träd

XML - hierarkisk informationsstruktur XML är en hierarkisk informationsstruktur Alla element förutom rot-elementet har exakt en förälder Rot-elementet har exakt 0 förädrar Detta är en speciell typ av graf.

Grafer En graf är (informellt) en en mängd element och kopplingar mellan dessa element. Trädstrukturen (som vi t.ex. hittar i XML) är en speciell sorts graf

Trädstruktur book author title year contents firstname lastname Tractatus logicophilosophicus 1921 chapter Ludvig Wittgenstein title section Inledning title paragraph 1. Wittgenstein och Tractacus

Från XML till graf a book a author title year b c d b c d Ludvig Wittgenstein Tractatus logicophilosophicus 1921 e f g e f g

Från XML till graf Noder/Hörn: {a, b, c, d, e, f, g} Kanter/bågar: strecken mellan elementen a b c d e f g

Oriktade och riktade grafer

Rotat träd: book author title year contents firstname lastname Tractatus logicophilosophicus 1921 chapter Ludvig Wittgenstein title section Inledning title paragraph 1. Wittgenstein och Tractacus

Grafer på formen G = (V, E)

Matematisk representation av en graf V är en mängd med noder, t.ex. { a, b, c, d } E är en mängd av kanter (strecken). Varje kant är en mängd som innehåller de två noder som kanten går mellan. Exempel: { { a, b }, { a, c } } Vi kan då definiera grafen G som G = (V, E)

Matematisk representation av en riktad graf V är en mängd med noder, t.ex. { a, b, c, d } E är en mängd av kanter (strecken). Om vi vill representera riktning hos kanterna, dvs göra dem till pilar, låter vi dem vara tupler istället för mängder. Exempel: E = { (a, b), (a, c) } Vi kan då definiera den riktade grafen G som G = (V, E)

Grad, ingrad/utgrad

logiska operatorer

Logiska operatorer används för att kombinera jämförelser, t.ex. "om det är 10 grader kallt och det kommer nederbörd" Logiska operatorer i Python: and, or, not

Exempel med and och or # om value är mellan 5 och 10 if value >= 5 and value <= 10: print("value var mellan 5 och 10") # om value är 10 eller 20 if value == 10 or value == 20: print("value var 10 eller 20")

Logiska operatorer opererar på sanningsvärden Jämför 5 + 4 9 med True and True True. De logiska operatorerna and och or tar två argument och returnerar ett svar som antingen är True eller False. x and y: True om både x och y är True. False i alla andra fall. x or y: True om x är True, eller om y är True, eller om x och y är True. Bara False om både x och y är False.

Logiska operatorn not Negerar det sanningsvärde det står framför. not True ger alltså False och not False ger True

Logiska operatorer x y resultat x resultat x and y True True True not x True False True False False False True False False False False x y resultat x or y True True True True False True False True True False False False False True

while-loopen några tillämpningar

Leta efter ett värde i en lista https://trinket.io/python3/81db226056