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

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

MAT1030 Plenumsregning 1

MAT1030 Diskret matematikk

MAT1030 Diskret matematikk

MAT1030 Diskret matematikk

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

MAT1030 Diskret Matematikk

Velkommen til MAT1030!

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

MAT1030 Diskret Matematikk

MAT1030 Diskret matematikk

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

MAT1030 Diskret matematikk

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

MAT1030 Diskret matematikk

MAT1030 Forelesning 2

MAT1030 Plenumsregning 3

MAT1030 Diskret matematikk

MAT1030 Diskret Matematikk

MAT1030 Diskret Matematikk

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

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

MAT1030 Diskret matematikk

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

MAT1030 Diskret Matematikk

Kapittel 4: Logikk (fortsettelse)

Grafteori. MAT1030 Diskret matematikk. Induksjonsbevis

MAT1030 Diskret matematikk

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

MAT1030 Diskret matematikk

Ukeoppgaver fra kapittel 3 & 4

MAT1030 Diskret matematikk

MAT1030 Forelesning 4

Mer om representasjon av tall

Mengder, relasjoner og funksjoner

MAT1030 Diskret Matematikk

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

MAT1030 Diskret matematikk

MAT1030 Diskret matematikk

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

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

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

MAT1030 Diskret Matematikk

MAT1030 Diskret Matematikk

Hash-funksjoner. Introduksjon. Steg 1: Strekkoder. Eksempel. Skrevet av: Martin Strand

Øvingsforelesning 1 Python (TDT4110)

Programmering Høst 2017

Forelesning 30: Kompleksitetsteori

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

MAT1030 Diskret matematikk

Python: Variable og beregninger, input og utskrift. TDT4110 IT Grunnkurs Professor Guttorm Sindre

MAT1030 Forelesning 28

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

MAT1030 Diskret Matematikk

Plenumsregning 9. Diverse ukeoppgaver. Roger Antonsen april Oppgaver fra forelesningene. Oppgave (fra forelesningen 10/3).

Kapittel 3: Litt om representasjon av tall

Ukeoppgaver fra kapittel 10 & Induksjonsbevis

Forelesning 30. Kompleksitetsteori. Dag Normann mai Informasjon. Oppsummering

Kapittel 6: Funksjoner

Ta kontakt i pausen. Viktig at vi kommer i gang med dette arbeidet!

Kapittel 3: Litt om representasjon av tall

MAT1030 Forelesning 23

Hangman. Level. Introduksjon

MAT1030 Diskret matematikk. Kompleksitetsteori. Forelesning 29: Kompleksitetsteori. Dag Normann KAPITTEL 13: Kompleksitetsteori. 7.

Lynkurs i shellprogrammering under Linux

TDT4110 IT Grunnkurs Høst 2016

MAT1030 Diskret Matematikk

MAT1030 Diskret matematikk

MAT1030 Diskret Matematikk

Kapittel 5: Relasjoner

UNIVERSITETET I OSLO

TDT4110 IT Grunnkurs Høst 2016

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

Python: Variable og beregninger, innlesing fra tastatur utskrift til skjerm. TDT4110 IT Grunnkurs Professor Guttorm Sindre

Læringsmål og pensum. if (be): else (not_to_be):

MAT1030 Diskret Matematikk

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

TDT4110 IT Grunnkurs Høst 2015

Beskrivelse av programmeringsspråket Compila15 INF Kompilatorteknikk Våren 2015

Betinget eksekvering og logiske tester i shell

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

MAT1030 Diskret Matematikk

Forelesning 29: Kompleksitetsteori

TDT4110 Informasjonsteknologi grunnkurs: Tema: Betingelser og logiske uttrykk. - 3rd edition: Kapittel 3. Professor Alf Inge Wang

Øvingsforelesning 5 Python (TDT4110)

MAT1030 Diskret matematikk

Oppgave 4.4 Skriv ned setninger som svarer til den konverse og den kontrapositive av følgende utsagn.

Kapittel 5: Relasjoner

Oversikt. INF1000 Uke 1 time 2. Repetisjon - Introduksjon. Repetisjon - Program

Kort om meg. INF1000 Uke 2. Oversikt. Repetisjon - Introduksjon

Øvingsforelesning 5 Python (TDT4110)

TDT4110 Informasjonsteknologi grunnkurs: Tema: Betingelser og logiske uttrykk Utgave 3: Kap. 3

if (be): else (not_to_be): TDT4110 Informasjonsteknologi grunnkurs: Tema: Betingelser og logiske uttrykk Utgave 3: Kap.

Norsk informatikkolympiade runde

MAT1030 Forelesning 25

TDT4105 Informasjonsteknologi, grunnkurs. Matlab 5: Løkker (FOR og WHILE) Matlab 6: Problemløsning / Algoritmer

Norsk informatikkolympiade runde. Sponset av. Uke 46, 2016

MAT1030 Forelesning 14

Transkript:

Velkommen til plenumsregning for MAT1030 MAT1030 Diskret matematikk Plenumsregning 1: Kapittel 1 Roger Antonsen Matematisk Institutt, Universitetet i Oslo 17. januar 2008 Torsdager 10:15 12:00 Gjennomgang av ukeoppgaver Gjennomgang av eksempler fra boka Litt repetisjon fra forelesningen Spørsmål og svar Forsøk på oppgavene selv først! MAT1030 Diskret matematikk 17. januar 2008 2 Repetisjon: Algoritmer og pseudokode Eksempel fra boka Eksempel 1.1.1 Skriv en algoritme som regner ut arealet av en sirkel, gitt radiusen. En algoritme er en oppskrift som forteller oss hvordan vi skritt for skritt skal kunne oppnå et resultat eller løse et problem. Det skal ikke kreves intelligens eller forstå for å følge den. En pseudokode er en måte å beskrive en algoritme på. Hvert steg i algoritmen skal være beskrevet på en entydig måte. 1. Input r [r er radiusen til sirkelen.] 2. areal πr 2 3. Output areal Hvert steg i algoritmen er nummerert. Kommentarer skrives mellom []. Symbolet betegner tilordning. MAT1030 Diskret matematikk 17. januar 2008 3 MAT1030 Diskret matematikk 17. januar 2008 4

Repetisjon: Kontrollstrukturer Repetisjon: Kontrollstrukturer For-do En kontrollstruktur brukes for å styre hvordan, og hvorvidt, de enkle instruksjonene i en pseudokode skal utføres. 1. sum 0 2. For i = 1 to 6 do 2.1. sum sum + i Steg sum i - 21 - If-then 1. If x < 0 then 1.1. x x While-do 1. While svar 1 do 1.1. Input svar If-then- 1. If x 0 then 1.1. y x 1.2. Output x fins ikke Repeat-until 1. i 0 2. Repeat 2.1. i i + 1 2.2. Input x i until x i = 0 MAT1030 Diskret matematikk 17. januar 2008 5 MAT1030 Diskret matematikk 17. januar 2008 6 Eksempel 1.2.1/1.2.2 Finn det minste tallet i en liste av tall. 1. Input the number of values n 2. Input the list of numbers x 1,..., x n 3. min x 1 4. For i = 2 to n do 4.1. If x i < min then 4.1.1. min x i 5. Output min MAT1030 Diskret matematikk 17. januar 2008 7 MAT1030 Diskret matematikk 17. januar 2008 8

Reserverte ord og utrykk i pseudokode 1. Input the number of values n 2. Input the list of numbers x 1,..., x n 3. min x 1 4. For i = 2 to n do 4.1. If x i < min then 4.1.1. min x i 5. Output min Steg min i n x 1 x 2 x 3 5 4-3 5 4 8 If then For to do While Repeat until and or not Input Output true false [] (eller {} i boka) vanlig matematiske utrykk (f.eks. x < 0 og x) MAT1030 Diskret matematikk 17. januar 2008 9 MAT1030 Diskret matematikk 17. januar 2008 10 Utkast 1 Eksempel 1.2.3 Lag en algoritme som sjekker om en streng c 1 c 2... c n av n tegn består av kun sifre, eller om ikke-sifre forekommer, og skriv ut en passende melding. Hvis input er 12345 skal algoritmen returnere meldingen: Strengen inneholder kun sifre. Hvis input er 123@45 skal algoritmen returnere meldingen: Strengen inneholder tegn som ikke er sifre. 1. i 1; ikkesiffer oppdaget false 2. Repeat 2.1. If c i ikke er et siffer then 2.1.1. ikkesiffer oppdaget true 2.2. i i + 1 until ikkesiffer oppdaget = true Identifikatorer/variable skrives i kursiv uten mellomrom. ikkesiffer oppdaget kalles gjerne for en logisk (eller Boolsk) variabel, siden den kun vil ta verdiene true eller false. Kunne ha skrevet until ikkesiffer oppdaget i siste linje. Denne vil ikke terminere hvis strengen består av kun sifre. MAT1030 Diskret matematikk 17. januar 2008 11 MAT1030 Diskret matematikk 17. januar 2008 12

Utkast 2 1. i 1; ikkesiffer oppdaget false 2. Repeat 2.1. If c i ikke er et siffer then 2.1.1. ikkesiffer oppdaget true 2.2. i i + 1 until ikkesiffer oppdaget = true or i = n + 1 Hvis alle tegn er sifre vil algoritmen terminere når verdien til i er n + 1. Nå gjenstår Input og Output. Utkast 3 1. Input n 2. Input c 1 c 2... c n 3. i 1; ikkesiffer oppdaget false 4. Repeat 4.1. If c i ikke er et siffer then 4.1.1. ikkesiffer oppdaget true 4.2. i i + 1 until ikkesiffer oppdaget = true or i = n + 1 5. If ikkesiffer oppdaget = true then 5.1. Output Strengen inneholder tegn som ikke er sifre. 5.2. Output Strengen inneholder kun sifre. Men, hva hvis n = 0? Da vil steg 4.1 ikke kunne utføres. MAT1030 Diskret matematikk 17. januar 2008 13 MAT1030 Diskret matematikk 17. januar 2008 14 Kommentarer 1. Input n Repeat-until-løkken blir alltid utført minst én gang. Et alternativ er å bruke en While-løkke. Da utføres testen i begynnn i stedet for på slutten, som med Repeat-until. 2. Input c 1 c 2... c n 3. i 0; ikkesiffer oppdaget false 4. While ikkesiffer oppdaget = false and i < n do 4.1. i i + 1 4.2. If c i ikke er et siffer then 4.2.1. ikkesiffer oppdaget true 5. If ikkesiffer oppdaget = true then 5.1. Output Strengen inneholder tegn som ikke er sifre. 5.2. Output Strengen inneholder kun sifre. MAT1030 Diskret matematikk 17. januar 2008 15 MAT1030 Diskret matematikk 17. januar 2008 16

Eksempel 1.3.1 Lag en algoritme som regner ut x n, hvor x er et reellt tall og n er et positivt heltall. (Vi antar at vi har multiplikasjon, men ikke eksponensiering.) Eksempel 1.3.2 Lag en algoritme som bytter verdien til to variable. Feil Riktig 1. x y 2. y x 1. temp x 2. x y 1. Input x, n 3. y temp 2. svar x 3. For i = 1 to n 1 do 3.1. svar svar x 4. Output svar x n i svar 2 3-8 x y 2 3 x y 3 3 x y temp 3 2 2 MAT1030 Diskret matematikk 17. januar 2008 17 MAT1030 Diskret matematikk 17. januar 2008 18 Eksempel 1.3.3 Søkere til en jobb tar en test med 20 spørsmål. Lag en algoritme som returnerer en liste av jobbsøkere (identifisert med tall), deres poengsum og en beskjed om hvorvidt de vurderes for stillingen (de som har mer enn 16 poeng) eller settes på venteliste (de med poengsum fra 12 til 15). Vi bruker antall søkere for å betegne antall søkere. Vi bruker en For-do-løkke, fra 1 til antall søkere, og gjør det samme for hver søker. De 20 svarene som søker i har avgitt betegner vi med a i,1, a i,2,...,a i,20. Det riktige svaret på spørsmål q betegner vi med c q. Vi bruker enda en For-do-løkke for å sjekke svarene. 1. Input antall søkere 2. For i = 1 to antall søkere do 2.1. score 0 2.2. For q = 1 to 20 do 2.2.1. Input a i,q [a i,q er søker is svar på spørsmål q.] 2.2.2. If a i,q = c q then 2.2.2.1. score score + 1 2.3. Output i, score 2.4. If score 16 then 2.4.1. Output Anbefalt if score 12 then 2.4.2. Output Venteliste MAT1030 Diskret matematikk 17. januar 2008 19 MAT1030 Diskret matematikk 17. januar 2008 20

En praktisk forkort Pseudokode 1. If x > 0 then 1.1. Output Større 1.2. If x < 0 then 1.2.1. Output Mindre Forkortet pseudokode 1. If x > 0 then 1.1. Output Større if x < 0 then 1.2. Output Mindre MAT1030 Diskret matematikk 17. januar 2008 21