TDT4110 Informasjonsteknologi grunnkurs: Eksempler. Mangekanter

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

TDT4105 Informasjonsteknologi, grunnkurs

Testlig og binær form

Binærfiler versus tekstfiler

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

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

Datastrukturer (kap. 8)

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

TDT4105 Informasjonsteknologi, grunnkurs. Introduksjon til programmering i Matlab

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

Mål. Pensum. TDT4110 Informasjonsteknologi grunnkurs: Tema: Filer og unntak (exceptions) Utgave 3: Kap. 6. Terje Rydland - IDI/NTNU

Største primtallsfaktor i tall

Noen innebygde funksjoner - Vektorisering

Læringsmål og pensum

Noen innebygde funksjoner - Vektorisering

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

TDT4105 Informasjonsteknologi, grunnkurs

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

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

TDT4105 Informasjonsteknologi, grunnkurs (ITGK)

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

Læringsmål og pensum. Inn- og utoperasjoner 21/10/16

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

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

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

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

TDT4105 Informasjonsteknologi, grunnkurs (ITGK)

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

TDT4105 Informasjonsteknologi grunnkurs: Uke 42 Strenger og strenghåndtering

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

ITGK - H2010, Matlab. Repetisjon

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

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

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

Læringsmål og pensum. Oversikt

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

Mål. Pensum. TDT4110 Informasjonsteknologi grunnkurs: Tema: Dictionaries og sets (mengder) Utgave 3: Kap. 9. Terje Rydland - IDI/NTNU

Oppsummering fra sist

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

Filbehandling Tekstfiler

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

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

TDT4110 Informasjonsteknologi grunnkurs: Tema: Dictionaries og mengder (sets) - Kapittel 9. Professor Alf Inge Wang

Læringsmål og pensum. Tekststrenger Læringsmål Skal kunne forstå og programmere med tekststrenger. Pensum Matlab, Chapter 7

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

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.

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

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

MENGDER (SETS) Læringsmål og pensum. Kapittel 9.2

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

TDT4105 IT Grunnkurs Høst 2016

Pensum: Starting out with Python

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

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

Øvingsforelesning TDT4105

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

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

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

Dictionary er et objekt som lagrer en samling av data. Minner litt om lister men har klare forskjeller:

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. Matlab 5: Løkker (FOR og WHILE) Matlab 6: Problemløsning / Algoritmer

Palindrom - iterativt

Mål. Pensum. TDT4110 Informasjonsteknologi grunnkurs: Tema: Dictionaries og sets (mengder) Utgave 3: Kap. 9. Terje Rydland - IDI/NTNU

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

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.

O-notasjon og kompleksitet

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

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

Dictionary er et objekt som lagrer en samling av data. Minner litt om lister men har klare forskjeller:

TDT4110 Informasjonsteknologi, grunnkurs Uke 35 Introduksjon til programmering i Python

Plan for dagen. Vprg 4. Dagens tema - filbehandling! Strømmer. Klassen FilLeser.java. Tekstfiler

Inf109 Programmering for realister Uke 5. I denne leksjonen skal vi se på hvordan vi kan lage våre egne vinduer og hvordan vi bruker disse.

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

Rekursjon. Binærsøk. Hanois tårn.

Øvingsforelesning i Matlab TDT4105

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

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

Python: Filer og unntak Gaddis: Kapittel 6

Oversikt. Introduksjon Kildekode Kompilering Hello world Hello world med argumenter. 1 C programmering. 2 Funksjoner. 3 Datatyper. 4 Pekere og arrays

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

Python: Oppslagslister (dictionaries) og mengder 3. utgave: Kapittel 9

Læringsmål og pensum. Designe et program

INF1000 (Uke 15) Eksamen V 04

INF1000 (Uke 15) Eksamen V 04

TDT4105 Informasjonsteknologi, grunnkurs Eksempler

Lese fra fil. INF1000 : Forelesning 5. Eksempel. De vanligste lesemetodene. Metoder:

IN1000 Obligatorisk innlevering 7

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

Del 4 Noen spesielle C-elementer

TDT4110 Informasjonsteknologi grunnkurs: Uke 48 Oppsummering/Spørretime. Professor Alf Inge Wang

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

Løse reelle problemer

Løse reelle problemer

INF Uke 10. Ukesoppgaver oktober 2012

INF Ekstrainnlevering

INF1000: noen avsluttende ord

Matematikk Øvingsoppgaver i numerikk leksjon 4 m-ler

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

Transkript:

1 TDT4110 Informasjonsteknologi grunnkurs: Eksempler Kunnskap for en bedre verden Amanuensis Terje Rydland Kontor: ITV-021 i IT-bygget vest (Gløshaugen) Epost: terjery@idi.ntnu.no Tlf: 735 91845 TDT4105 IT G 1 Uke44-Matlab-11_TR 22. oktober 2015 2 Mangekanter Må finne en måte å representere mangekanter Finne egnet datastruktur En liste med hjørnepunkter En vektor med punkt-strukturer En liste med x-koordinatene og en liste med y-koordinatene En matrise med x- og y-verdiene i første og andre kolonne Andre forslag? 2 Uke44-Matlab-11_TR 22. oktober 2015

3 Tre alternativer 3 Uke44-Matlab-11_TR 22. oktober 2015 4 Omkrets av struct-mangekant Skriv kode for de andre alternativene selv. 4 Uke44-Matlab-11_TR 22. oktober 2015

5 return og break Terminering av funksjoner og løkker (før tiden) return break 5 Uke44-Matlab-11_TR 22. oktober 2015 6 Problem: Søke etter del-tabell Dersom del-tabell finnes i tabell, returnere true + rad og kolonne for øvre-venstre-hjørne Ellers returneres false + 0 for både rad og kolonne Funksjonssignatur: function [finnes, rad, kol] = finnmonster(t, m) Problemer? Løsning? 6 Uke44-Matlab-11_TR 22. oktober 2015

7 7 Uke44-Matlab-11_TR 22. oktober 2015 8 Mønstergjenkjenning 8 Uke44-Matlab-11_TR 22. oktober 2015

9 Pseudokode Hvis testmønsteret er større enn målmønsteret avsluttes funksjonen Start i øverste venstre hjørne Fortsett til man har funnet en match, eller vi har sjekket hele mønsteret Plukk ut en 3x3 matrise og sammenlign med målmatrisen Hvis de er like Marker hvor den ble funnet Ferdig - Returner resultat ellers Flytt testmatrisen en posisjon Returner at mønsteret ikke ble funnet 9 Uke44-Matlab-11_TR 22. oktober 2015 10 10 Uke44-Matlab-11_TR 22. oktober 2015

11 return og break, forts Overstyrer den normale programflyten Gir av og til enklere kode som er lettere å forstå Bør brukes sparsomt NB! break avslutter bare den (innerste) løkken den står i 11 Uke44-Matlab-11_TR 22. oktober 2015 12 TDT4110 Informasjonsteknologi grunnkurs: Filbehandling Kunnskap for en bedre verden Amanuensis Terje Rydland Kontor: ITV-021 i IT-bygget vest (Gløshaugen) Epost: terjery@idi.ntnu.no Tlf: 735 91845 TDT4105 IT G 12 Uke44-Matlab-11_TR 22. oktober 2015

13 Læringsmål Datastrukturer: Cell Arrays Structures Læringsmål og pensum Problemløsing og litt repetisjon return og break overstyring av normal programflyt Pensum Kapittel 8 Data Structures 13 Uke44-Matlab-11_TR 22. oktober 2015 14 Problemløsning/programmering Finne mønster i større tabell Lagre mangekanter vha. struct Filbehandling Mål: Forstå forskjell på tekstlig og binær form Forstå hvordan data organiseres i en fil Kunne overføre data til og fra filer i Matlab Pensum i Matlab-boka Læringsmål/pensum 3.6 (2.6 gammel bok) «Introduction to File Input/Output» 9 Advanced File Input and Output 14 Uke44-Matlab-11_TR 22. oktober 2015

15 Filer: Motivasjon Kan ikke alltid gjenskape data eller regne ut ting på nytt Ofte behov for å lagre verdier som skal leses inn eller er beregnet i et program for senere bruk Data kan være av samfunnsmessig interesse (værvarsling) og påkrevet lagret for senere tilgang Mange beregninger på realistiske systemer lager store datamengder må lagre for å kunne studere data med andre verktøy, f.eks. visualisering Overføre data mellom programmer 15 Uke44-Matlab-11_TR 22. oktober 2015 16 Tekstlig og binær form Mindre datamengder kan med fordel lagres som (ascii) tekst så vi kan se hva verdiene er Dette kalles å lagre data på tekstlig form Tallverdier lagres vanligvis som binært kodede tall Hvert tall (double) bruker 8 bytes i minnet (RAM) Ved lagring på tekstlig form oversetter Matlab fra binær form til en tekststreng Med tegnene: 0, 1,..., 9,., +, -, e Hvert tegn (enkelt-bokstav) bruker 2 bytes Lagring på binær form Praktisk for datamaskiner, veldig upraktisk for mennesker! 16 Uke44-Matlab-11_TR 22. oktober 2015

17 Ulemper med tekstfiler Oversetting til/fra tekstlig form Tar (vanligvis) større plass Fordeler med tekstfiler Binærfiler versus tekstfiler Kan lese innholdet (så lenge filen er liten) Standardisert, kan utveksle data mellom programmer Kan skrive inn nytt eller endret innhold i en teksteditor Filer kan bli store, veldig store Data fra værberegning kan være 4 GB (4 milliarder byte) Effektivitet og raske oppslag er viktig Lesbarhet (for mennesker) er irrelevant Vi skal se på behandling av tekstfiler 17 Uke44-Matlab-11_TR 22. oktober 2015 18 Lagring av matriser Matlab gjør det enkelt å lagre matrisedata Samme datatype Regelmessig form (samme antall kolonner i alle rader) save <filnavn> <variabel> -ascii Lager variabel i tekstfil med filnavn save <filnavn> <variabel> -ascii -append Legger variabels innhold til i tekstfilen load <filnavn> Henter data fra fil <filnavn> til variabel <filnavn> <variabel> = load( <filnavn> ) Henter inn data fra fil til oppgitt variabel type <filnavn> Skriver ut innholdet i filen 18 Uke44-Matlab-11_TR 22. oktober 2015

19 Eksempel 1 19 Uke44-Matlab-11_TR 22. oktober 2015 20 Eksempel 1 (forts.) save og load er den enkleste måten å bruke filer Forutsetter matrisedata, ikke alltid det passer 20 Uke44-Matlab-11_TR 22. oktober 2015

21 Eksempel: Værdata Middeltemperaturer fra Voll i september: voll_sept_2011.txt Hver linje: dag mnd år temp Ønsker funksjon som beregner: Gjennomsnittstemperatur Laveste temperatur Høyeste temperatur 21 Uke44-Matlab-11_TR 22. oktober 2015 22 vaerstat.m 22 Uke44-Matlab-11_TR 22. oktober 2015

23 Eksempelkjøring 23 Uke44-Matlab-11_TR 22. oktober 2015 24 Lavnivå filbehandling Åpner filer (etablerer kobling til filen) <fil-id> = fopen( <filnavn>, <tilgangstype>'); fil-id er en filpeker (referanse til filen) fil-id settes til -1 ved problemer Tilgangstyper: r lese (fra starten) w skrive (sletter gammelt fil-innhold først) a legge til (skrive på slutten av filen) Lukker filen når vi er ferdig med den <status> = fclose(<fil-id>) Returnerer 0 når det går bra, -1 ellers 24 Uke44-Matlab-11_TR 22. oktober 2015

25 Lesing/skriving fgetl(<fil-id>) Leser inn en linje Returnerer en tekststreng med linjens innhold feof(<fil-id>) usann så lenge det er mer data igjen i filen (som ikke er lest) sann når vi har kommet til slutten av filen fprintf(<fil-id>, <formatstreng>, <verdier>) Skriver til filen med <fil-id> Som til skjerm Mange flere (spesialiserte) muligheter, se læreboka og hjelp i Matlab. 25 Uke44-Matlab-11_TR 22. oktober 2015 26 Eksempelfil: Personregister Data om en person på hver linje Feltindikatorer: #navn: #adresse: #faar: Leser inn en og en linje og plukker ut data 26 Uke44-Matlab-11_TR 22. oktober 2015

27 lesandebyfil.m 27 Uke44-Matlab-11_TR 22. oktober 2015 28 Leser en og en linje Skriver ut hele linjen Eksempelkjøring 28 Uke44-Matlab-11_TR 22. oktober 2015

29 Plukker ut data: lesandebyfil2.m 29 Uke44-Matlab-11_TR 22. oktober 2015 30 Kjøreeksempel 30 Uke44-Matlab-11_TR 22. oktober 2015

31 Andeby- database Leser inn persondata til en vektor av strukturer Personpost (struktur): Vektor av personer: 31 Uke44-Matlab-11_TR 22. oktober 2015 32 lesandeby.m 32 Uke44-Matlab-11_TR 22. oktober 2015

33 Kjøreeksempel 33 Uke44-Matlab-11_TR 22. oktober 2015 34 Å legge til en karakter Lager funksjon som registrerer ny Andeby-karakter Tar person-post som inn-parameter Åpner filen for å legge til ( a ) Lager tekstlinje ut fra person-posten Skriver tekstlinje til fil fprintf(fid, '%s\n', linje); Lukker filen 34 Uke44-Matlab-11_TR 22. oktober 2015

35 regandebykarakter.m 35 Uke44-Matlab-11_TR 22. oktober 2015 36 Kjøreeksempel 36 Uke44-Matlab-11_TR 22. oktober 2015