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

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

Øvingsforelesning TDT4105 Matlab

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

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

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

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

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

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

Øvingsforelesning TDT4105 Matlab

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

MAT1030 Diskret matematikk

Noen innebygde funksjoner - Vektorisering

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

Noen innebygde funksjoner - Vektorisering

Læringsmål og pensum. Oversikt

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

MAT1030 Plenumsregning 1

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

Øvingsforelesning 1 Python (TDT4110)

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

MAT1030 Diskret Matematikk

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

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

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

Største primtallsfaktor i tall

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

TDT4110 Informasjonsteknologi grunnkurs: Eksempler. Mangekanter

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

Høst Øving 5. 1 Teori. 2 Månedskalender. Norges teknisknaturvitenskapelige universitet Institutt for datateknikk og informasjonsvitenskap

TDT4105 Informasjonsteknologi, grunnkurs

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

Utførelse av programmer, funksjoner og synlighet av variabler (Matl.)

TDT4105 Informasjonsteknologi, grunnkurs (ITGK)

Betinget eksekvering og logiske tester i shell

Oppsummering fra sist

TDT4105 IT Grunnkurs Høst 2016

TDT4105 Informasjonsteknologi, grunnkurs (ITGK)

TDT4110 Informasjonsteknologi, grunnkurs Uke 35 Introduksjon til programmering i Python

Øvingsforelesning i Matlab (TDT4105)

Introduksjon til beslutningsstrukturer

Programmering Høst 2017

Læringsmål og pensum. Designe et program

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

[Kurssidene] [ ABI - fagsider bibin ] Michael Preminger (michaelp@hio.no) 07/ Vi holder orden på verdier med hjelp av variabler

Oversikt. INF1000 Uke 3. Repetisjon Program. Repetisjon Program. Litt repetisjon Program Variabler og Uttrykk Presedens Matematiske funksjoner

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

INF1000 undervisningen INF 1000 høsten 2011 Uke september

INF 1000 høsten 2011 Uke september

Matematikk Øvingsoppgaver i numerikk leksjon 5 Skript

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

I dag. Rep: Oppsummering - variabler. Rep: Datatyper. INF1000 (Uke 3) Mer om uttrykk, terminal I/O, forgreninger

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.

YouTube-kanal ITGK. Læringsmål og pensum

TDT4110 IT Grunnkurs Høst 2016

KAPITTEL 3 Litt logikk og noen andre småting

Designe et program. TDT4110 Informasjonsteknologi grunnkurs: Kapittel 2 Python: Bruk av funksjoner, variabler og input/output. Mål.

Øvingsforelesning i Matlab (TDT4105)

TDT4110 Informasjonsteknologi grunnkurs: Kapittel 2 Python: Bruk av funksjoner, variabler og input/output. Professor Alf Inge Wang

Mål. Pensum. TDT4110 Informasjonsteknologi grunnkurs: Tema: Unntak (exceptions) (Kap 6) Dictionaries (Kap. 9) Terje Rydland - IDI/NTNU

Utførelse av programmer, metoder og synlighet av variabler i JSP

TDT4105 Informasjonsteknologi, grunnkurs. Introduksjon til programmering i Matlab

TDT4110 Informasjonsteknologi grunnkurs: Tema: Enkle funksjoner. - 3rd edition: Kapittel Professor Alf Inge Wang

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

TDT4110 IT Grunnkurs Høst 2012

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

Tre måter å lese fra terminal. Java 4. Eksempel. Formatert utskrift til skjerm

Læringsmål og pensum. Oppgave

Binærfiler versus tekstfiler

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

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

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

Løpende strekmann Erfaren Videregående Python PDF

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

BOKMÅL Side 1 av 5. KONTERINGSEKSAMEN I FAG TDT4102 Prosedyre og objektorientert programmering. Onsdag 6. august 2008 Kl

Leksjon 3. Kontrollstrukturer

Introduksjon til DARK assembly

Læringsmål og pensum. v=nkiu9yen5nc

TDT4105 Informasjonsteknologi, grunnkurs

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

TDT4110 Informasjonsteknologi grunnkurs: Tema: Mer om strenger. - 3rd edition: Kapittel 8. Professor Alf Inge Wang

Øvingsforelesning 5 Python (TDT4110)

MAT1030 Diskret Matematikk

Matematikk Øvingsoppgaver i numerikk leksjon 4 m-ler

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

Læringsmål og pensum. I/O - input-setningen. I/O disp-setningen

Læringsmål og pensum

Øvingsforelesning i Python (TDT4110)

Øvingsforelesning 5 Python (TDT4110)

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

Palindrom - iterativt

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

Leksjon 3. Kontrollstrukturer

TDT4110 IT Grunnkurs Høst 2016

EKSAMEN. Les gjennom alle oppgavene før du begynner. Husk at det ikke er gitt at oppgavene står sortert etter økende vanskelighetsgrad.

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

Datastrukturer (kap. 8)

TDT4110 Informasjonsteknologi grunnkurs: Tema: Funksjoner med retur og moduler Utgave 3: Kap

Et utsagn (eng: proposition) er en erklærende setning som enten er sann eller usann. Vi kaller det gjerne en påstand.

Oppsummering - Kurset (10/ )

Hvor gammel er du? Hvor gammel er du? Del 1: Skrive ut til skjerm. Gjøre selv. Skrevet av: Sindre O. Rasmussen, Kodeklubben Trondheim

Transkript:

1 Kunnskap for en bedre verden TDT4105 Informasjonsteknologi, grunnkurs Mer om funksjoner. Logiske betingelser og betinget programutførelse (valg). 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 Referansegruppe-2 Gi tilbakemelding på undervisning, øvinger, faginnhold, organisering, etc. Noen få timer i løpet av semesteret. Trenger 6 frivillige (ønsker spredning): MTBYGG (Bygg- og miljøteknikk) MTIØT (Industriell økonomi og teknologiledelse) MTKJ (Industriell kjemi og bioteknologi) MTMART (marin teknikk) MTPROD (produktutvikling og produksjon) MTMT (Materialteknologi) Ta kontakt i pausen. Viktig at vi kommer i gang med dette arbeidet! 2

3 Egne funksjoner, kalltrær og kontrollflyt Logiske uttrykk og logiske operatorer Operator-prioriteter Betinget programutførelse IF IF-ELSE IF-ELSEIF-ELSE-END Kapittel 3.7 + 1.6 + 4.1-4.3 Læringsmål 3 4 Problemløsning 4

5 Designe et program: Programutviklingssyklus Design programmet: Forstå oppgaven Bestem steg for å utføre oppgaven Skriv kode: Velg et språk som passer Fiks syntaks feil: Skrivefeil i koden Test programmet: Tester programmet for å lete etter logiske feil (feil oppførsel) Fiks logiske feil: Debugge kode for å finne ut logiske feil Design programmet Skriv kode Fiks syntaks feil Test programmet Fiks logiske feil 5 6 Hjelp til å designe et program: Hvordan beskrive stegene? Pseudokode: Kode som kan skrives, leses og forstås av mennesker men ikke av en maskin Trenger ikke å tenkte på at koden inneholder skrivefeil Flytskjema: En grafisk framstilling av stegene i et program: Oval: Start og slutt i programmet Parallellogram: input og output Rektangler: Prosessering av data Start Input: Antall timer Input: Timelønn Beregn lønn Vis lønn på skjerm Stopp 6

7 Sort boks tenking Trenger bare å vite: Hva funksjonen gjør Hvordan funksjonen tar input Hvordan funksjonen returnerer resultat Kan ignorere realiseringen (implementasjonen) Ingen sideeffekter 8 7 Innebygde funksjoner Kaller funksjonen Kjører funksjonen uten å kjenne koden Inn-parametere (fra ingen til mange slike) Resultat ut, bruker dette videre Eks: lottotall = randi(34,1,7) Tre parametere Største heltall som kan trekkes Antall rader Antall kolonner 8

9 Egne funksjoner function <returvariabel> = <funksjonsnavn>(<parametere>) <setninger> <returvariabel> = <tilordningsverdi> end Lagres i filen funksjonsnavn.m Kalles som innebygde funksjoner <funksjonsnavn>(<aktuelle parametere>) Lokale variable Ukjent utenfor funksjonen 10 9 Funksjoner Innebygde vs. Egne Innebygde Black box vet hva som sendes inn og hva som kommer ut vet ikke hva som skjer inne i boksen Egne White box vet hva som sendes inn, hva som kommer ut, og hvordan den fungerer inni sirkelareal 10

11 Sirkelareal og -omkrets Som en innebygd funksjon 11 12 Sirkelareal 12

13 Sirkelareal (forts.) Reserverte ord (kan ikke brukes til noe annet) function, end Returvariabel (verdi tilbake) areal Det som returneres når funksjonen er ferdig (returnerer) Ukjent utenom funksjonen Kommentarer Alt etter % på en linje blir ignorert av Matlab 14 13 Sylindervolum.m function volum = sylindervolum(radius, hoyde) % beregner sylindervolum volum = sirkelareal(radius)*hoyde; end % function 14

15 Sylinderoverflate function areal = sylinderoverflate... (radius, hoyde) % beregner sylinderoverflate areal = 2*sirkelareal(radius)... + hoyde*sirkelomkrets(radius); end % function 16 15 Sylindereksempel.m radius = input('oppgi radius i sylinder: '); hoyde = input('oppgi hoyde i sylinder: '); volum = sylindervolum(radius, hoyde); overflate = sylinderoverflate(radius, hoyde); fprintf('\n En sylinder med radius %5.2f og hoyde %5.2f\n,... radius, hoyde) fprintf('har volum lik %5.2f\n', volum) fprintf('og overflateareal lik %5.2f\n', overflate) 16

17 Kjøring 17 18 Kalltre function areal = sylinderoverflate(radius, hoyde) % beregner sylinderoverflate areal = 2*sirkelareal(radius) + hoyde*sirkelomkrets(radius); end % function radius = input('oppgi radius i sylinder: '); hoyde = input('oppgi hoyde i sylinder: '); volum = sylindervolum(radius, hoyde); overflate = sylinderoverflate(radius, hoyde); fprintf('\n En sylinder med radius %5.2f og hoyde %5.2f\n,radius, hoyde) fprintf('har volum lik %5.2f\n', volum) fprintf('og overflateareal lik %5.2f\n', overflate) 18

19 Operatorer Tabelloperatorer * gir matrisemultiplikasjon mellom tabeller.* gir elementvis multiplikasjon Operand versus operator m er operand (to ganger) * og.* er operator 20 Sant / ikke sant (true-false, 1-0) 4 < 5 Radius > 0 Student Ikke (not, negasjon): ~ (alt+ på Mac) ~Student Eller (or): (alt+7) Student (Alder < 30) Og (and): && Student && (Alder < 30) 19 Logiske utsagn og operatorer 20

21 Sannhetstabell A B ~A A B A && B F F T F F F T T T F T F F T F T T F T T 22 < mindre enn > større enn <= mindre enn eller lik >= større enn eller lik == lik (NB! Ikke = som er tilordning) ~= ulik 21 Relasjonsoperatorer 22

23 Sammensatte uttrykk Operatorpresedens (etter synkende presedens) () ~ *, / +, - <, <=, >, >=, ==, ~= && Samme nivå: Fra venstre mot høyre 10 < speedabovelimit < 25 [galt] true/false (0 eller 1) < 25 som alltid er sant! Moral: Bruk parenteser 23 24 3+3/2 3 eller 4.5? 4 < 7 && ~( 3 > 1 8 >= 9 ) Sant eller usant? Eksempler 4 < 7 && ~(True False) 4 < 7 && ~(True) 4 < 7 && False True && False False 24

25 IF-setningen Programutførelsen styres av en logisk betingelse IF <logisk betingelse> <programkode> END Programkoden utføres bare hvis betingelsen er sann IF Student Rabatt = 0.25; END 26 25 ELSE-del Programkode som utføres når betingelsen IKKE er sann Frivillig å ha med ELSE IF Student Rabatt = 0.25; ELSE Rabatt = 0.1; END 26

27 Sjekker at det er en sirkel (radius > 0) Kode i sirkelscript_tredje.m Sirkelomkrets og -areal 28 Sjekk gyldig innputt Garbage in, Garbage out 27 Programkjøring 28

29 Sparing Rentefot avhengig av sparebeløp Beregne terminrente og sluttbeløp Lager skript for brukerdialog og å sette delene sammen terminrente(belop)-funksjon for å beregne terminrenten rentefot(belop)-funksjon for å bestemme rentefoten 29 30 sparing.m 30

31 terminrente(belop) 32 Valg mellom 3 alternativer IF-setningen kan nøstes: Gir 3 veier gjennom koden Tips til testing: Kjør alle veier Test grenseverdiene 31 rentefot-funksjonen 32

33 rentefot(belop) 33 34 Testing 34

35 IF-ELSEIF-ELSE-END Valg mellom flere alternativer, flerveis-if Alternativ til nøsting (kan kombineres med nøsting) 35 36 rentefot2(belop) 36