Vi som skal undervise. MAT1030 Diskret matematikk. Hva er diskret matematikk? Hva er innholdet i MAT1030?

Like dokumenter
Forelesning 1. Algoritmer, pseudokoder og kontrollstrukturer. Dag Normann januar Vi som skal undervise. Hva er diskret matematikk?

MAT1030 Diskret Matematikk

Velkommen til MAT1030!

Velkommen til plenumsregning for MAT1030. MAT1030 Diskret matematikk. Repetisjon: Algoritmer og pseudokode. Eksempel fra boka. Eksempel

MAT1030 Diskret matematikk

KONTROLLSTRUKTURER. MAT1030 Diskret matematikk. Kontrollstrukturer. Kontrollstrukturer. Eksempel (Ubegrenset while-løkke)

MAT1030 Diskret Matematikk

Plenumsregning 1. Kapittel 1. Roger Antonsen januar Velkommen til plenumsregning for MAT1030. Repetisjon: Algoritmer og pseudokode

Plenumsregning 1. MAT1030 Diskret Matematikk. Repetisjon: Algoritmer og pseudokode. Velkommen til plenumsregning for MAT1030

MAT1030 Diskret Matematikk

Forelesning 2. Flere pseudokoder. Representasjoner av tall. Dag Normann januar 2008 KONTROLLSTRUKTURER. Kontrollstrukturer. Kontrollstrukturer

MAT1030 Plenumsregning 1

MAT1030 Forelesning 2

MAT1030 Diskret matematikk Forelesningsnotater Våren Universitetet i Oslo

MAT1030 Diskret matematikk

Generell induksjon og rekursjon. MAT1030 Diskret matematikk. Generell induksjon og rekursjon. Generell induksjon og rekursjon.

Repetisjon. MAT1030 Diskret Matematikk. Oppsummering. Oppsummering. Forelesning 15: Rekursjon og induksjon. Roger Antonsen

VELKOMMEN TIL MAT-INF1100

Logikk og Mengdelære. Dag Normann Universitetet i Oslo Matematisk Institutt Boks Blindern 0316 Oslo

Forelesning 14. Rekursjon og induksjon. Dag Normann februar Oppsummering. Oppsummering. Beregnbare funksjoner

MAT1030 Diskret matematikk

Innledning. MAT1030 Diskret matematikk. Kapittel 11. Kapittel 11. Forelesning 33: Repetisjon

MAT1030 Diskret Matematikk Forelesningsnotater Våren 2010

MAT1030 Diskret matematikk

Mengder, relasjoner og funksjoner

MAT1030 Diskret matematikk

Kapittel 4: Logikk (fortsettelse)

MAT1030 Diskret Matematikk

MAT1030 Diskret Matematikk Forelesningsnotater Våren 2010

Forelesning 25. MAT1030 Diskret Matematikk. Litt repetisjon. Litt repetisjon. Forelesning 25: Trær. Roger Antonsen

Generell rekursjon og induksjon. at(n) + bt(n 1) + ct(n 2) = 0

MAT1030 Diskret matematikk

I Kapittel 3 så vi på hvordan data, som hele tall og reelle tall, kan representeres som bitsekvenser

Kapittel 6: Funksjoner

MAT1030 Diskret Matematikk Forelesningsnotater Våren 2010

Oppsummering av Uke 3. MAT1030 Diskret matematikk. Binære tall. Oppsummering av Uke 3

Oppsummering av Kapittel 3. MAT1030 Diskret matematikk LOGIKK. Logikk. Forelesning 5: Logikk

MAT1030 Diskret Matematikk

MAT1030 Diskret matematikk

MAT1030 Diskret matematikk

MAT1030 Forelesning 28

MAT1030 Forelesning 4

Forelesning 30: Kompleksitetsteori

MAT1030 Diskret matematikk

Oppsummering. MAT1030 Diskret matematikk. Relasjoner. Relasjoner. Forelesning 11: Relasjoner

MAT1030 Diskret matematikk

Oppgaver fra forelesningene. MAT1030 Diskret matematikk. Oppgave (fra forelesningen 10/3) Definisjon. Plenumsregning 9: Diverse ukeoppgaver

Forelesning 33. Repetisjon. Dag Normann mai Innledning. Kapittel 11

MAT1030 Diskret matematikk

MAT1030 Diskret Matematikk Forelesningsnotater Våren 2010

Rest fra sist. MAT1030 Diskret Matematikk. Rest fra sist. Rest fra sist. Eksempel (Fortsatt) Eksempel. Forelesning 18: Generell rekursjon og induksjon

MAT1030 Diskret matematikk

MAT1030 Diskret matematikk

MAT1030 Forelesning 19

Forelesning 27. MAT1030 Diskret Matematikk. Bevistrær. Bevistrær. Forelesning 27: Trær. Roger Antonsen. 6. mai 2009 (Sist oppdatert: :28)

VELKOMMEN TIL MAT-INF1100(L) Knut Mørken Rom 1033, Niels Henrik Abels hus

Vektede grafer. MAT1030 Diskret matematikk. En kommunegraf. En kommunegraf. Oppgave

Kapittel 6: Funksjoner

Forelesning 25. MAT1030 Diskret Matematikk. Litt repetisjon. Litt repetisjon. Forelesning 25: Trær. Dag Normann

MAT1030 Forelesning 18

MAT1030 Diskret Matematikk

MAT1030 Forelesning 14

VELKOMMEN TIL MAT-INF1100(L) Knut Mørken Rom 1033, Niels Henrik Abels hus

MAT1030 Diskret Matematikk

Kapittel 3: Litt om representasjon av tall

Kapittel 5: Relasjoner

Kapittel 5: Mengdelære

MAT1030 Diskret Matematikk

Forelesning 11. Relasjoner. Dag Normann februar Oppsummering. Relasjoner. Relasjoner. Relasjoner

MAT1030 Diskret matematikk

MAT1030 Diskret Matematikk

Kapittel 5: Mengdelære

Forelesning 13. Funksjoner. Dag Normann februar Opphenting. Opphenting. Opphenting. Opphenting

Forelesning 30. Kompleksitetsteori. Dag Normann mai Informasjon. Oppsummering

MAT1030 Diskret Matematikk

MAT1030 Diskret Matematikk

Kapittel 5: Relasjoner

MAT1030 Forelesning 25

Repetisjon og mer motivasjon. MAT1030 Diskret matematikk. Repetisjon og mer motivasjon

Mer om representasjon av tall

Kapittel 6: Funksjoner

MAT1030 Forelesning 14

Forelesning 31: Repetisjon

MAT1030 Diskret Matematikk

MAT1030 Diskret Matematikk

TMA 4140 Diskret Matematikk, 1. forelesning

MAT1030 Diskret matematikk

Forelesning 29: Kompleksitetsteori

Forelesning 31. Dag Normann mai Informasjon. Kompleksitetsteori

Kapittel 4: Logikk. MAT1030 Diskret Matematikk. Oppsummering. En digresjon. Forelesning 6: Utsagnslogikk og predikatlogikk.

Oppsummering. MAT1030 Diskret matematikk. Oppsummering. Oppsummering. Eksempel

MAT1030 Diskret matematikk

Oppsummering. MAT1030 Diskret matematikk. Oppsummering. Oppsummering. Forelesning 23: Grafteori

Grafteori. MAT1030 Diskret matematikk. Induksjonsbevis

MAT1030 Diskret matematikk

Kapittel 5: Mengdelære

MAT1030 Diskret Matematikk

Forelesning 23. MAT1030 Diskret Matematikk. Repetisjon og mer motivasjon. Repetisjon og mer motivasjon. Forelesning 23: Grafteori.

Kapittel 4: Mer predikatlogikk

Transkript:

Vi som skal undervise MAT1030 Diskret matematikk Forelesning 1: Algoritmer, pseudokoder og kontrollstrukturer Dag Normann Matematisk Institutt, Universitetet i Oslo 14. januar 2008 Dag Normann Roger Antonsen Christian Schaal Robin Bjørnetun Jacobsen http://www.uio.no/studier/emner/matnat/math/mat1030/v08/ MAT1030 Diskret matematikk 14. januar 2008 2 Hva er diskret matematikk? Hva er innholdet i MAT1030? Diskret matematikk er et samlebegrep for matematikk hvor kontinuitet, geometri eller algebra ikke spiller noen stor rolle. Diskret matematikk er matematikken tilpasset en digital verden, mens mye annen matematikk er tilpasset en analog verden. I MAT1030 skal vi ta for oss temaer som er relevante for en grunnleggende forståelse av bruk av, og virkemåte til, datamaskiner. Algoritmer: Hva og hvordan. Representasjon av tall. Hvordan representeres tall og i en datamaskin. Logikk: Relevans for informatikk. Innføring i utsagnslogikk (Boolesk logikk). Litt om bevisteknikker. MAT1030 Diskret matematikk 14. januar 2008 3 MAT1030 Diskret matematikk 14. januar 2008 4

Hva legger vi vekt på? Mengdelære: Grunnleggende begreper Relasjoner. Funksjoner. Induksjon og rekursjon. Kombinatorikk. Grafteori med anvendelser. Litt om trær. Kompleksitet av algoritmer. Hvilken relevans har dette stoffet for studier i informatikk? Hvordan kan vi finne algoritmer for å løse de problemene som presenterer seg? Vi kommer til å arbeide med algoritmer i tilknytning til logikk i større grad enn det boka gjør, og vi vil utvikle en del ekstra undervisningsmateriale underveis. MAT1030 Diskret matematikk 14. januar 2008 5 MAT1030 Diskret matematikk 14. januar 2008 6 Før vi begynner Noen viktige datoer MAT1030 er under omlegging, og vi trenger en kontinuerlig tlbakemelding på årets opplegg. Vi trenger to eller flere kontaktpersoner vi kan ha møter med gjennom semesteret. Vi skal gjennomføre en emneevaluering i samarbeid med kontaktpersonene. Valg av kontaktpersoner finner sted neste onsdag. 29.02.2008: Innlevering av Oblig 1. 25.04.2008: Innlevering av Oblig 2. 10.06.2008, 09.00-12.00: Eksamen. MAT1030 Diskret matematikk 14. januar 2008 7 MAT1030 Diskret matematikk 14. januar 2008 8

Viktig informasjon til alle studenter Husk: 1. februar er siste frist for: betaling av semesteravgift semesterregistrering melding til eksamen å søke om tilrettelegging ved eksamen Dersom du har gjort alt riktig skal det se slik ut i studentweb: ALGORITMER En algoritme er en oppskrift som forteller oss hvordan vi skritt for skritt skal kunne oppnå et resultat eller løse et problem. Eksempler på algoritmer kan være: Kakeoppskrifter. Automatisk innsjekking på fly. Beskrivelsen av hvordan man utfører divisjon mellom flersifrede tall. Oppskrift på hvordan man løser opp parenteser og trekker sammen flerleddede uttrykk i algebra. Dersom det ikke står Vår 2008 under henholdsvis Betalt semesteravgift og Semesterregistrert risikerer du å ikke få ta eksamen og å miste din studierett. Har du problemer, ta kontakt med MN studieinfosenter i Vilhelm Bjerknes hus FØR 1. februar. Telefon: 22 85 63 44 e-post: studieinfo@matnat.uio.no MAT1030 Diskret matematikk 14. januar 2008 9 MAT1030 Diskret matematikk 14. januar 2008 10 Algoritmer Algoritmer Hva er det som kjennetegner en algoritme? Det skal ikke kreves intelligens eller forståelse for å følge den. Du skal ikke kunne kjemi for å bake en kake. Du skal kunne sjekke inn på fly selv om du har teknologifobi. Det er ikke nødvendig å forstå hva man gjør når man utfører en divisjon, regnetrening er det som trengs. Mange lærer seg hvordan de kan løse oppgaver i skolealgebra, uten å ha peiling på hva de egentlig driver med. Vi skal fokusere på algoritmer som - beregner funksjoner - avgjør om et objekt eller en datamengde har en gitt egenskap eller ikke - organiserer gitte data på en ønsket måte (eksempelvis ordner dataene) - utfører andre oppgaver i tilknytning til matematikk eller informatikk som vi ønsker å kunne få utført. MAT1030 Diskret matematikk 14. januar 2008 11 MAT1030 Diskret matematikk 14. januar 2008 12

Algoritmer PSEUDOKODER Hvem ønsker vi å kommunisere algoritmen til, og hvordan skal det gjøres? 1. Kakebakere, flypassasjerer og liknende. 2. Skolebarn/ungdom og studenter som skal lære matematikk. 3. Teknisk kyndige medmennesker som skal forstå algoritmen. 4. Datamaskiner som skal utføre algoritmen for oss. I MAT1030 er gruppe 3 den mest aktuelle. En pseudokode er en måte å beskrive en algoritme p å. Pseudokoden beskriver hvordan algoritmen kan følges trinn for trinn. En pseudokode formuleres i et språk som er mer teknisk enn naturlige språk og mindre teknisk enn programmeringsspråk. Vi skal bruke pseudokoder på samme måte som i læreboka. Man må se eksempler, og øve, for å bli flink til å skrive pseudokoder. MAT1030 Diskret matematikk 14. januar 2008 13 MAT1030 Diskret matematikk 14. januar 2008 14 Pseudokoder Pseudokoder Eksempel (Areal av trekant) 1. Input h [h er høyden i trekanten.] 2. Input g [g er lengden på grunnlinjen i trekanten.] 3. areal h g 2 4. Output areal Vi kunne ha skrevet en annen pseudokode for å beregne det samme: Eksempel 1. Input h 2. Input g 3. areal h g 4. areal areal 2 5. Output areal MAT1030 Diskret matematikk 14. januar 2008 15 MAT1030 Diskret matematikk 14. januar 2008 16

Pseudokoder Så langt består en pseudokode av en nummerert liste instruksjoner hvor hver instruksjon har et av følgende tre formater: Gi en input-verdi til en variabel. Gi en variabel en ny verdi, som en funksjon av de eksisterende verdiene på variablene. Gi verdien til en av variablene som output, det vil si resultatet av algoritmen. Vi kan bruke hva vi vil som variable, eksempelvis er h, g og areal variablene i pseudokodene vi har sett på. Pseudokoder Hvis vi skal beregne verdien av en formel for areal, volum, hastighet etter en viss tids fritt fall og liknende, kan vi bruke pseudokoder slik vi har sett dem til nå. Det finnes imidlertid algoritmer, og tilhørende kontrollstrukturer, for å beregne - x fra x - n! fra n - Ledd nummer n i Fibonacci-følgen og for å undersøke om 1, 1, 2, 3, 5, 8, 13, 21,.... - Parentesene i et algebraisk uttrykk er satt på lovlig måte - Et naturlig tall er et primtall MAT1030 Diskret matematikk 14. januar 2008 17 MAT1030 Diskret matematikk 14. januar 2008 18 KONTROLLSTRUKTURER En kontrollstruktur brukes for å styre hvordan, og hvorvidt, de enkle instruksjonene i en pseudokode skal utføres. Vi skal innføre de kontrollstrukturene det er aktuelt å bruke i dette emnet via eksempler på bruk. Disse eksemplene skal supplere eksemplene fra læreboka. Vi skal benytte oss av de samme kontrollstrukturene som boka. Eksempel (Absoluttverdi) Vi skal gi en pseudokode for å beregne absoluttverdien til et tall x: 1 Input x 2 If x < 0 then 2.1 x x 3 Output x MAT1030 Diskret matematikk 14. januar 2008 19 MAT1030 Diskret matematikk 14. januar 2008 20

Eksempel (Avstand) Vi skal gi en pseudokode for å beregne avstanden mellom to heltall. 1 Input n [n et heltall] 2 Input m [m et heltall] 3 If n < m then 3.1 x m n else 3.2 x n m 4 Output x Vi skal se tre eksempler på hvordan vi kan skrive pseudokoder for algoritmer som beregner n! = 1 2... n. I det ene eksemplet bruker vi en while-løkke, i det andre en repeat-until-løkke og i det siste en for-løkke. MAT1030 Diskret matematikk 14. januar 2008 21 MAT1030 Diskret matematikk 14. januar 2008 22 Eksempel (while-løkke) 1 Input n [n 1, n heltall] 2 x 1 3 i 1 4 While i n do 4.1 x x i 4.2 i i + 1 5 Output x Eksempel (repeat-until-løkke) 1 Input n [n 1, n heltall] 2 x 1 3 i 1 4 Repeat 4.1 x x i 4.2 i i + 1 until i = n + 1 5 Output x MAT1030 Diskret matematikk 14. januar 2008 23 MAT1030 Diskret matematikk 14. januar 2008 24

Eksempel (for-løkke) 1 Input n [n 1, n heltall] 2 x 1 3 i 1 4 For i = 1 to n do 4.1 x x i 5 Output x Bytte av verdi på variablene, hvordan vi ikke skal gjøre det og hvordan vi skal gjøre det. Eksempel (Feil måte) 1 y x 2 x y Eksempel (Riktig måte) 1 hjelp x 2 x y 3 y hjelp MAT1030 Diskret matematikk 14. januar 2008 25 MAT1030 Diskret matematikk 14. januar 2008 26