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,

TDDE44 Programmering, grundkurs

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

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

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 - Diskret matematik. Hemuppgift.

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

Trädstrukturer och grafer

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

729G04 Programmering och diskret matematik

MATLAB. Python. Det finns flera andra program som liknar MATLAB. Sage, Octave, Maple och...

729G04: Inlämningsuppgift i Diskret matematik

729G04 Programmering och diskret matematik

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

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

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

TANA17 Matematiska beräkningar med MATLAB för M, DPU. Fredrik Berntsson, Linköpings Universitet. 8 december 2015 Sida 1 / 22

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

Programmering I Tobias Wrigstad fredag, 2009 augusti 28

TDIU01 - Programmering i C++, grundkurs

Programmering grundkurs

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

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

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

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

729G04 Programmering och diskret matematik

TDIU01 - Programmering i C++, grundkurs

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

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

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

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

729G04 Programmering och diskret matematik. Python 3: Loopar

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

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

Instruktioner - Datortentamen TDDD73 Funktionell och imperativ programmering i Python

TDP015: Lektion 5 - Svar

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

Instruktioner - Datortentamen TDDD73 Funktionell och imperativ programmering i Python

TDDE44 Programmering, grundkurs

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

Kap. 8 Relationer och funktioner

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

Föreläsning 5: Grafer Del 1

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

Föreläsning 6: Introduktion av listor

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

Föreläsning 2 Programmeringsteknik DD1310. Programmering. Programspråk

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

Föreläsning 9 Exempel

Föreläsning 2 Programmeringsteknik och C DD1316

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

Objektorienterad Programkonstruktion. Föreläsning 9 30 nov 2016

MA2047 Algebra och diskret matematik

Datastrukturer, algoritmer och programkonstruktion (DVA104, VT 2015) Föreläsning 6

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

Introduktion till formella metoder Programmeringsmetodik 1. Inledning

Tentamen i Introduktion till programmering

Grundläggande databehandling ht 2005

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

Relationer och funktioner

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

Översikt. Stegvis förfining. Stegvis förfining. Dekomposition. Algoritmer. Metod för att skapa ett program från ett analyserat problem

TDDC74 Programmering, abstraktion och modellering DUGGA 2

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

Föreläsning 6 Datastrukturer (DAT037)

Visual Basic, en snabbgenomgång

729G04 - Diskret matematik. Lektion 4

Skriv i mån av plats dina lösningar direkt i tentamen. Skriv ditt kodnummer längst upp på varje blad.

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

729G74 - IT och programmering, grundkurs. Dugga.

Föreläsning 2 Programmeringsteknik och C DD1316. Programmering. Programspråk

F5 Selektion och iteration. ID1004 Objektorienterad programmering Fredrik Kilander

Bakgrund och motivation. Definition av algoritmer Beskrivningssätt Algoritmanalys. Algoritmer. Lars Larsson VT Lars Larsson Algoritmer 1

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

GRUNDER I VHDL. Innehåll. Komponentmodell Kodmodell Entity Architecture Identifierare och objekt Operationer för jämförelse

Föreläsning 10 Datalogi 1 DA2001. Utskrift på skärmen. Syntax. print( Hej ) Hur är det? Hej. print( Hej,end= ) print( Hur är det? ) HejHur är det?

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

Dagens program. Programmeringsteknik och Matlab. Administrativt. Viktiga datum. Kort introduktion till matlab. Övningsgrupp 2 (Sal Q22/E32)

Föreläsning 2 Programmeringsteknik DD1310. Programmering. Programspråk

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

Pythons standardbibliotek

Övningshäfte 3: Funktioner och relationer

Numeriska Metoder och Grundläggande Programmering för P1, VT2014

Introduktion till programmering SMD180. Föreläsning 2: Variabler, uttryck och satser

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

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

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

Föreläsning Datastrukturer (DAT036)

Föreläsning 7 Datastrukturer (DAT037)

Algoritmer och datastrukturer, föreläsning 11

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

Sista delen av kursen

Ordlistor, filhantering och ut på webben. Linda Mannila

Föreläsning 8 Datastrukturer (DAT037)

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)

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 Datorer och sekventiell information Python logiska operatorer exempel på användning av while-loopen

Information i grafstrukturer

Innehåll i denna kurs som en mängd DM-uppgifter Temauppgift 2 Pythonuppgifter Introuppgift 2 Introuppgift 1 DM-uppg 2 Py-uppg 1 DM-uppg 1 Tema 1 Tema 3 Introuppgifter Temauppgifter Temauppgift 1 Tema 2 DM-uppg 3 Introuppgift 3 Temauppgift 3 Py-uppg 3 Py-uppg 2

Vissa element var kategorier Introuppgifter Pythonuppgifter Introuppgift 1 Introuppgift 2 Introuppgift 3 Py-uppg 1 Py-uppg 2 Py-uppg 3 DM-uppgifter Temauppgifter DM-uppg 1 DM-uppg 2 DM-uppg 3 Temauppgift 1 Temauppgift 2 Temauppgift 3 Hur skulle vi kunna u-rycka denna struktur med hjälp av diskret matema7k? Mängder och tupler?

Py-uppgifter DM-uppgifter Introuppgifter Temauppgifter Temauppg 1 Temauppg 2 Temauppg 3 Py-uppg 1 Py-uppg 2 Py-uppg 3 DM-uppg 1 DM-uppg 2 DM-uppg 3 Introuppg 1 Introuppg 2 Introuppg 3 Py-uppgifter DM-uppgifter Introuppgifter Temauppgifter Temauppg 1 Temauppg 2 Temauppg 3 Py-uppg 1 Py-uppg 2 Pyuppg 3 DM-uppg 1 DM-uppg 2 DM-uppg 3 Introuppg 1 Introuppg 2 Introuppg 3

Py-uppgifter DM-uppgifter Introuppgifter Temauppgifter Temauppg 1 Temauppg 2 Temauppg 3 Py-uppg 1 Py-uppg 2 Pyuppg 3 DM-uppg 1 DM-uppg 2 DM-uppg 3 Introuppg 1 Introuppg 2 Introuppg 3 Py-uppgifter x x x DM-uppgifter x x x Introuppgifter x x x Temauppgifter x x x Temauppg 1 Temauppg 2 Temauppg 3 Py-uppg 1 Py-uppg 2 Py-uppg 3 DM-uppg 1 DM-uppg 2 DM-uppg 3 Introuppg 1 Introuppg 2 Introuppg 3 Hur beskriver vi kryssen?

Alternativ? Temauppgifter Temauppg 1 Temauppg 2 Temauppg 3 Temauppgifter x x x Temauppg 1 Temauppg 2 Temauppg 3 {temauppgifter, temauppg1, temauppg2, temauppg3} (temauppgifter, temauppg1, temauppg2, temauppg3) temauppgifter = {temauppg1, temauppg2, temauppg3} temauppgifter = (temauppg1, temauppg2, temauppg3) {{temauppgifter, temauppg1}, {temauppgifter, temauppg2}, {temauppgifter, temauppg3}} {(temauppgifter, temauppg1), (temauppgifter, temauppg2), (temauppgifter, temauppg3)}

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"

Relationer kopplingar mellan mängder

Vissa element var kategorier Introuppgifter Pythonuppgifter Introuppgift 1 Introuppgift 2 Introuppgift 3 Py-uppg 1 Py-uppg 2 Py-uppg 3 DM-uppgifter Temauppgifter DM-uppg 1 DM-uppg 2 DM-uppg 3 Temauppgift 1 Temauppgift 2 Temauppgift 3 Hur skulle vi kunna u-rycka denna struktur med hjälp av diskret matema7k? Mängder och tupler?

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

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

De flesta beräkningarna och processer i datorer är sekventiella Information läses sekventiellt från start till slut. Vad får detta för konsekvenser?

Vem är längst? A B C

Vem är längst? 120 100 160 A B C

Vem är längst? A 1 2 3 4 5 6 B C D E F G H I

Vem är längst? A B C D E F G H I 1 1 2 71 6 56 5 57 55 84 2 17 89 13 31 22 30 34 65 61 3 69 3 2 62 68 86 8 23 67 4 14 7 2 32 7 11 63 60 16 5 32 2 70 89 3 72 68 59 15 6 53 7 24 8 26 28 67 54 64

Från datorns perspektiv Har datorn en översiktsbild? Kan datorn titta på en hel lista på en gång? Datorn kan "titta" på ett element i taget Vi måste tillhandahålla arbetsminne Datorn kommer inte ihåg något "automatiskt"

while-loopen några tillämpningar

Leta efter ett värde i en lista https://trinket.io/library/trinkets/f5c971c5b4

Filer

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