Textsträngar från/till skärm eller fil



Relevanta dokument
Datorlära 3 Octave Workspace ovh mijlö Skriva text på skärmen Värdesiffror Variabler och typer Strängar Makro Vektorer

TAIU07 Matematiska beräkningar med Matlab

Börja programmera. Kapitel 4 i kompendiet Jämförande uttryck Villkorssatser Loopar (slingor) Funktioner. Läs inte avsnitt 4.2.3

Enklast att skriva variabelnamn utan ; innehåll och variabelnamn skrivs ut

Uppgift 1 ( Betyg 3 uppgift )

Lösningar till tentauppgifterna sätts ut på kurssidan på nätet idag kl 19. Omtentamen i Programmering C, 5p, fristående, kväll,

Algoritmanalys. Genomsnittligen behövs n/2 jämförelser vilket är proportionellt mot n, vi säger att vi har en O(n) algoritm.

Tentaupplägg denna gång

Introduktion till integrering av Schenkers e-tjänster. Version 2.0

Datorlära 6. Arbeta med strängar Inmatning med tangentbordet Bygga ett program med inmatning, funktioner, osv

Tentaupplägg denna gång

Lösningar till uppgifterna sätts ut på kurssidan på nätet idag kl Omtentamen i Programmering C, 5p, A1, D1, E1, Fri, Pr1, Te/Ek1,

Programmeringsteknik med C och Matlab

Funktioner och grafritning i Matlab

Matematisk Modellering

Tentamen i Programmering grundkurs och Programmering C

MMA132: Laboration 1 Introduktion till MATLAB

Uppgift 1 ( Betyg 3 uppgift )

Föreläsning 6: Introduktion av listor

6 Rekursion. 6.1 Rekursionens fyra principer. 6.2 Några vanliga användningsområden för rekursion. Problem löses genom:

MATLAB. Python. Det finns flera andra program som liknar MATLAB. Sage, Octave, Maple och...

Tentamen OOP

Tentamen i. för D1 m fl, även distanskursen. fredag 13 januari 2012

Statistikens grunder 1 och 2, GN, 15 hp, deltid, kvällskurs

TANA17 Matematiska beräkningar med MATLAB för M, DPU. Fredrik Berntsson, Linköpings Universitet. 4 december 2015 Sida 1 / 26

1 Texthantering. 1.1 Typen char. Exempel, skriv ut alfabetet

Föreläsning 13 och 14: Binära träd

Syftet med den här laborationen är att du skall bli mer förtrogen med följande viktiga områden inom matematisk statistik

Lösningsförslag, tentamen FYTA11 Javaprogrammering

DD1361 Programmeringsparadigm. Carina Edlund

Tentamen i Introduktion till programmering

Variabler och konstanter

Uppgift 1 ( Betyg 3 uppgift )

För att använda sifferkrypto använder man en rektangel om 5 gånger 6 bokstäver.

Objektorienterad programmering D2

Tentamen TEN1 HI

Prov kapitel FACIT Version 1

Kort om programmering i Matlab

Omtentamen (del 1, 6 högskolepoäng) i Programkonstruktion och datastrukturer (1DL201)

MATLAB the Matrix Laboratory. Introduktion till MATLAB. Martin Nilsson. Enkel användning: Variabler i MATLAB. utvecklat av MathWorks, Inc.

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

Sätt att skriva ut binärträd

Introduktion till PHP

Senaste revideringen av kapitlet gjordes , efter att ett fel upptäckts.

TSBB14 Laboration: Intro till Matlab 1D

Programmeringsuppgifter 1

Tentamen i. för D1 m fl, även distanskursen. lördag 19 januari 2013

Variabler. TANA81: Beräkningar med Matlab. Matriser. I Matlab skapas en variabel genom att man anger dess namn och ger den ett värde:

Programmering för Språkteknologer II. Innehåll. Associativa datastrukturer. Associativa datastrukturer. Binär sökning.

Introduktion till algoritmer - Lektion 4 Matematikgymnasiet, Läsåret Lektion 4

Tentamen TAIU07 Matematiska beräkningar med MATLAB för MI

Ickelinjära ekvationer

Grundläggande programmering med C# 7,5 högskolepoäng

Tentamen DE12, IMIT12, SYST12, ITEK11 (även öppen för övriga)

Programmering A C# VT Ett kompendie över Programmering A (50p) i c# Stefan Fredriksson

READ (*, 100) X,Y,Z,T,U,V 100 FORMAT (6F5.2) för att läsa in talen

Lösningsförslag till tentamen i EDA011/EDA017 Programmeringsteknik för F, E, I, π och N 27 maj 2008

Repetition av filer Grundkurs i programmering med Python

5 Grundläggande in- och utmatning

Flera kvantifierare Bevis Direkt bevis Motsägelse bevis Kontrapositivt bevis Fall bevis Induktionsprincipen. x y (x > 0) (y > 0) xy > 0 Domän D = R

RödGrön-spelet Av: Jonas Hall. Högstadiet. Tid: minuter beroende på variant Material: TI-82/83/84 samt tärningar

Övningar i JavaScript del 2

Metodanrop - primitiva typer. Föreläsning 4. Metodanrop - referenstyper. Metodanrop - primitiva typer

KPP053, HT2016 MATLAB, Föreläsning 2. Vektorer Matriser Plotta i 2D Teckensträngar

4 Sammansatta datatyper

För att skriva data till skärmen ( konsolen) används objektet System.out tillsammans med metoden println eller print.

Rekursion och induktion för algoritmkonstruktion

Funktionell programmering DD1361

Uppgift 1 - programmet, Uppg6.m, visade jag på föreläsning 1. Luftmotståndet på ett objekt som färdas genom luft ges av formeln

Procedurer och villkor. Rekursiva procedurer. Exempel: n-fakultet

Björn Abelli Programmeringens grunder med exempel i C#

Procedurer och villkor

TANA17 Matematiska beräkningar med Matlab

Språket Scheme. DAT 060: Introduktion till (funktions)programmering. DrScheme. uttryck. Jacek Malec m. fl. evaluering av uttryck.

Tips och tricks 1 Cadcorp SIS

Matlabövning 1 Funktioner och grafer i Matlab

Uppgift (poäng) 1 (2) 2 (3) 3 (4) 4 (4) 5 (3) 6 (4) 7 (6) 8 (6) 9 (8) Summa

Dagens program. Programmeringsteknik och Matlab. Administrativt. Viktiga datum. Kort introduktion till matlab. Övningsgrupp 2 (Sal Q22/E32)

TAIU07 Matematiska beräkningar med MATLAB för MI. Fredrik Berntsson, Linköpings Universitet. 15 januari 2016 Sida 1 / 26

Automater. Matematik för språkteknologer. Mattias Nilsson

Rekursion. Att tänka rekursivt Att programmera rekursivt i Java Exempel. Programmeringsmetodik -Java 254

Tentamen TANA17 Matematiska beräkningar Provkod: DAT1 Godkänd: 8p av totalt 20p Tid: 14:e januari klockan

Matematisk statistik allmän kurs, MASA01:B, HT-14 Laboration 2

Tentamen i Objektorienterad programmering

Numeriska Metoder och Grundläggande Programmering för P1, VT2014

TANA17 Matematiska beräkningar med Matlab

Språkigenkänning. en tillämpning av OCR system och klassificering. Projekt i Bildanalys. Anna Lindholm Eskil Jönsson

KPP053, HT2015 MATLAB, Föreläsning 1. Introduktion till MATLAB Skript Inläsning och utskrift av variabler Ekvationssystem Anonyma funktioner

Övningar Dag 2 En första klass

Tänk på följande: Det finns en referensbok (Java) hos tentavakten som du får gå fram och läsa men inte ta tillbaka till bänken.

a), c), e) och g) är olikheter. Av dem har c) och g) sanningsvärdet 1.

Dynamisk HTML JavaScript och webbläsarens objektmodell

TANA81: Simuleringar med Matlab

TAIU07 Matematiska beräkningar med Matlab

TDDC74 Programmering, abstraktion och modellering DUGGA 2

Tentamen i Sannolikhetslära och statistik (lärarprogrammet) 12 februari 2011

Uppgift 1 (vadå sortering?)

Föreläsning 5: Rekursion

2 februari 2016 Sida 1 / 23

Laboration 2: 1 Syfte. 2 Väntevärde och varians hos en s.v. X med fördelningen F X (x) MATEMATISK STATISTIK, AK FÖR BYGG, FMS 601, HT-08

Transkript:

Textsträngar från/till skärm eller fil Textsträngar [Kapitel 8.1] In- och utmatning till skärm [Kapitel 8.2] Rekursion Gränssnitt Felhantering In- och utmatning till fil Histogram 2010-10-25 Datorlära, fysikexperiment - del 6 1

Textsträngar (1) Strängar skapas med text inom enkla citattecken: >> str = 'En sträng'; Svenska tecken kan användas. Stora och små bokstäver skiljer sig åt. Strängar kan ses som vektorer av tecken Det går att plocka ut enstaka tecken med indexoperatorn: >> str(7) ä Kolonoperatorn kan användas för att ta ut en delsträng: >> str(4:9) sträng Strängen har, liksom vektorn, en längd >> length(str) 9 2010-10-25 Datorlära, fysikexperiment - del 6 2

Textsträngar (2) Sammanlänkning av strängar: >> str2 = ['En 'sträng'] eller [ En, sträng ] En sträng Uttrycket skapar alltså inte en vektor med två element av typen sträng utan en vektor med tecken. Konvertera tal till text med num2str: >> num2str(47.11) 47.11 Funktionen findstr() letar efter en delsträng i en sträng: >> findstr(str2,'sträng') 4 Resultatet är ett index i strängen eller [] om delsträngen inte hittades. 2010-10-25 Datorlära, fysikexperiment - del 6 3

In- och utmatning Funktionen input används för enkel inmatning av tal: >> x = input('ange ett tal'); Om användaren nu skriver in ett tal, tilldelas x detta värde. För att skriva ut en blandning av tal och text (då num2str inte är tillräcklig) används sprintf : >> s = sprintf('pi är %.3f, med 3 decimaler',pi); >> disp(s) Pi är 3.142, med 3 decimaler Här anger % att det som följer är en utmatning av formaterad data. '.3f' anger att det är ett flyttal (f) med tre decimaler som skall skrivas ut. Det andra argumentet är talet som skall formateras (pi). 2010-10-25 Datorlära, fysikexperiment - del 6 4

In- och utmatning (2) Fler formateringsflaggor till sprintf %d skriver ut ett heltal %X.Yf skriver ut ett tal med Y decimaler och där hela talet skall vara X tecken långt. Bra för att formatera tabeller, varje kolumn blir lika bred: >> s = sprintf('pi är %20.8f, med %d decimaler.',pi,8); >> disp(s) Pi är 3.14159265, med 8 decimaler. Se i hjälpen för sprintf för mer information. 2010-10-25 Datorlära, fysikexperiment - del 6 5

Rekursion En rekursiv funktion anropar sig själv. Ett enkelt exempel är beräkning av fakultet (!) function f=factorial(x) if(x==0) f = 1; else f = x*factorial(x-1); end Vid rekursion finns alltid ett basfall och minst ett rekursivt fall I exemplet ovan är basfallet då x är 0. Rekursion är inte alltid det mest effektiva sättet att lösa ett problem men lösningen kan bli enkel och tydlig. 2010-10-25 Datorlära, fysikexperiment - del 6 6

Gränssnitt För att underlätta arbetet för såväl den som gör funktionen som den som skall använda den. Tänk igenom användandet innan. Skriv kommentarer: Vad funktionen är tänkt att göra Förväntad användning Begränsningar Villkor för parametrar (argument) function r = randomgauss(mean,sigma) % Dra ett slumptal enligt en normalfördelning med % medelvärde mean och standardavvikelse sigma % % parameter mean : Medelvärde % parameter sigma : Standardavvikelse 2010-10-25 Datorlära, fysikexperiment - del 6 7

Felhantering För att rapportera ett fel används funktionen error Bra att använda vid kontroll av argument >> error('minfunktion() Nu har det blivit fel') Error: minfunktion() Nu har det blivit fel Bra att använda vid kontroll av argument. Varna användaren med funktionen warning Oväntat resultat Lång beräkningstid Möjlig brist på precision >> warning('minfunktion() Det här tar tid! ) Warning: minfunktion() Det här tar tid! 2010-10-25 Datorlära, fysikexperiment - del 6 8

Felhantering (2) Exempel function f=factorial(x) % Beräknar fakulteten av ett positivt heltal % parameter x : Positivt heltal if (x < 0) error('factorial() x måste vara positivt') elseif (x > 1000) warning('factorial() det här blir ett stort tal') end if(x==0) f = 1; else f = x*factorial(x-1); end 2010-10-25 Datorlära, fysikexperiment - del 6 9

In- och utmatning till fil Att spara data i textfiler är mycket vanligt. Enkelt både att läsa filerna själv och att låta ett program göra det. Öppna en fil med funktionen fopen och stäng med fclose. filen = fopen('min_textfil.txt','w'); % skriv data här fclose(filen); Första argumentet är ett filnamn, andra argumentet är en sträng 'w' för att skriva och 'r' för att läsa. Funktionen returnerar ett objekt som vi kan använda för att hänvisa till just den här öppna filen. 2010-10-25 Datorlära, fysikexperiment - del 6 10

In- och utmatning till fil (2) På sidan 4 introducerades funktionen sprintf som skapar en formaterad sträng. För filer finns motsvarande funktion fprintf som skriver formaterad text till en fil: datavektor = 1:10; filen = fopen('min_textfil.txt','w'); fprintf(filen,'%d\r\n',datavektor); fclose(filen); I exemplet skrivs alla talen i vektorn ut, ett tal per rad. %d anger att talen som skrivs ut är heltal. %e för flyttal, %f för fixpunktstal och %s för strängar. För att skriva ut en radbrytning använd '\r\n. 2010-10-25 Datorlära, fysikexperiment - del 6 11

In- och utmatning till fil (3) För att läsa från en fil används funktionen fscanf. Filen måste först öppnas för läsning: filen = fopen('min_textfil.txt','r'); datavektor = fscanf(filen,'%d'); fclose(filen); 2010-10-25 Datorlära, fysikexperiment - del 6 12

Histogram Den inbyggda funktionen hist används för att rita ut grafer över klassindelade data. Ett histogram har ett antal klasser eller korgar. Funktionen hist tar vanligen två argument, en vektor med data och ett tal som anger antalet klasser. Intervallet mellan det minsta och största elementen i vektorn delas sedan upp (i antalet klasser). Grafen visar sedan hur många element i vektorn som hamnar i varje klass. 2010-10-25 Datorlära, fysikexperiment - del 6 13

Histogram Exempel: % Födelsemånad för ett antal personer m = [1 4 5 2 3 9 12 1 3 4 9 8 4 10 5 11 6 7 2]; hist(m,12); 2010-10-25 Datorlära, fysikexperiment - del 6 14