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

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

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

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

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

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

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

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

TDT4105 Informasjonsteknologi, grunnkurs

Øvingsforelesning TDT4105 Matlab

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

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

Læringsmål og pensum. Oppgave

TMA4100 Matematikk 1. Høsten 2016

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

TMA4100 Matematikk 1. Høsten 2017

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.

Oppsummering fra sist

Visual Basic. Repetisjon fra onsdag

Største primtallsfaktor i tall

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

Læringsmål og pensum. Oversikt

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

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

TMA4100 Matema,kk 1. Høsten 2015

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

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

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

Leksjon 3. Kontrollstrukturer

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

TDT4110 Informasjonsteknologi grunnkurs: Eksempler. Mangekanter

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

Øvingsforelesning TDT4105 Matlab

Repetisjon Novice Videregående Python PDF

Læringsmål og pensum. En større case. Mål Lære å lage større og sammensatte programmer Pensum Kapitlene 1-9 og 12.

TDT4110 Informasjonsteknologi grunnkurs: Programmering: En større case. Professor Alf Inge Wang

Pensum: Starting out with Python

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

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

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

TDT4105 IT Grunnkurs Høst 2016

TDT4110 IT Grunnkurs Høst 2015

HØGSKOLEN I SØR-TRØNDELAG Avdeling for informatikk og e-læring - AITeL

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

I denne oppgaven skal vi repetere litt Python-syntaks, det er en god blanding av alle tingene du har lært i Python til nå.

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

TDT4105 Informasjonsteknologi grunnkurs: Uke 42 Strenger og strenghåndtering

Øvingsforelesning 5 Python (TDT4110)

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

i=0 Repetisjon: arrayer Forelesning inf Java 4 Repetisjon: nesting av løkker Repetisjon: nesting av løkker 0*0 0*2 0*3 0*1 0*4

Forelesning inf Java 4

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

TDT4110 Informasjonsteknologi, grunnkurs

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

Karakterundersøkelse for masterutdanning i teknologi 2015 Ø. Gregersen, G.Ø. Kløkstad, S. Hervik, H.E. Plesser og I. Pettersen

Noen innebygde funksjoner - Vektorisering

TMA4100 Matema,kk 1. Høsten 2014

Øvingsforelesning 5 Python (TDT4110)

Øvingsforelesning 1 Python (TDT4110)

Noen innebygde funksjoner - Vektorisering

LITT OM OPPLEGGET. INF1000 EKSTRATILBUD Stoff fra uke September 2012 Siri Moe Jensen EKSEMPLER

INF1000 (Uke 5) Mer om løkker, arrayer og metoder

TDT4105 Informasjonsteknologi, grunnkurs

Øvingsforelesning TDT4105 Matlab

Praktisk informasjon. Repetisjon: While-løkker. I dag. INF1000 (Uke 5) Mer om løkker, arrayer og metoder. Oblig 2 er lagt ut

Øvingsforelesning 3 Python (TDT4110)

i=0 i=1 Repetisjon: nesting av løkker INF1000 : Forelesning 4 Repetisjon: nesting av løkker Repetisjon: nesting av løkker j=0 j=1 j=2 j=3 j=4

INF1000 : Forelesning 4

Løsningsforslag Eksamen i Programmering i Visual Basic høsten 2003 Laget av Runar Munkhaug

TDT4110 Informasjonsteknologi grunnkurs: Python: Repetisjon. Professor Alf Inge Wang

UNIVERSITETET I OSLO

TDT4110 Informasjonsteknologi grunnkurs: Tema: Funksjoner med retur og moduler. - 3rd edition: Kapittel Professor Alf Inge Wang

Oppgaver uke 1: Løsningsforslag

INF1000 Uke 4. Innlesning fra terminal. Uttrykk og presedens. Oversikt

Oppgave 1. Oppgave 2. Oppgave 3. Prøveeksamen i INF1000. Ole Christian og Arne. 23. november 2004

Prøveeksamen i INF1000. Ole Christian og Arne. 23. november 2004

UNIVERSITETET I OSLO

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

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

Matematikk Øvingsoppgaver i numerikk leksjon 5 Skript

Frafall, overganger og gjennomstrømning. Femårige sivilingeniørprogram siden 2003

Finne ut om en løsning er helt riktig og korrigere ved behov

O-notasjon og kompleksitet

Oppgave 1. INF1000 Uke 13. Oppgave 2. Oppgave 3. Er dette lovlige deklarasjoner (når de foretas inni en metode)? JA NEI

TDT4105 Informasjonsteknologi, grunnkurs. Introduksjon til programmering i Matlab. Rune Sætre / Anders Christensen {satre, anders}@idi.ntnu.

Repetisjon, del 2. TDT 4110 IT Grunnkurs Professor Guttorm Sindre

Kvalitet,)Tilgjengelighet!og#Differensiering#! innen$grunnutdanningen$i$matematikk!!en#rapport#over#status#og#tiltak$2014!

Palindrom - iterativt

Læringsmål og pensum. Oversikt. Læringsmål Forstå og bruke cell array og strukturer. Pensum Matlab, Chapter 8

INF1000: Forelesning 11. Oppgave 2. Oppgave 1. Husk å melde deg på prøveeksamen i INF1000! Ole Christian Lingjærde 7.november 2006

MAT1030 Diskret matematikk

Repetisjon, del 1. TDT 4110 IT Grunnkurs Professor Guttorm Sindre

TDT4110 Informasjonsteknologi, grunnkurs Uke 35 Introduksjon til programmering i Python

Praktisk informasjon. I dag. Repetisjon: While-løkker. INF1000 (Uke 5) Mer om løkker, arrayer og metoder

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

MAT1030 Diskret matematikk

TDT4105 Informasjonsteknologi, grunnkurs (ITGK)

Læringsmål og pensum. Intro til returverdifunksjoner: Generering av tilfeldige tall 27/09/16

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

TDT4110 Informasjonsteknologi grunnkurs: Tema: Filer og unntak ( exceptions ) - 3rd edition: Kapittel 6. Professor Alf Inge Wang

Transkript:

1 TDT4105 Informasjonsteknologi, grunnkurs Matlab: Betinget programutførelse (valg: IF og SWITCH) og løkker (FOR) Rune Sætre og Anders Christensen (satre og anders @idi.ntnu.no)

2 Læringsmål Mer om IF-setningen og betinget programutførelse IF-ELSEIF-ELSE-setningen (kap 4.3) SWITCH-setningen Direkte valg mellom flere alternativer (kap 4.4) Løkker FOR-setningen (kap 5.1, og kap 5.2 doble løkker) Et bestemt antall gjentakelser Kap. 4.1-4.4 og 5.1-5.2 i Matlab-boka (3rd Edition) 2

3 Referansegruppemøte M1 Alle ref.-gruppefolk, kom frem i pausen så vi kan finne et møtetidspunkt som passer alle i neste uke: MBIOT5 (Bioteknologi), ( @stud) MTBYGG (Bygg- og miljøteknikk), (@stud) MTENERG (energi og miljø), (@stud) MTPETR (Petroleumsfag), ( @stud) MTTEKGEO (Tekniske Geofag), ( @stud) 3

4 Referansegruppemøte M2 (Rune) Første ref.-gruppemøte blir 28. september (uke 39): BGEOL (geologi), Martin Sesaker (martises@stud) MTING (ing og IKT), Sigurd Sandvoll Sundberg (sigurssu@stud) MTIØT (indøk-tek, EM, Mar, Prod), Marie Tyssen Bruu (marietb@stud) MTMART (marin), Hans Christian Høyland (hchoylan@stud) MTPROD (produtv & prod), Torgeir Ketilsønn Kjevik (torgeikk@stud) Si ifra til en personene over om ting som er bra eller ikke i løpet av uken Er det andre studieretninger til stede i forelesningene? Bli med i referansegruppen! 4

5 Repetisjon (Kap. 3.7.3.1, side 102): Forskjellen på Program og Funksjon Hovedprogram Les inn data (fra tastatur eller fil eller ) Behandle data, kalle funksjoner Skriv ut resultatet (til skjerm eller fil eller ) Figur 3.8 Funksjon «function», og definer returvariabel,navn, innparametre i 1. linje Behandle innparametre Lagre svar-verdien i returvariabelen % function INGEN utskrift (som regel) 5

6 IF 6

7 Poeng til bokstavkarakter 89-100 poeng gir A 77-88 poeng gir B 65-76 poeng gir C 53-64 poeng gir D 41-52 poeng gir E 0-40 poeng gir F (stryk) Minuspoeng og mer enn 100 poeng har udefinert resultat (noe er feil), bør varsles Lag et funksjon poeng2karakter, som får poeng inn, og returnerer karakter ut 7

8 Alt 1: Nøstet IF function karakter = poeng2karakter(poeng) % poeng -> bokstavkarakter, noestet IF % validerer input if (poeng < 0) (poeng > 100) error('feil inndata') if poeng >= 89 karakter = 'A'; else if poeng >= 77 karakter = 'B'; else if poeng >= 65 karakter = 'C'; else if poeng >= 53 karakter = 'D'; else if poeng >= 41 karakter = 'E'; else karakter = 'F'; % function 8

9 Alt 2: ELSEIF function karakter = poeng2karakter2(poeng) % poeng -> bokstavkarakter, IF- ELSEIF % validerer input if poeng < 0 poeng > 100 error('feil inndata') if poeng >= 89 karakter = 'A'; elseif poeng >= 77 karakter = 'B'; elseif poeng >= 65 karakter = 'C'; elseif poeng >= 53 karakter = 'D'; elseif poeng >= 41 karakter = 'E'; else karakter = 'F'; % function 9

10 function karakter = poeng2karakter3(poeng) % poeng -> bokstavkarakter, en IF pr poengintervall Alt 3: En IF pr. intervall % validerer input if (poeng < 0) (poeng > 100) error('feil inndata') if poeng >= 89 karakter = 'A'; if poeng >= 77 && poeng < 89 karakter = 'B'; if poeng >= 65 && poeng < 77 karakter = 'C'; if poeng >= 53 && poeng < 65 karakter = 'D'; if poeng >= 41 && poeng < 53 karakter = 'E'; if poeng < 41 karakter = 'F'; % function 10

11 Valg mellom alternativene Alle tre alternativene virker Ved nøstet IF (alt 1) og med ELSEIF (alt 2) er rekkefølgen av betingelsene viktig Valgkriterier: Enklest å få rett Enklest å lese (forstå) Minst tekst Mest effektiv I dette tilfellet vil mange foretrekke løsningen med IF-ELSEIF-ELSE Mest kompakt, enklest å forstå 11

12 SWITCH-setningen switch <uttrykk> case <verdi> eller {<verdi-1>,... <verdi-n>} <setninger> case <verdi> eller {<verdi-1>,... <verdi-n>} <setninger>... otherwise <setninger> Velger case som matcher <uttrykk> og utfører de tilhøre setningene. Ingen match -> utfører otherwise-setningene. 12

13 Bestem nasjonalitet for bilmerke 13

14 FOR-løkker FOR tellevariabel = <start>:<inkrement>:<sluttverdi> END <setninger> Setningene i løkke-kroppen gjentas en gang for hver verdi av tellevariabelen FOR i = 1:1:5 disp(i*i) END Skriver ut de 5 første kvadrattallene. 14

15 Summer heltallene 1..N sumheltall.m 15

16 Fakultetsfunksjonen 0! = 1 1! = 1 2! = 1*2 = 2 N! = 1*2*3* *(n-1)*n Lager en fakultetsfunksjon med FOR-løkke 16

17 Flytskjema 17

18 Programkode fakultet.m 18

19 FOR-løkker kan nøstes gangetabell.m 19

20 Utskrift 20

21 Flytdiagram 21

22 Telle forekomster av gitt verdi i tabell Inputt: Tabell og verdi. Returvariabel: antall av v i T 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 22

23 23

24 24

25 FOR-løkker, variasjon FOR <tellevariabel> = <start>:<inkrement>:<slutt> END <setninger> 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 25

26 primtallsum.m Summerer de 10 minste primtallene 26

27 Programkjøring 27