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

Like dokumenter
Noen innebygde funksjoner - Vektorisering

Noen innebygde funksjoner - Vektorisering

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

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

TDT4105 Informasjonsteknologi, grunnkurs

TDT4105 Informasjonsteknologi, grunnkurs (ITGK)

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

Kapittel Oktober Institutt for geofag Universitetet i Oslo. GEO En Introduksjon til MatLab. Kapittel 14.

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

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

Læringsmål og pensum. Oversikt

Øvingsforelesning i Matlab TDT4105

TDT4105 Informasjonsteknologi, grunnkurs (ITGK)

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

TDT4105 IT Grunnkurs Høst 2016

Matematikk Øvingsoppgaver i numerikk leksjon 4 m-ler

Øvingsforelesning TDT4105 Matlab

Debugging. Tore Berg Hansen, TISIP

Læringsmål og pensum. Oppgave

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

Øvingsforelesning TDT4105

Øvingsforelesning i Python (TDT4110)

Øvingsforelesning i Python (TDT4110)

Øvingsforelesning i Matlab TDT4105

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

TDT4110 Informasjonsteknologi grunnkurs: Eksempler. Mangekanter

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

Øvingsforelesning TDT4105 Matlab

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

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

TDT4105 Informasjonsteknologi, grunnkurs. Introduksjon til programmering i Matlab

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

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

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

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

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

TDT4110 Informasjonsteknologi, grunnkurs Uke 35 Introduksjon til programmering i Python

Matematikk Øvingsoppgaver i numerikk leksjon 5 Skript

TDT4105 Informasjonsteknologi, grunnkurs

Øvingsforelesning i Matlab (TDT4105)

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

Oppgaver uke 1: Løsningsforslag

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.

Øvingsforelesning i Matlab (TDT4105)

INF2810: Funksjonell Programmering. En Scheme-evaluator i Scheme

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

Læringsmål og pensum. v=nkiu9yen5nc

Øvingsforelesning TDT4105 Matlab

Oppsummering fra sist

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

TDT4105 Informasjonsteknologi grunnkurs: Uke 42 Strenger og strenghåndtering

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

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

Verden. Steg 1: Vinduet. Introduksjon

Binærfiler versus tekstfiler

Hydrostatikk/Stabilitet enkle fall

Største primtallsfaktor i tall

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

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

TDT4110 Informasjonsteknologi grunnkurs: Kapittel 7 Filer og unntak ( exceptions ) Professor Alf Inge Wang Stipendiat Lars Bungum

Kanter, kanter, mange mangekanter

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

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

Del 4 Noen spesielle C-elementer

Repetisjon Novice Videregående Python PDF

16 Programmere TI -86 F1 F2 F3 F4 F5 M1 M2 M3 M4 M5

Kapittel 1 En oversikt over C-språket

Legg bort skilpaddene dine, i dag skal vi lære hvordan vi kan sende hemmelige beskjeder!

Verden. Introduksjon. Skrevet av: Kine Gjerstad Eide og Ruben Gjerstad Eide

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.

Løsningsforslag: MAT 1110 Obligatorisk oppgave 2, V-12

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

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

START MED MATLAB. Når du starter Matlab, kommer du inn i kommandovinduet. Dersom du har versjon 6.1, ser du dette :

Hjemmeeksamen 2 i INF3110/4110

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

EGENDEFINERTE FUNKSJONER I SAS OG LITT OM OPEN SOURCE INTEGRASJON SAS FANS I STAVANGER , MARIT FISKAAEN (SAS INSTITUTE)

<?php. count tar en array som argument, og returnerer et tall som uttrykker antallet innførsler i arrayen.

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

C# (.Net) Tema: Loops (Løkker) Leksjon 7 Kap 18

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

Kanter, kanter, mange mangekanter. Introduksjon: Steg 1: Enkle firkanter. Sjekkliste. Skrevet av: Sigmund Hansen

Øvingsforelesning i Matlab TDT4105

Sprettball Erfaren ComputerCraft PDF

PLS PC-øving nr. 3 Global Label og Local Label, flagg og CJ

Oppsummering - Kurset (10/ )

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

Eksamensoppgaver 2014

INF225 høsten 2003 Prosjekt del 4: kodegenerering

Løse reelle problemer

Legg bort skilpaddene dine, i dag skal vi lære hvordan vi kan sende hemmelige beskjeder!

Her skal du lære å programmere micro:biten slik at du kan spille stein, saks, papir med den eller mot den.

Hvordan du kommer i gang med LOGO.

INF1000 Eksamen 2014 (modifisert)

Introduksjon til Marinteknikk

BRUKERUNDERSØKELSEN 2017 Svarprosent: 90%

HØGSKOLEN I SØR-TRØNDELAG

Betinget eksekvering og logiske tester i shell

Transkript:

1 TDT4110 Informasjonsteknologi grunnkurs: Uke 41: «Matlab programs» (kapittel 6) Anders Christensen anders@idi.ntnu.no Rune Sætre satre@idi.ntnu.no

2 Læringsmål og pensum Læringsmål: Synlighet av variabler (scope) Mer om funksjoner Flere ut-variabler Lokale funksjoner Persistente variabler Feilfinning: Pensum Feiltyper, Tracing og Debugger Kapittel 6 Matlab Programs 2

3 Synlighet av variabler (scope) Synlighet av en variabel (scope) Arbeidsområdet der den er gyldig Command Window: base workspace Lokale variabler Variabler definert i funksjoner Synlige inne i funksjonen Eksisterer ikke utenfor funksjonen Skript ser variabler definert i Command Window Kan være kilde til feil/problemer clear: tømmer arbeidsområdet Globale variabler Ikke synlig inne i funksjoner uten å bli sendt som parameter Synlig i alle scriptene våre. Dårlig programmeringsskikk å dele globale variabler! 3

4 Eksempel: rest i a/b Kommandovinduet og funksjonen har egne arbeidsområder Parameterne overfører data inn i funksjonens arbeidsområde Funksjonen returnerer verdi til kallende arbeidsområde Samme navn på variabler i ulike arbeidsområder referer ikke til en og samme variabel Funksjonens arbeidsområde aktiveres på nytt hver gang funksjonen kalles. Husker ingenting mellom kallene 4

5 Funksjoner kan returnere flere argumenter (parametere) [rader, kolonner] = size(<matrise>) Eksempel: Er en verdi i en matrise i majoritet? Majoritet: Mer enn 50% av en bestemt verdi? Pseudokode: Input: Matrise med verdier Gjør om matrisen til en vektor Sorter vektoren Tell opp for verdien til elementet i midten Sjekk om det er mange nok (antall > n antall) Returner: Flagg (true/false), Verdi Antall 5

6 majoritet.m 6

7 7

8 8

9 Sub-funksjoner Kan deklarere mer enn en funksjon i en m-fil Etter den primære funksjonen Sub-funksjoner, lokale funksjoner eller hjelpefunksjoner Usynlige og utilgjengelige utenfor m-filen Kalles fra primærfunksjonen som andre funksjoner Kan bidra til å dele opp programkoden Enklere, bedre kode Hvorfor ikke skrive som vanlig funksjon? 9

10 Eksamen august 2012 10

11 Funksjoner: Persistente variabler Variabler som beholder verdien mellom hver kjøring av funksjonen. Husker verdien fra avslutningen av forrige utførelse av funksjonen. function retur = funksjonsnavn() persistent variabel; if isempty( variabel ) variabel = 0; % Sett til en startverdi første gang end... end %function Bør brukes med forsiktighet Verdiene nullstilles ved clear all / clear functions / clear <funksjonsnavn> omstart av Matlab 11

12 function nyttnr = nykoelapp() % trekker neste koelapp % største nr på kølapp maxnr = 5; % holder rede på forrige nr persistent forrigenr if isempty(forrigenr) forrigenr = maxnr; end % finner nytt nr if forrigenr == maxnr nyttnr = 1; else nyttnr = forrigenr + 1; end % oppdaterer forrige nr forrigenr = nyttnr; nykoelapp.m end % function 12

13 >> nykoelapp() ans = 1 >> nykoelapp() ans = 2 >> nykoelapp() ans = 3 >> nykoelapp() ans = 4 >> nykoelapp() ans = 5 >> nykoelapp() ans = 1 >> nykoelapp() ans = 2 >> Eksempelkjøringer >> nykoelapp() ans = 1 >> nykoelapp() ans = 2 >> clear nykoelapp >> nykoelapp() ans = 1 >> 13

14 Feilfinning 14

15 Feil i programmer Syntaksfeil (syntax errors) Feil i bruken av språket Matlab gir beskjed Kjøretidsfeil (runtime errors) Feil som oppstår under kjøring Logiske feil Programmet virker ikke som tiltenkt 15

16 Trekanter Forutsetter: A <= B <= C Trekanttyper: 0: Umulig (A + B <= C) 1: Ubestemt 2: Likebeint (A = B eller B = C) 3: Rettvinklet (A 2 +B 2 = C 2 ) 4: Likebeint og rettvinklet (A = B og A 2 +B 2 = C 2 ) 5: Likesidet (A = B = C) Viktig å sjekke i riktig rekkefølge 16

17 trekant.m 17

18 Forts. 18

19 Forts. (lokal funksjon) 19

20 trekant_test.m 20

21 Her ble det noe feil 21

22 Debugger Program eller funksjonalitet for å finne feil i programmer. Breakpoints Programmet stopper på spesifiserte steder Kan se på variabler Steg-for-steg-utførelse Følge programflyten «Step In» i funksjoner som kalles eller «Step» forbi funksjonskall, «Step out» av funksjonen) Fortsette «Continue» til neste breakpoint eller slutt Alternativer: Stirre og tenke, trace på papir (i hodet) Ekstra utskriftskommandoer 22

23 Debug trekantproblemet Breakpoints markeres med rød prikk Grønn pil viser neste kommando som vil bli utført 23

24 Siden R2013a: EDITOR-tab Debug 1) Set breakpoint -> Trykk run/continue Step Clear breakpoints in all files Set/clear breakpoint Continue Step in Step out Run to Cursor Exit debug mode (dbquit) 1) Breakpoints markeres med rød prikk, grønn pil viser neste kommando som vil bli utført 24

25 Feil i rettvinklet Når c*c er større enn a*a+b*b blir venstresiden negativ og ulikheten blir sann uansett størrelsen på avviket. Må sjekke absoluttverdien! 25

27 Eksamen 2010 * * 27

28 28

29 a) b) 29