Bruk piazza for å få rask hjelp til alles nytte!

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

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

Største primtallsfaktor i tall

TDT4105 Informasjonsteknologi, grunnkurs. Introduksjon til programmering i Matlab

TDT4105 Informasjonsteknologi, grunnkurs Matlab: Betinget programutførelse (valg: IF og SWITCH) og løkker (FOR)

TDT4110 Informasjonsteknologi grunnkurs: Eksempler. Mangekanter

TDT4105 Informasjonsteknologi, grunnkurs. Mer om funksjoner: - rekursive funksjoner

Oppsummering fra sist

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

Python: Løkker. TDT4110 IT Grunnkurs Professor Guttorm Sindre

Python: Løkker. TDT4110 IT Grunnkurs Professor Guttorm Sindre

Med løkke: Læringsmål og pensum. TDT4110 Informasjonsteknologi grunnkurs: Tema: Løkker/Sløyfer Utgave 3: Kap. 4 Utgave 2: Kap. 5. Mål.

TDT4105 Informasjonsteknologi, grunnkurs

Noen innebygde funksjoner - Vektorisering

Noen innebygde funksjoner - Vektorisering

Læringsmål og pensum. Oversikt

TDT4105 Informasjonsteknologi, grunnkurs

Læringsmål og pensum. Intro løkker. Mål Lære om begrepet løkker Lære om bruk av while-løkke Lære om bruk av for-løkke Pensum. Kapittel 4.

TDT4110 IT Grunnkurs Høst 2014

TDT4110 Informasjonsteknologi grunnkurs: Tema: Løkker. - 3rd edition: Kapittel 4. Professor Alf Inge Wang

Python: Løkker. TDT4110 IT Grunnkurs Professor Guttorm Sindre

MAT1030 Diskret matematikk

Kapittel 4: Mer predikatlogikk

Binærfiler versus tekstfiler

TDT4105 Informasjonsteknologi, grunnkurs

TDT4105 Informasjonsteknologi, grunnkurs MatLab: Filbehandling - load, save, type - fopen, fgetl, feof, fprintf, fclose

Øvingsforelesning 3 Python (TDT4110)

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

MAT1030 Plenumsregning 3

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

TDT4110 Informasjonsteknologi, grunnkurs Uke 35 Introduksjon til programmering i Python

TDT4127 Programmering og Numerikk

TDT4105 IT Grunnkurs Høst 2014

TDT4105 Informasjonsteknologi, grunnkurs (ITGK)

TDT4110 IT Grunnkurs Høst 2012

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

TDT4105 Informasjonsteknologi, grunnkurs (ITGK)

Læringsmål og pensum. Oppgave

Læringsmål og pensum

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

Løsningsforslag Øving 5 TMA4140 Diskret matematikk Høsten 2010

NB: Vi trenger alle sitteplassene, så ikke la setene stå tomme i mellom dere! Fyll opp forfra, fra midten, er dere snill

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

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

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

TDT4105 Informasjonsteknologi, grunnkurs - Foreleser 1: MTBYGG, MTIØT, MTKJ, MTMART, MTMT, MTPROD

Primtall. Et heltall p > 0 kalles et primtall hvis kun 1 og p går opp i p.

print("hurra!") som ikke har innrykk, er ikke del av løkka, og vil derfor bare bli utført en gang, etter at løkka er ferdig.

Øvingsforelesning i Matlab (TDT4105)

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

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

MAT1030 Diskret Matematikk

NB: Vi trenger alle sitteplassene, så ikke la setene stå tomme i mellom dere! Fyll opp forfra, fra midten, er dere snill

TDT4105 Informasjonsteknologi, grunnkurs. Introduksjon til programmering i Matlab. Forelesningsinfo. Tider Mandag Tirsdag Onsdag Torsdag Fredag

Repetisjon Novice Videregående Python PDF

Tirsdag 21/11. Onsdag 24/11. Tirsdag 12/12. TDT4110 Informasjonsteknologi grunnkurs: Tema: Et større case

Mål. Pensum. TDT4110 Informasjonsteknologi grunnkurs: Tema: Et større case. Terje Rydland - IDI/NTNU. Lære å lage større og sammensatte programmer

TDT4105/TDT4110 Informasjonsteknologi grunnkurs:

Leksjon 3. Kontrollstrukturer

Datastrukturer (kap. 8)

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

MAT1030 Diskret matematikk

NB: Vi trenger alle sitteplassene, så ikke la setene stå tomme i mellom dere! Fyll opp forfra, fra midten, er dere snill

MAT1030 Diskret matematikk

MAT1030 Plenumsregning 1

Øvingsforelesning 1 Python (TDT4110)

MAT1030 Diskret Matematikk

Velkommen til MAT1030!

TDT4105/TDT4110 Informasjonsteknologi grunnkurs:

MAT1030 Forelesning 8

TDT4110 IT Grunnkurs Høst 2015

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

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

Kapittel 4: Mer predikatlogikk

INF3140 Modeller for parallellitet INF3140/4140: Programanalyse

MAT1030 Forelesning 28

Python: Valg og betingelser. TDT4110 IT Grunnkurs Professor Guttorm Sindre

Øvingsforelesning i Matlab TDT4105

Norsk informatikkolympiade runde

Øvingsforelesning 5 Python (TDT4110)

MAT1030 Forelesning 2

Kvantorer. MAT1030 Diskret matematikk. Kvantorer. Kvantorer. Eksempel. Eksempel (Fortsatt) Forelesning 8: Predikatlogikk, bevisføring

MAT1030 Diskret matematikk

MAT1030 Diskret Matematikk

MAT1030 Diskret matematikk

MAT1030 Diskret matematikk

MAT1030 Diskret matematikk

O-notasjon og kompleksitet

Palindrom - iterativt

MAT1030 Diskret matematikk

Læringsmål og pensum. v=nkiu9yen5nc

MAT1030 Diskret matematikk

Øvingsforelesning TDT4105 Matlab

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

VELKOMMEN TIL MAT-INF 1100

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

Leksjon 3. Kontrollstrukturer

Pensum: Starting out with Python

Største felles divisor. (eng: greatest common divisors)

Transkript:

Kunnskap for en bedre verden 1 TDT4105 Informasjonsteknologi, grunnkurs Matlab 5: Løkker (FOR og WHILE) Amanuensis Terje Rydland Kontor: ITV-021 i IT-bygget vest (Gløshaugen) Epost: terjery@idi.ntnu.no Tlf: 735 91845 TDT4105 IT Grunnkurs 1 2 Uke39_Matlab 16. september 2015 Bruk piazza for å få rask hjelp til alles nytte! Ikke registrert deg? Gå inn på piazza.com og trykk på Sign up Allerede registrert deg? Gå inn på piazza.com og still spørsmål! 2 Uke39_Matlab 16. september 2015

3 Løkker FOR-setningen WHILE-setningen Kapittel 5 i Matlab-boka Læringsmål Neste time: Algoritmeformulering 3 Uke39_Matlab 16. september 2015 4 FOR-løkker FOR <tellevariabel> = <start>:<inkrement>:<slutt> <setninger> END Setningene i løkke-kroppen gjentas en gang for hver verdi av tellevariabelen FOR <tellevariabel> = <tabell> END <setninger> Løkkekroppen utføres en gang for hvert element i tabell 4 Uke39_Matlab 16. september 2015

5 Flytdiagram - gangetabell 5 Uke39_Matlab 16. september 2015 6 gangetabell.m 6 Uke39_Matlab 16. september 2015

7 Telle forekomster av verdi i tabell Finne størrelsen på tabellen (dimensjonene) size(<tabell>) returnerer antall rader og kolonner i <tabell>. [rader, kolonner] = size(<tabell>) Ingen forekomster i utgangspunktet (antall = 0) Gå så gjennom tabellen Rad for rad, kolonne for kolonne Øke antall med en for hvert treff Har resultatet (i antall) når alle elementene er sjekket 7 Uke39_Matlab 16. september 2015 8 8 Uke39_Matlab 16. september 2015

9 9 Uke39_Matlab 16. september 2015 10 Summerer de 10 minste primtallene primtallsum.m 10 Uke39_Matlab 16. september 2015

11 Programkjøring 11 Uke39_Matlab 16. september 2015 12 WHILE <logisk betingelse> <setninger> END WHILE-løkken Løkke-kroppen gjentas 0-N ganger Hvis og så lenge betingelsen er sann Løkkekroppen må påvirke betingelsen (etter hvert) Antall iterasjoner er ofte ukjent på forhånd WHILE er mer generell enn FOR-løkken 12 Uke39_Matlab 16. september 2015

13 Gjett et hemmelig tall gjett_tall.m 13 Uke39_Matlab 16. september 2015 14 14 Uke39_Matlab 16. september 2015

15 WHILE flytdiagram 15 Uke39_Matlab 16. september 2015 16 Leibniz formel Beregne pi Går i løkke, legger til et nytt ledd for hver iterasjon Når kan vi stoppe? Når vi har lagt til et (fast) antall ledd. Når det blir liten nok forskjell på to etterfølgende estimater. 16 Uke39_Matlab 16. september 2015

17 pifunksjon 17 Uke39_Matlab 16. september 2015 18 Test-skript: testpifunksjonen.m 18 Uke39_Matlab 16. september 2015

19 Testkjøring 19 Uke39_Matlab 16. september 2015 20 Tidtaking i Matlab tic starter klokka toc stopper klokka Se help tic / toc for mer informasjon NB! Ikke veldig nøyaktig. Datamaskinen kan bruke tid på noe annet. 20 Uke39_Matlab 16. september 2015

21 Evige løkker Løkker som aldri terminerer (avslutter) while true while <noe som aldri blir usant> ctrl-c (trykk ned både ctrl og C, samtidig) Avslutter det som kjører i Matlab Ting å passe på: Oppsett av tilstand før løkka Endring av tilstand i løkkekroppen MÅ ha et resonnement for terminering etter hvert 21 Uke39_Matlab 16. september 2015 22 Kunnskap for en bedre verden TDT4105 Informasjonsteknologi, grunnkurs Matlab 6: Problemløsning / Algoritmer Amanuensis Terje Rydland Kontor: ITV-021 i IT-bygget vest (Gløshaugen) Epost: terjery@idi.ntnu.no Tlf: 735 91845 TDT4105 IT Grunnkurs 22 Uke39_Matlab 16. september 2015

23 Læringsmål og pensum Læringsmål Problemløsning: Fra problem til kjørende program Algoritmebegrepet Algoritmeformulering Flytskjema Pseudokode Pensum Foilene, litt i algoritmedelen av teoriboka (kommer tilbake til det i uke 44 og 45. 23 Uke39_Matlab 16. september 2015 24 Algoritme I matematikk og informatikk er en algoritme en presis beskrivelse av en endelig serie operasjoner som skal utføres for å løse et problem. (Wikipedia) Algoritme, i matematikk og databehandling en fullstendig og nøyaktig beskrivelse av fremgangsmåten for løsning av en beregnings- eller annen oppgave. (Store norske leksikon) Omdannelse av navnet på den arabiske matematikeren al-khwarizmî (ca. 820) i tilslutning til gresk arithmós (tall). 24 Uke39_Matlab 16. september 2015

25 Euklids algoritme Euklids algoritme er en av de eldste kjente algoritmene, fra antikkens Hellas. Euklids algoritme for største felles faktor for to heltall (største heltall som deler begge) sff(a,b) Hvis et av tallene er 0 har vi løsning: sff(a,0) = a Ellers trekker vi det minste tallet fra det største tallet helt til ett av tallene er lik null, det andre tallet er da svaret. sff(35,21)=sff(14,21)=sff(14,7)=sff(7,7)=sff(7,0) sff(9,11)=sff(9,2)=sff(7,2)= =sff(1,2)=sff(1,1)=sff(1,0) NB! Finnes mer effektive algoritmer 25 Uke39_Matlab 16. september 2015 26 Problemløsningsprosess 26 Uke39_Matlab 16. september 2015

27 Problemløsningsprosess 27 Uke39_Matlab 16. september 2015 28 Pseudokode Notasjon for å beskrive algoritmer som ligger mellom programmeringsspråk og naturlig språk. Benytter kontrollstrukturer fra programmeringsspråk for å formulere valg og repetisjon. Fordeler: Tekst (kan skrives i editor) Ligner strukturelt på løsning i programmeringsspråk Raskt å skrive Lett å endre Ulemper: For likt programmer, stimulerer ikke andre deler av hjernen 28 Uke39_Matlab 16. september 2015

29 Les inn a og b sff i pseudokode gjenta til a eller b er lik 0 hvis a < b b = b a ellers a = a b slutthvis sluttgjenta svar = a + b 29 Uke39_Matlab 16. september 2015 30 sff i Matlab-kode (sff.m) 30 Uke39_Matlab 16. september 2015

31 Flytskjema En grafisk representasjon av en algoritme Nødvendige steg og kontrollstrukturer for å løse et programmeringsproblem. Et sett grafiske elementer Fordeler: Grafisk, noe annet enn tekst Ulemper: Grafisk: Tar tid, tungt å endre Blir for store Forskjellig fra programmer 31 Uke39_Matlab 16. september 2015 32 Flytskjema: Symboler 32 Uke39_Matlab 16. september 2015

33 sff i flytskjema 33 Uke39_Matlab 16. september 2015 34 Svært lite effektiv i enkelte tilfeller sff(1, 1000000) Euklids algoritme, vurdering Finnes mye bedre variant http://no.wikipedia.org/wiki/euklids_algoritme Trening: Implementer denne selv 34 Uke39_Matlab 16. september 2015

35 Største primtallsfaktor i tall Alle positive heltall kan faktoriseres i primtallsfaktorer 6 = 3 * 2 99 = 11 * 3 * 3 Vi skal lage en funksjon maxprimtallfaktor som finner den største primtallsfaktoren til et heltalltall Ide: Fjerner de mindre faktorene til vi står igjen med en faktor, som er den største 35 Uke39_Matlab 16. september 2015 36 Pseudokode Input: n hvis n = 1 maxfaktor = 1 ellers faktor = 2 gjenta så lenge n >= faktor hvis faktor deler n % fjerner faktor n = n/faktor ellers % må prøve neste tall faktor = faktor + 1 slutthvis sluttgjenta maxfaktor = faktor 36 Uke39_Matlab 16. september 2015

37 Flytskjema 37 Uke39_Matlab 16. september 2015 38 maxprimtallfaktor.m 38 Uke39_Matlab 16. september 2015

39 33 = 11 * 3 16 = 2 * 2 * 2 * 2 Primtallsfaktorisering Kan bruke maxprimtallfaktor som byggekloss Lagrer de enkelte faktorene i en vektor 39 Uke39_Matlab 16. september 2015 40 40 Uke39_Matlab 16. september 2015

41 Eksempelkjøringer 41 Uke39_Matlab 16. september 2015 42 Problemløsning, VK http://www.youtube.com/watch?v=iuevqdwcdys 42 Uke39_Matlab 16. september 2015