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

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

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

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

TDT4105 Informasjonsteknologi, grunnkurs

TDT4105 Informasjonsteknologi, grunnkurs. Introduksjon til programmering i Matlab

Oppsummering fra sist

TDT4105/TDT4110 Informasjonsteknologi grunnkurs:

TDT4105 Informasjonsteknologi, grunnkurs (ITGK)

Største primtallsfaktor i tall

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 (ITGK)

TDT4110 Informasjonsteknologi, grunnkurs Uke 35 Introduksjon til programmering i Python

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.

TDT4105 Informasjonsteknologi, grunnkurs

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

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

TDT4105 Informasjonsteknologi, grunnkurs

Læringsmål og pensum. Oversikt

TDT4105/TDT4110 Informasjonsteknologi grunnkurs:

TDT4110 Informasjonsteknologi grunnkurs: Uke 43: Datastrukturer (kap. 8)

Øvingsforelesning 3 Python (TDT4110)

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

Kapittel 4: Mer predikatlogikk

TDT4110 IT Grunnkurs Høst 2014

Læringsmål og pensum. v=nkiu9yen5nc

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

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

TDT4110 Informasjonsteknologi grunnkurs: Kapittel 1 Introduksjon til Programmering og Python. Professor Alf Inge Wang

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

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

TDT4127 Programmering og Numerikk

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

MAT1030 Diskret Matematikk

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

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

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

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

MAT1030 Diskret matematikk

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

TDT4110 Informasjonsteknologi grunnkurs: Eksempler. Mangekanter

Leksjon 3. Kontrollstrukturer

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

MAT1030 Plenumsregning 1

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

INF3140 Modeller for parallellitet INF3140/4140: Programanalyse

Læringsmål og pensum. Oppgave

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

TDT4110 Informasjonsteknologi grunnkurs: Uke 41: «Matlab programs» (kapittel 6)

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.

Velkommen til MAT1030!

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

MAT1030 Diskret matematikk

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

MAT1030 Forelesning 28

TDT4105 Informasjonsteknologi grunnkurs: Uke 42 Strenger og strenghåndtering

Forelesning 30: Kompleksitetsteori

Python: Rekursjon (og programmering av algoritmer) Python-bok: Kapittel 12 + teoribok om Algoritmer

Kapittel 4: Logikk (fortsettelse)

MAT1030 Diskret Matematikk

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

TDT4105 Informasjonsteknologi, grunnkurs. Introduksjon til programmering i Matlab. Rune Sætre / Anders Christensen {satre,

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

Øvingsforelesning 1 Python (TDT4110)

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

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

Leksjon 3. Kontrollstrukturer

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

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

Øvingsforelesning i Matlab (TDT4105)

TDT4110 Informasjonsteknologi, grunnkurs

Norsk informatikkolympiade runde

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

Kapittel 6: Funksjoner

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

MAT1030 Plenumsregning 3

MAT1030 Diskret Matematikk

MAT1030 Forelesning 2

Noen innebygde funksjoner - Vektorisering

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

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

MAT1030 Diskret matematikk

MAT1030 Forelesning 4

Læringsmål og pensum. Utvikling av informasjonssystemer. Oversikt. Systemutvikling Systemutvikling i seks faser Femstegs prosedyre for programmering

Noen innebygde funksjoner - Vektorisering

Python: Intro til funksjoner. TDT4110 IT Grunnkurs Professor Guttorm Sindre

MAT1030 Forelesning 8

Kapittel 4: Mer predikatlogikk

Matematikk Øvingsoppgaver i numerikk leksjon 5 for-løkker

Mer om representasjon av tall

TDT4105 Informasjonsteknologi grunnkurs: Uke 43: Datastrukturer (kap. 8)

TDT4105 Informasjonsteknologi grunnkurs Øvingsforelesning 2. Iver Dihle Skjervum Vit.ass. ITGK

MAT1030 Diskret Matematikk

MAT1030 Forelesning 14

Øvingsforelesning 5 Python (TDT4110)

Kapittel 3: Litt om representasjon av tall

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

Alternativ dag for teoriforelesning. Intro. Torsdag 12:15-14:00 R1

MAT1030 Diskret matematikk

Transkript:

1 TDT4105 Informasjonsteknologi, grunnkurs Matlab 5: Løkker (FOR og WHILE) Matlab 6: Problemløsning / Algoritmer Rune Sætre (satre@idi.ntnu.no) Anders Christensen (anders@idi.ntnu.no) TDT4105 IT Grunnkurs

2 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

3 Læringsmål Løkker FOR-setningen WHILE-setningen Kapittel 5 i Matlab-boka Neste time: Algoritmeformulering 3

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> <setninger> END Løkkekroppen utføres en gang for hvert element i tabell 4

5 primtallsum.m Summerer de 10 minste primtallene 5

6 Programkjøring 6

7 WHILE-løkken WHILE <logisk betingelse> END <setninger> 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 7

8 Gjett et hemmelig tall gjett_tall.m 8

9 9

10 WHILE flytdiagram 10

11 Beregne pi Leibniz formel 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. 11

12 pifunksjon 12

13 Test-skript: testpifunksjonen.m 13

14 Testkjøring 14

15 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. 15

16 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 16

17 17

18 TDT4105 Informasjonsteknologi grunnkurs: Uke 39/40 Algoritmeformulering: - Flytskjema - Pseudokode Anders Christensen anders@idi.ntnu.no Rune Sætre satre@idi.ntnu.no

19 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. 19

20 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). 20

21 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 21

22 Problemløsningsprosess

23 Problemløsningsprosess 23

24 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 24

25 sff i pseudokode Les inn a og b gjenta til a eller b er lik 0 hvis a < b b = b a ellers a = a b slutthvis sluttgjenta svar = a + b 25

26 sff i Matlab-kode (sff.m) 26

27 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 27

28 Flytskjema: Symboler 28

29 sff i flytskjema 29

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