F4 (5): Datastrukturer (kap. 6 7)

Storlek: px
Starta visningen från sidan:

Download "F4 (5): Datastrukturer (kap. 6 7)"

Transkript

1 F4 (5): Datastrukturer (kap. 6 7) komplexa tal strängar och textbehandling posttabeller glesa tabeller celltabeller logisk tabell och mask GUI nästa F? formelbehandling p 1 (38) JOp,Staffan Romberger, CSC, KTH,

2 Komplexa tal Den imaginära enheten skrivs i eller j om man inte har gjort om i eller j till vanlig variabel. Kommandot clear i j återställer. Kommandot isreal undersöker om alla element har imaginärdelen 0. Funktioner som är definierade i matematiken för komplexa argument eller kan ge komplexa resultat fungerar så i Matlab. Exempel: Skriv en funktion som ritar bilden av +/-s kvadraten z = s (1+t i, t+i, 1 t i, t i) för 1<=t<=1 under avbildningen w=f(z) Im w = f(z) z = x+iy Re w = u+iv Im Re p 2 (38) JOp,Staffan Romberger, CSC, KTH,

3 function ritakomplex(fun,s,step) % rita bild av "+/- s" kvadrat i komplexa z-planet if nargin < 3 step = 0.02; if nargin < 2 s = 1; t = [-1:step:1]; z = s*[1+t*i -t+i -1-t*i t-i]; % varför denna ordning % på de fyra delarna? w = feval(fun,z); % fun är : namn på funktion myplot(w,'-'); % tjocka kurvor & stort % typsnitt p 3 (38) JOp,Staffan Romberger, CSC, KTH,

4 Testa med ritakomplex('exp'); exp(x+i*y)= exp(x)*(cos y+i*sin y) De 4 delarna blir: (t: -1 1) 1: e*(cos t+i*sin t) 2: exp(-t)*(cos 1+i*sin 1) 3: (1/e)*(cos t-i*sin t) 4: exp(t)*(cos 1-i*sin 1) p 4 (38) JOp,Staffan Romberger, CSC, KTH,

5 Funktioner som har med komplexa tal att göra är: real(z) realdelen imag(z) imaginärdelen isreal(z) imaginärdelen är 0 abs(z) beloppet angle(z) argumentet conj(z) komplex-konjugat, negera imaginärdelen Exempel: Julia-mängd the Julia set consists of values such that an arbitrarily small perturbation can cause drastic changes in the sequence of iterated function values Gaston Maurice Julia (February 3, 1893 March 19, 1978) p 5 (38) JOp,Staffan Romberger, CSC, KTH,

6 Studera Newton-iteration med polynom 3 3 z z + 1 = 0: n + 1 zn+ 1 = zn 2 3z n π i(2k 1) Vi färgar komplexa talet z 0 efter den rot rk = e 3, k = 1,2, 3 som Newton-iterationen med start i z 0 konvergerar mot. Hur ser en sådan karta ut? Vi vet, att Newton-iteration konvergerar mot en rot om man startar tillräckligt nära, så det måste finnas små cirklar med färg k omkring r k. Julia-mängden är punkterna mellan olika färger. I matlab-programmet itererar vi med alla punkter i en kvadrat samtidigt. p 6 (38) JOp,Staffan Romberger, CSC, KTH,

7 n = 500; x = linspace(0,2,n)-1; y = x'; z = 1i*y*ones(1,n)+ones(n,1)*x; % n x n kvadrat av komplexa tal nit = 0; root = exp((2*(1:3)-1)*1i*pi/3); % rötterna while 1 % oändlig while slinga clf % sudda z = z - (z.^3 + 1)./(3*z.^2); % Newton-iteration nit = nit + 1; % räkna iterationer f = zeros(size(z)); % initiera bild-tabell f for k = 1:3 % 3 rötter ind = abs(z-root(k)) < 0.1; % punkter nära en rot f(ind) = k; % logisk indicering (mask) surf(x,y,f); shading interp, view(2), axis equal % plotta 3D title (['Efter ',num2str(nit),' iter.']) pause p 7 (38) JOp,Staffan Romberger, CSC, KTH,

8 2 iterationer. 6 iterationer. 17 iterationer. p 8 (38) JOp,Staffan Romberger, CSC, KTH,

9 Strängar och textbehandling Lagring, utskrift, operatorer, funktioner, ischar, double/int16/abs, char, [ ; ], char(' ',' '), deblank, strcat, strvcat (med utfyllnad), strcmp, strcmpi, strncmp, strncmpi, findstr, lower, upper, strings, tecken enligt Latin1 konverteras ok, strtok, p 9 (38) JOp,Staffan Romberger, CSC, KTH,

10 Strängar forts. En sträng är en radvektor med teckenelement. Konkatenera (sammanfoga) strängar horisontellt: t = ['abc' 'def ' 'ghi '] inklusive avslutande blanktecken (och andra»vittecken») i delarna, t = strcat('abc','def ','ghi ') ignorera avslutande»vittecken» i delarna. Konkatenera vertikalt: t = ['12345';'67890'] raderna måste vara lika långa t = strvcat('123',' ','45678') alla rader fylls med blanka till längsta radens längd, tomma strängar ignoreras. p 10 (38) JOp,Staffan Romberger, CSC, KTH,

11 t = char('123',' ','45678') som strvcat men tomma strängar ignoreras ej. Man konverterar mellan tal och tecken med char och t.ex. abs. Man testar om tecken är bokstav med isletter och om ett tecken är»vittecken» med isspace. Man konverterar mellan versaler och gemena med lower och upper. Det finns olika sätt att söka och jämföra texter: findstr(text1, text2) ger de index i text1 där text2 börjar, strcmp(text1, text2) ger sant om texterna är lika, strcmpi(text1, text2) fungerar som strcmp(upper(text1), upper(text2)) dvs. ignorerar skiftläge strncmp(text1, text2, n) jämför de första n tecknen i texterna, p 11 (38) JOp,Staffan Romberger, CSC, KTH,

12 [t,r] = strtok(s,d) letar nästa»token» (symbol) i s. Hoppa över inledande tecken ur d (delimiters, avskiljare), t är följande tecken som inte finns i d och r är resten av s. p 12 (38) JOp,Staffan Romberger, CSC, KTH,

13 RPN och evaluering av uttryck RPN Reverse Polish Notation parentes-fri evaluering av uttryck EX 2+3: : *5: * + : 17 2*(3+5): * : 16 (3+5)*2: * : 16 Uppgift: Matlab-function som evaluerar en sträng innehållande ett korrekt RPN-uttryck med tal och operatorerna +,-,*,/,^ Lösning Som mini-räknare (HP) utan = -tangent. Ett register x, och en stack: Stack: Ett Last In, First Out minne där man ser bara sista elementet; som en tallriks-stapel. push(y): lägg y på stacken; p 13 (38) JOp,Staffan Romberger, CSC, KTH,

14 y = pop: ta bort sista el. i stacken och lägg i y. Aritmetisk enhet (maskininstruktioner) som gör y = pop; x = y op x; Initiering: töm stack, NaN-> stack inmatning: tal eller operator. 1: Om inmatning = tom goto 2 annars om inmatning = operator op, y = POP % ta sista elementet ur stacken x = y op x % annars inmatning -> x, x -> stack, goto 1 2: x innehåller värdet. p 14 (38) JOp,Staffan Romberger, CSC, KTH,

15 function x = myeval2(expr) clearstack; % empty stack x = NaN; % will never be used for non-empty expression while ~isempty(expr) [z,expr] = strtok(expr,' '); % z is next token, a string switch z case '+' x = pop+x; % STACK holds numbers, case '-' x = pop-x; case '*' x = pop*x; case '/' x = pop/x; case '^' x = pop^x; otherwise push(x); x = str2double(z); % so convert p 15 (38) JOp,Staffan Romberger, CSC, KTH,

16 function x = pop global STACK K try % pops the stack x = STACK(K); K = K-1; catch x = NaN; disp('attempt to pop empty STACK') function push(x) global STACK K KMAX if isempty(stack) % pushes x onto STACK KMAX = 10; STACK = NaN(KMAX,1); K = 0; K = K+1; if K <= KMAX, STACK(K)=x; else disp(['stack overflow ',num2str(x)]) STACK %test-utskrift p 16 (38) JOp,Staffan Romberger, CSC, KTH,

17 function clearstack % clears STACK global STACK STACK = []; p 17 (38) JOp,Staffan Romberger, CSC, KTH,

18 Posttabeller - struct I vanliga tabeller och celltabeller når man elementen med index. I posttabeller använder man namn för att nå elementen (=posterna). Vi kan använda en posttabell för att lagra information om bankkonton. Beskrivningen av ett konto är en»post», ett element i posttabellen. Varje post har samma uppsättning fält med varsitt namn. fältnamnen namn, konto, ranta och saldo funktionen trans, gör en transaktion trans har en lokal funktion regfind för att hitta en post med givet kontonummer. p 18 (38) JOp,Staffan Romberger, CSC, KTH,

19 Hur lagra konto-registret, säg st. konton, hur komma åt det från de olika funktionerna? Lösning: REG som global posttabell. Registret kan ju inte vara inparameter: de ändringar som görs av funktionen ska märkas utanför. Vi kan ha registret både som in- och utparameter men det innebär alltför mycket kopiering. function saldo = trans(accountno,amount) % Utför en banktransaktion. % saldo = trans(accountno,amount) % Om amount >=0 insättes amount på kontot. % Om amount<0 kontrolleras saldot och % om saldo+amount<0 skrivs ett varningsmeddelande % annars ändras saldo till saldo+amount. p 19 (38) JOp,Staffan Romberger, CSC, KTH,

20 Bankexempel forts. global REG index = regfind(accountno); % hitta kontot if index<=0 disp('kontonumret är okänt.'); saldo = -1; return; else % obs! utan ; ger fyra raders utskriften... strvcat(['transaktion med belopp ',num2str(amount)],... ['på konto ' num2str(accountno) ' med '],... ['innehavare ' REG(index).namn ' och ],... [ saldo före: ' num2str(reg(index).saldo) '.']) if REG(index).saldo+amount<0 % ingen täckning disp('övertrassering. Transaktionen utförs ej.'); saldo = REG(index).saldo; p 20 (38) JOp,Staffan Romberger, CSC, KTH,

21 else % OK, utför saldo = REG(index).saldo+amount; REG(index).saldo = saldo; % function index = regfind(accountno) global REG index = -1; for no = 1:numel(REG) % är detta effektivt? (Nej) if REG(no).konto==accountno index = no; p 21 (38) JOp,Staffan Romberger, CSC, KTH,

22 Bankexempel forts. global REG REG.konto = 12357; REG.namn = 'Kloker'; % obs strängparenteser behövs REG.ranta = 2.2; REG.saldo = 200; REG(2).konto = ; REG(2).namn = 'Trötter'; REG(2).ranta = 1.9; REG(2).saldo = 10500; >>trans(12357,100) Transaktion med belopp 100 på konto med innehavare Kloker och saldo före: 200. ans = 300 p 22 (38) JOp,Staffan Romberger, CSC, KTH,

23 >>trans(12357,100) Transaktion med belopp 100 på konto med innehavare Kloker och saldo före: 300. ans = 400 >>trans(12358,100) Kontonumret är okänt. ans = -1 >>trans(12357,-1000) Transaktion med belopp på konto med innehavare Kloker och saldo före: 300. Övertrassering. Transaktionen utförs ej. ans = 300 p 23 (38) JOp,Staffan Romberger, CSC, KTH,

24 Alt: läs från fil function readreg % program to read bank file % Reg(k).namn %.konto %.ranta %.saldo % clear all global REG fname = uigetfile('*','bank file'); fid = fopen(fname,'r'); % filreferens % kan det misslyckas? %if fid==-1,disp( misslyckat! ), nacs = 0; % while 1 line = fgetl(fid); % nästa rad från filen if line == -1 % of file break p 24 (38) JOp,Staffan Romberger, CSC, KTH,

25 nacs = nacs + 1; [nam,accno,ran,sald] = strread(line, '%s%d%f%f','delimiter',' '); REG(nacs).namn = nam; % text REG(nacs).konto = accno; % heltal REG(nacs).ranta = ran; % ranta i %, flyttal REG(nacs).saldo = sald; % saldo, flyttal fclose(fid); % p 25 (38) JOp,Staffan Romberger, CSC, KTH,

26 Mask logical indices Man kan välja ut vissa element i en tabell så att ast dessa element påverkas av en operation och övriga element lämnas opåverkade. För detta använder man en»logisk tabell». Användningen liknar användningen av masker i Photoshop o.d. Se också indicering av bild-tabellen f i Julia.m Ex. Fördubbla de positiva elementen i A. >>A = [0 1-7;-2 4 8; ]; >>m = A>0; m ( ) >>A(m) = 2*A(m) A = p 26 (38) JOp,Staffan Romberger, CSC, KTH,

27 Radplanering längre exempel Skriv en funktion som radplanerar en text, t, till angiven radlängd. t = ['Här har vi ett exempel på en text '... 'som ska radplaneras. Jag hoppas att det '... 'går bra.']; paragraph(t,12) Algoritm: Hitta alla blanktecken (findstr( )). Ord kan börja efter ett blanktecken och kan sluta med textens sista tecken, lägg därför till 0 före och numel(t)+1 efter Antag att nästa ord börjar efter nästa blanktecken och slutar före följande blanktecken. Ignorera tomma ord (flera blanka i rad). Om ordet ryms på raden lägg till blanktecken och ordet och håll reda på radens längd. p 27 (38) JOp,Staffan Romberger, CSC, KTH,

28 Om ordet inte ryms, lägg till raden i textmatrisen och lägg det nya ordet först på raden. När texten är slut, lägg sista raden till textmatrisen. function text = paragraph(t,llength) % Radplanerar texten t till radlängden llength. bpos = [0 findstr(t,' ') numel(t)+1]; % Index för blanka text = ''; % Det blivande stycket (textmatris), tom line = ''; % Aktuell rad, tom lpos = llength+1; % Antalet använda platser på aktuell rad: % se till att ny rad startas omedelbart for bno = 1:numel(bpos)-1 % För varje möjligt ord % Sök nästa ord, deblank ignorerar avslutande blanka word = deblank(t(bpos(bno)+1:bpos(bno+1)-1)); if ~isempty(word) % kunde ju vara bara blanka if llength<lpos+1+numel(word); p 28 (38) JOp,Staffan Romberger, CSC, KTH,

29 % Ordet ryms ej, initiera ny rad text = strvcat(text,line); line = word; lpos = numel(word); else % Ordet ryms, % lägg en blank och ordet till aktuell rad line = [line ' ' word]; lpos = lpos+1+numel(word); % Hantera ev. icke-fylld slutrad if ~isempty(line) text = strvcat(text,line); p 29 (38) JOp,Staffan Romberger, CSC, KTH,

30 Radplanering forts. Testkör: >>t = ['Här har vi ett exempel på en text '... 'som ska radplaneras. Jag hoppas att det '... 'går bra.']; >>paragraph(t,12) ans = Här har vi ett exempel på en text som ska radplaneras. Jag hoppas att det går bra. p 30 (38) JOp,Staffan Romberger, CSC, KTH,

31 Radplanering testversion function text = paragraphdb(t,llength) % Radplanerar stycken till given radlängd. bpos = [0 findstr(t,' ') numel(t)+1] % Index för blanka text = ''; % Det blivande stycket line = ''; % Aktuell rad lpos = llength+1; % Antalet använda platser på raden % Så länge ord återstår for bno = 1:numel(bpos)-1 % Sök nästa ord it = bpos(bno)+1:bpos(bno+1)-1 % skriv ut! word = t(it); if ~isempty(word) if llength<lpos+1+numel(word) disp('ordet ryms ej'); % Initiera ny rad text = strvcat(text,line) line = word lpos = numel(word) else disp('ordet ryms'); % Lägg odet till aktuell rad p 31 (38) JOp,Staffan Romberger, CSC, KTH,

32 line =[line ' ' word] lpos = lpos+1+numel(word) % Hantera ev. icke-fylld slutrad if ~isempty(line) text = strvcat(text,line); Testkör: t = ['Här har vi ett exempel på en text '... 'som ska radplaneras. Jag hoppas att det '... 'går bra.']; >> paragraphdb(t,12) bpos = Columns 1 through Columns 14 through p 32 (38) JOp,Staffan Romberger, CSC, KTH,

33 86 91 it = Ordet ryms ej text = '' line = Här lpos = 3 it = Ordet ryms line = Här har lpos = 7 it = 9 10 Ordet ryms line = Här har vi lpos = 10 it = p 33 (38) JOp,Staffan Romberger, CSC, KTH,

34 Ordet ryms ej text = Här har vi line = ett lpos = 3 it = Empty matrix: 1-by-0 it = Ordet ryms line = ett exempel p 34 (38) JOp,Staffan Romberger, CSC, KTH,

35 Datarepresentation Talet sjutton kan representeras som strängen '17'; lagras som (ascii) koden för '1' som är 49 följt av koden för '7' som är 55 (8 bits binärt: , oktalt: 67, sedecimalt: 37) eller som heltal 17; lagras som binärt heltal (int64: 64 bits) eller som flyttal 1.7e1; lagras som ett annat bitmönster med delarna t1 m t2 e t1*m*2^(t2*e). Man kan konvertera mellan strängform och intern binär form med num2str, str2num och andra funktioner. p 35 (38) JOp,Staffan Romberger, CSC, KTH,

36 Glesa tabeller sparse arrays I vissa sammanhang använder man tabeller där de flesta elementen är 0. Man kan ange att tabeller ska lagras som glesa tabeller dvs. som en följd tripler (i,j,aij): i = radnummer, j = kolumnnummer och aij = värde för de element som inte är 0. Många numeriska metoder använder glesa matriser (Lab 5). Grafer kan beskrivas med glesa matriser t.ex. för att hitta billigaste väg eller gå igenom en labyrint. Ex. A = rand(100); m = A<0.95; % obs logisk indicering % m är 1D vektor A(m) = 0; % de flesta blir noll A = sparse(a) % spara bara icke-nollor spy(a) % visa var icke-nollor finns p 36 (38) JOp,Staffan Romberger, CSC, KTH,

37 Celltabeller cell arrays I vanliga tabeller har alla element samma typ. I celltabeller kan elementen ha olika typ. Ett 2 x 2 exempel >>a = [ {[1 3 7;2 0 6;0 5 1]}, {'This is a text.'}; {[3+4*i 5;-10*i 3-4*i]},{[]} ]; >>a(1,1) % cellen med index (1,1) ans = [3x3 double] >>a{1,1} % KRULLparentes! innehåll i cell index (1,1) ans = [ ] p 37 (38) JOp,Staffan Romberger, CSC, KTH,

38 En celltabell är en tabell med celler som element. Varje cell är en variabel. Man kan använda ett förenklat skrivsätt: a = {[1 3 7;2 0 6;0 5 1],'This is a text.';... [3+4*i 5;-10*i 3-4*i],[]}; En cell kan innehålla en celltabell. p 38 (38) JOp,Staffan Romberger, CSC, KTH,

F4: Datastrukturer (kap. 6 7) Komplexa tal Ö3: 5.2, 5.7, 5.14, 5.20

F4: Datastrukturer (kap. 6 7) Komplexa tal Ö3: 5.2, 5.7, 5.14, 5.20 F4: Datastrukturer (kap. 6 7) Ö3: 5.2, 5.7, 5.14, 5.20 komplexa tal strängar och textbehandling glesa tabeller celltabeller posttabeller logisk tabell och mask formelbehandling Komplexa tal Testa: ritakomplex('exp');:

Läs mer

Komplexa tal. F4 (5): Datastrukturer (kap. 6 7)

Komplexa tal. F4 (5): Datastrukturer (kap. 6 7) F4 (5): Datastrukturer (kap. 6 7) komplexa tal strängar och textbehandling glesa tabeller celltabeller posttabeller logisk tabell och mask formelbehandling Komplexa tal Den imaginära enheten skrivs i eller

Läs mer

Föreläsning 12: Datastrukturer & filer

Föreläsning 12: Datastrukturer & filer 1 11 februari 2016 SF1520 Num Met och grundl prog, del 1 för K, HT2015/VT2016 Föreläsning 12: Datastrukturer & filer Kap 6-8 i PEng Idag: Komplexa tal Strängar Glesa matriser Posttabeller Biblioteket igen,

Läs mer

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

TANA17 Matematiska beräkningar med MATLAB för M, DPU. Fredrik Berntsson, Linköpings Universitet. 8 december 2015 Sida 1 / 22 TANA17 Matematiska beräkningar med MATLAB för M, DPU Fredrik Berntsson, Linköpings Universitet 8 december 2015 Sida 1 / 22 Föreläsning 8 God programmeringsstil. Sammansatta datatyper: Poster. Cell-matriser.

Läs mer

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

Tentamen TANA17 Matematiska beräkningar Provkod: DAT1 Godkänd: 8p av totalt 20p Tid: 14:e januari klockan MAI/Linköpings universitet Fredrik Berntsson Tentamen TANA17 Matematiska beräkningar Provkod: DAT1 Godkänd: 8p av totalt 20p Tid: 14:e januari klockan 8.00-12.00 Redovisning Lös först uppgifterna i Matlab.

Läs mer

Introduktion till MATLAB

Introduktion till MATLAB 29 augusti 2017 Introduktion till MATLAB 1 Inledning MATLAB är ett interaktivt program för numeriska beräkningar med matriser. Med enkla kommandon kan man till exempel utföra matrismultiplikation, beräkna

Läs mer

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

Börja programmera. Kapitel 4 i kompendiet Jämförande uttryck Villkorssatser Loopar (slingor) Funktioner. Läs inte avsnitt 4.2.3 Börja programmera Kapitel 4 i kompendiet Jämförande uttryck Villkorssatser Loopar (slingor) Funktioner Läs inte avsnitt 4.2.3 2010-09-23 Datorlära, fysikexperiment - del 4 1 Jämförande uttryck 2010-09-23

Läs mer

Introduktion till programmering SMD180. Föreläsning 2: Variabler, uttryck och satser

Introduktion till programmering SMD180. Föreläsning 2: Variabler, uttryck och satser Introduktion till programmering Föreläsning 2: Variabler, uttryck och satser 1 1 Värden De grundläggande saker som en dator manipulerar resultaten av beräkningar kallas värden Värden vi stött på: 2 och

Läs mer

Läsning, skrivning, tangentbord, skärm. F6: Filhantering (kap. 8) Tabell på skärmen. save

Läsning, skrivning, tangentbord, skärm. F6: Filhantering (kap. 8) Tabell på skärmen. save F6: Filhantering (kap. 8) Läsning från tangentbordet, skrivning på skärmen Binär skrivning och läsning med save och load Skrivning på och läsning från textfil med save och load Användning av filreferenser,

Läs mer

Enkla datatyper minne

Enkla datatyper minne Enkla datatyper minne 143.56 sant Sonja A falskt 18 1999-10-29 Bertil Gralvik, KTH Ingenjörsskolan 1 Addera två tal Algoritmen Summera tal Mata in två tal Beräkna Skriv ut resultat Mata in tal 1 Mata in

Läs mer

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

MATLAB. Python. Det finns flera andra program som liknar MATLAB. Sage, Octave, Maple och... Allt du behöver veta om MATLAB: Industristandard för numeriska beräkningar och simulationer. Används som ett steg i utvecklingen (rapid prototyping) Har ett syntax Ett teleskopord för «matrix laboratory»

Läs mer

HI1024 Programmering, grundkurs TEN2 2015-10-30

HI1024 Programmering, grundkurs TEN2 2015-10-30 HI1024 Programmering, grundkurs TEN2 2015-10-30 KTH STH Haninge 8.15-13.00 Tillåtna hjälpmedel: En A4 handskriven på ena sidan med egna anteckningar Kursboken C PROGRAMMING A Modern Approach K. N. King

Läs mer

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

Tentamen TAIU07 Matematiska beräkningar med MATLAB för MI TEKNISKA HÖGSKOLAN I LINKÖPING Matematiska institutionen Beräkningsmatematik/Fredrik Berntsson Tentamen TAIU07 Matematiska beräkningar med MATLAB för MI Tid: 8-12, 19:e Mars, 2019 Provkod: TEN1 Hjälpmedel:

Läs mer

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

Numeriska Metoder och Grundläggande Programmering för P1, VT2014 Numeriska Metoder och Grundläggande Programmering för P1, VT2014 Föreläsning 2: Styrstrukturer & Programmeringsstrategi (Kap. 3 4 i MATLAB Programming for Engineers, S. Chapman) January 21, 2014 Innehåll:

Läs mer

Kompilering och exekvering. Föreläsning 1 Objektorienterad programmering DD1332. En kompilerbar och körbar java-kod. Kompilering och exekvering

Kompilering och exekvering. Föreläsning 1 Objektorienterad programmering DD1332. En kompilerbar och körbar java-kod. Kompilering och exekvering Föreläsning 1 Objektorienterad programmering DD1332 Introduktion till Java Kompilering, exekvering, variabler, styrstrukturer Kompilering och exekvering Ett program måste översättas till datorns språk

Läs mer

Föreläsning 13. Träd

Föreläsning 13. Träd Föreläsning 13 Träd Träd Ett träd är en datastruktur som tillåter oss att modellera sådant som vi inte kan modellera med linjära datastrukturer. Ett datavetenskapligt träd består av noder med pilar emellan.

Läs mer

Föreläsning 3. Stack

Föreläsning 3. Stack Föreläsning 3 Stack Föreläsning 3 ADT Stack Stack JCF Tillämpning Utvärdera ett postfix uttryck Stack implementerad med en array Stack implementerad med en länkad lista ADT Stack Grundprinciper: En stack

Läs mer

Villkor if, switch. F2: Styrstrukturer, programmeringsteknik (kap. 3 4) If-kommando forts. If-kommando forts.

Villkor if, switch. F2: Styrstrukturer, programmeringsteknik (kap. 3 4) If-kommando forts. If-kommando forts. F2: Styrstrukturer, programmeringsteknik (kap. 3 4) Villkors, if, switch Villkor, logiska värden, relationsoperatorer, logiska operatorer Skottårsexempel Triangelanalysexempel, strängar Switch, tärningsexempel

Läs mer

Datatyper och kontrollstrukturer. Skansholm: Kapitel 2) De åtta primitiva typerna. Typ Innehåll Defaultvärde Storlek

Datatyper och kontrollstrukturer. Skansholm: Kapitel 2) De åtta primitiva typerna. Typ Innehåll Defaultvärde Storlek De åtta primitiva typerna Java, datatyper, kontrollstrukturer Skansholm: Kapitel 2) Uppsala Universitet 11 mars 2005 Typ Innehåll Defaultvärde Storlek boolean true, false false 1 bit char Tecken \u000

Läs mer

Läsning, skrivning, tangentbord, skärm. F6: Filhantering (kap. 8) Tabell på skärmen

Läsning, skrivning, tangentbord, skärm. F6: Filhantering (kap. 8) Tabell på skärmen F6: Filhantering (kap. 8) Läsning från tangentbordet, skrivning på skärmen Binär skrivning och läsning med save och load Skrivning på och läsning från textfil med save och load Användning av filreferenser,

Läs mer

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

Tentamen TAIU07 Matematiska beräkningar med MATLAB för MI TEKNISKA HÖGSKOLAN I LINKÖPING Matematiska institutionen Beräkningsmatematik/Fredrik Berntsson Tentamen TAIU07 Matematiska beräkningar med MATLAB för MI Tid: 14-18, 13:e Mars, 2018 Provkod: TEN1 Hjälpmedel:

Läs mer

Övning 1 - Abstrakta datatyper

Övning 1 - Abstrakta datatyper /home/lindahlm/activity-phd/teaching/12dd1320/exercise1/exercise1.py September 3, 20121 0 # coding : latin Övning 1 - Abstrakta datatyper 18 Summering Vi gick igenom betydelsen av abstrakta datatyper/datastrukturer.

Läs mer

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

Datorlära 6. Arbeta med strängar Inmatning med tangentbordet Bygga ett program med inmatning, funktioner, osv Datorlära 6 Arbeta med strängar Inmatning med tangentbordet Bygga ett program med inmatning, funktioner, osv 1 Arbeta med Strängar Strängar skapas med text inom citattecken, enkla eller dubbla.!>> str=

Läs mer

Föreläsning 3: Typomvandling, villkor och val, samt textsträngar

Föreläsning 3: Typomvandling, villkor och val, samt textsträngar Föreläsning 3: Typomvandling, villkor och val, samt textsträngar Camilla Kirkegaard camilla.kirkegaard@liu.se Linköpings universitet Sweden October 14, 2013 1 Innehåll n n n n n Repetition Typomvandlingar

Läs mer

Programmera i C Varför programmera i C när det finns språk som Simula och Pascal??

Programmera i C Varför programmera i C när det finns språk som Simula och Pascal?? Programmera i C Varför programmera i C när det finns språk som Simula och Pascal?? C är ett språk på relativt låg nivå vilket gör det möjligt att konstruera effektiva kompilatorer, samt att komma nära

Läs mer

Namn: (Ifylles av student) Personnummer: (Ifylles av student) Tentamensdatum: Tid: Hjälpmedel: Inga hjälpmedel

Namn: (Ifylles av student) Personnummer: (Ifylles av student) Tentamensdatum: Tid: Hjälpmedel: Inga hjälpmedel Data- och Programstrukturer Provmoment: Ladokkod: Tentamen ges för: Omtentamen NDP011 Systemarkitektprogrammet 7,5 högskolepoäng Namn: (Ifylles av student) Personnummer: (Ifylles av student) Tentamensdatum:

Läs mer

Användning av stack: evaluera uttryck i RPN

Användning av stack: evaluera uttryck i RPN (28 september 2010 T9.1 ) Användning av stack: evaluera uttryck i RPN /* rpn.c */ #include "stack.h" /** Eget interface till stackmekanismen för att få en stack med double */ static Stack operands; //

Läs mer

TDDC74 Programmering: Abstraktion och modellering Datortenta

TDDC74 Programmering: Abstraktion och modellering Datortenta TDDC74 Programmering: Abstraktion och modellering Datortenta - 2017-08-26 Läs alla frågorna först och bestäm dig för i vilken ordning du vill lösa uppgifterna. Uppgifterna är inte nödvändigtvis i svårighetsordning.

Läs mer

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

Datorlära 3 Octave Workspace ovh mijlö Skriva text på skärmen Värdesiffror Variabler och typer Strängar Makro Vektorer Datorlära 1 Introduktion till datasystemet, epost konto, afs hemkonto Introduktion till datorer och datasalar Open Office Calculator Beräkningar med Open Office Calc Diagram med OO Calc Datorlära 2 Utforma

Läs mer

Dagens föreläsning. Repetition. Repetition - Programmering i C. Repetition - Vad C består av. Repetition Ett första C-program

Dagens föreläsning. Repetition. Repetition - Programmering i C. Repetition - Vad C består av. Repetition Ett första C-program Dagens föreläsning Programmeringsteknik för Ingenjörer VT05 Föreläsning 3-4 Repetition Datatyper Uttryck Operatorer Satser Algoritmer Programmeringsteknik VT05 2 Repetition Repetition - Programmering i

Läs mer

Programmering I Tobias Wrigstad fredag, 2009 augusti 28

Programmering I Tobias Wrigstad fredag, 2009 augusti 28 Programmering I Tobias Wrigstad tobias@dsv.su.se Vad är programmering? Lågnivåspråk och högnivåspråk Kompilering och interpretering Variabler Notation för flödesschema (flow chart) Kontrollstrukturer (conditionals,

Läs mer

Klassdeklaration. Metoddeklaration. Parameteröverföring

Klassdeklaration. Metoddeklaration. Parameteröverföring Syntax: Class Declaration Modifier Class Body Basic Class Member Klassdeklaration class Class Member Field Declaration Constructor Declaration Method Declaration Identifier Class Associations Motsvarar

Läs mer

TDDC74 Programmering: Abstraktion och modellering Dugga 2, , kl 17-19

TDDC74 Programmering: Abstraktion och modellering Dugga 2, , kl 17-19 TDDC74 Programmering: Abstraktion och modellering Dugga 2, 2017-04-06, kl 17-19 Läs alla frågorna först och bestäm dig för i vilken ordning du vill lösa uppgifterna. Uppgifterna är inte nödvändigtvis i

Läs mer

Matlabövning 1 Funktioner och grafer i Matlab

Matlabövning 1 Funktioner och grafer i Matlab Matlabövning 1 Funktioner och grafer i Matlab I den här övningen ska vi titta på hur man konstruerar funktioner i Matlab och hur man kan rita funktionsgrafer. Läs först igenom hela PM:et. Gå sedan igenom

Läs mer

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

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 Matlab-föreläsning (4), 10 september, 015 Innehåll m-filer (script) - fortsättning från föreläsning 1 In- och utmatning Sekvenser, vektorer och matriser Upprepning med for-slingor (inledning) Matlab-script

Läs mer

Föreläsning 2 Programmeringsteknik och C DD1316. Mikael Djurfeldt

Föreläsning 2 Programmeringsteknik och C DD1316. Mikael Djurfeldt Föreläsning 2 Programmeringsteknik och C DD1316 Mikael Djurfeldt Föreläsning 2 Programmeringsteknik och C Python introduktion Utskrift Inläsning Variabler Datatyp Aritmetiska operatorer Omvandling

Läs mer

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

TANA17 Matematiska beräkningar med MATLAB för M, DPU. Fredrik Berntsson, Linköpings Universitet. 4 december 2015 Sida 1 / 26 TANA17 Matematiska beräkningar med MATLAB för M, DPU Fredrik Berntsson, Linköpings Universitet 4 december 2015 Sida 1 / 26 Föreläsning 7 Textsträngar. Formatterade utskrifter. Filhantering. Seminarieuppgiften.

Läs mer

TANA17 Matematiska beräkningar med Matlab

TANA17 Matematiska beräkningar med Matlab TANA17 Matematiska beräkningar med Matlab Datorlektion 4. Funktioner 1 Egna Funktioner Uppgift 1.1 En funktion f(x) ges av uttrycket 0, x 0, f(x)= sin(x), 0 < x π 2, 1, x > π 2 a) Skriv en Matlab funktion

Läs mer

Datalogi, grundkurs 1

Datalogi, grundkurs 1 Datalogi, grundkurs 1 Fiktiv Tentamen Lösningsförslag och kommentarer 1. Lösningsförslaget nedan förutsätter ingenting om filens innehåll och är alltså mer generell än nödvändigt: alfa= ABCDEFGHIJKLMNOPQRSTUVWXYZÅÄÖ

Läs mer

Beräkningsverktyg HT07

Beräkningsverktyg HT07 Beräkningsverktyg HT07 Föreläsning 1, Kapitel 1 6 1.Introduktion till MATLAB 2.Tal och matematiska funktioner 3.Datatyper och variabler 4.Vektorer och matriser 5.Grafik och plottar 6.Programmering Introduktion

Läs mer

TDIU01 - Programmering i C++, grundkurs

TDIU01 - Programmering i C++, grundkurs TDIU01 - Programmering i C++, grundkurs Sammanfattning period 1 Eric Elfving Institutionen för datavetenskap 1 oktober 2013 Översikt Ett C++-programs uppbyggnad Variabler Datatyper Satser Uttryck Funktioner

Läs mer

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

1 Texthantering. 1.1 Typen char. Exempel, skriv ut alfabetet 1 Texthantering I detta avsnitt tas det upp två sätt att arbeta med text i C++ program. Det första sättet som behandlas är hanteringen av textfält. Texter i C++ består utav en serie med enstaka tecken

Läs mer

Komponentvisa operationer,.-notation Multiplikation (*), division (/) och upphöj till (ˆ) av vektorer följer vanliga vektoralgebraiska

Komponentvisa operationer,.-notation Multiplikation (*), division (/) och upphöj till (ˆ) av vektorer följer vanliga vektoralgebraiska Matlab-föreläsning 3 (4), 17 september, 2015 Innehåll Sekvenser (från förra föreläsningen) Upprepning med for-slingor och while-slingor Villkorssatser med if - then -else - Logik Sekvenser - repetion från

Läs mer

Datalogi för E Övning 3

Datalogi för E Övning 3 Datalogi för E Övning 3 Mikael Huss hussm@nada.kth.se AlbaNova, Roslagstullsbacken 35 08-790 62 26 Kurshemsida: http://www.csc.kth.se/utbildning/kth/kurser/2d1343/datae06 Dagens program Att skapa egna

Läs mer

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

Variabler. TANA81: Beräkningar med Matlab. Matriser. I Matlab skapas en variabel genom att man anger dess namn och ger den ett värde: TANA81: Beräkningar med Matlab - Variabler och Matriser - Logiska uttryck och Villkor - Repetitionssatser - Grafik - Funktioner Variabler I Matlab skapas en variabel genom att man anger dess namn och ger

Läs mer

Datastrukturer och algoritmer

Datastrukturer och algoritmer Innehåll Datastrukturer och algoritmer Föreläsning 2 Fält Specifikation, Konstruktion och Specifikation, Konstruktion Dynamiska resurser Länk Länkade celler 23 24 Konstruktion av Fält Fysisk datatyp i

Läs mer

732G Linköpings universitet 732G11. Johan Jernlås. Översikt. Repetition. Strukturdiagram. Styra. Algoritmer. Val

732G Linköpings universitet 732G11. Johan Jernlås. Översikt. Repetition. Strukturdiagram. Styra. Algoritmer. Val 732G11 Linköpings universitet 2011-01-26 1 2 3 4 Program recept 1 spaghetti = 100; 2 salt = 1; 3 olja = 5; 4 köttbullar = 8; 5 ketchup = 0,5; 6 koka(salt, spaghetti); 7 micra(köttbullar); 8 Om(micron ==

Läs mer

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

Tentamen TANA17 Matematiska beräkningar Provkod: DAT1 Godkänd: 8p av totalt 20p Tid: 13:e januari klockan MAI/Linköpings universitet Fredrik Berntsson Tentamen TANA17 Matematiska beräkningar Provkod: DAT1 Godkänd: 8p av totalt 20p Tid: 13:e januari klockan 8.00-12.00 Redovisning Lös först uppgifterna i Matlab.

Läs mer

F4. programmeringsteknik och Matlab

F4. programmeringsteknik och Matlab Programmeringsspråk Föreläsning 4 programmeringsteknik och Matlab 2D1312/ 2D1305 Introduktion till Java Kompilering, exekvering, variabler, styrstrukturer 1 Ett program är en eller flera instruktioner

Läs mer

Föreläsning 3. Stack

Föreläsning 3. Stack Föreläsning 3 Stack Föreläsning 3 ADT Stack Stack JCF Tillämpning Utvärdera ett postfix uttryck Stack implementerad med en array Stack implementerad med en länkad lista Evaluate postfix expressions Läsanvisningar

Läs mer

TDDC74 Programmering: Abstraktion och modellering Dugga 2, , kl 14-16

TDDC74 Programmering: Abstraktion och modellering Dugga 2, , kl 14-16 TDDC74 Programmering: Abstraktion och modellering Dugga 2, 207-04-06, kl 4-6 Läs alla frågorna först och bestäm dig för i vilken ordning du vill lösa uppgifterna. Uppgifterna är inte nödvändigtvis i svårighetsordning.

Läs mer

Datastrukturer, algoritmer och programkonstruktion (DVA104, VT 2015) Föreläsning 6

Datastrukturer, algoritmer och programkonstruktion (DVA104, VT 2015) Föreläsning 6 Datastrukturer, algoritmer och programkonstruktion (DVA104, VT 2015) Föreläsning 6? DAGENS AGENDA Komplexitet Ordobegreppet Komplexitetsklasser Loopar Datastrukturer Några nyttiga regler OBS! Idag jobbar

Läs mer

Pythons standardbibliotek

Pythons standardbibliotek Pythons standardbibliotek Python 3 skall, enligt standarddokumenten http://docs.python.org/py3k/library/index.html ha stöd för vissa funktioner, typer och datastrukturer Så länge man håller sig till detta

Läs mer

Villkor, if, switch. F2: Styrstrukturer, programmeringsteknik (kap. 3 4) If-kommando forts. If-kommando forts.

Villkor, if, switch. F2: Styrstrukturer, programmeringsteknik (kap. 3 4) If-kommando forts. If-kommando forts. F2: Styrstrukturer, programmeringsteknik (kap. 3 4) Villkorskommandon, if, switch Villkor, logiska värden, relationsoperatorer, logiska operatorer Skottårsexempel Triangelanalysexempel, strängar Switch,

Läs mer

Matriser och Inbyggda funktioner i Matlab

Matriser och Inbyggda funktioner i Matlab Matematiska vetenskaper 2010/2011 Matriser och Inbyggda funktioner i Matlab 1 Inledning Vi skall denna vecka se på matriser och funktioner som är inbyggda i Matlab, dels (elementära) matematiska funktioner

Läs mer

F2: Styrstrukturer, programmeringsteknik (kap. 3 4)

F2: Styrstrukturer, programmeringsteknik (kap. 3 4) F2: Styrstrukturer, programmeringsteknik (kap. 3 4) Villkorskommandon, if, switch Villkor, logiska värden, relationsoperatorer, logiska operatorer Skottårsexempel Triangelanalysexempel, strängar Switch,

Läs mer

Tentamen TANA17 Matematiska beräkningar Provkod: DAT1 Godkänd: 9p av totalt 20p Hjälpmedel: MATLAB

Tentamen TANA17 Matematiska beräkningar Provkod: DAT1 Godkänd: 9p av totalt 20p Hjälpmedel: MATLAB MAI/Linköpings universitet Fredrik Berntsson Tentamen TANA17 Matematiska beräkningar Provkod: DAT1 Godkänd: 9p av totalt 20p Hjälpmedel: MATLAB Redovisning Lös först uppgifterna i Matlab. Då du har en

Läs mer

Tentamen i Algoritmer & Datastrukturer i Java

Tentamen i Algoritmer & Datastrukturer i Java Tentamen i Algoritmer & Datastrukturer i Java Hjälpmedel: Skrivhjälpmedel, miniräknare. Ort / Datum: Halmstad / 2008-05-27 Skrivtid: 4 timmar Kontakt person: Nicolina Månsson, tel. 035-167487 Poäng / Betyg:

Läs mer

Matlabövning 1 Funktioner och grafer i Matlab

Matlabövning 1 Funktioner och grafer i Matlab Matlabövning 1 Funktioner och grafer i Matlab I den här övningen ska vi titta på hur man konstruerar funktioner i Matlab och hur man kan rita funktionsgrafer. Läs först igenom PM:et. Gå sedan igenom exemplen

Läs mer

TDIU01 - Programmering i C++, grundkurs

TDIU01 - Programmering i C++, grundkurs TDIU01 - Programmering i C++, grundkurs Grundläggande satser och uttryck Eric Elfving Institutionen för datavetenskap 5 augusti 2014 Översikt Uttryck Litteraler Operatorer Satser Villkor Upprepning Teckenhantering

Läs mer

Exempel ( )

Exempel ( ) Exempel Antag att vi vill ha en generell stack. En stack är en mekanism som man kan lagra i och hämta från enligt principen sist in, först ut (eng LIFO). Man skall alltså kunna Skapa en stack Lägga värden

Läs mer

Föreläsning 10 Datalogi 1 DA2001. Utskrift på skärmen. Syntax. print( Hej ) Hur är det? Hej. print( Hej,end= ) print( Hur är det? ) HejHur är det?

Föreläsning 10 Datalogi 1 DA2001. Utskrift på skärmen. Syntax. print( Hej ) Hur är det? Hej. print( Hej,end= ) print( Hur är det? ) HejHur är det? Föreläsning 10 Datalogi 1 DA2001 python introduktion Variabler Datatyp Aritmetiska operatorer av typer Reserverade ord logiska operatorer If-sats kommentarer på skärmen print( Hej ) print( Hur är det?

Läs mer

Programmering med Java. Grunderna. Programspråket Java. Programmering med Java. Källkodsexempel. Java API-exempel In- och utmatning.

Programmering med Java. Grunderna. Programspråket Java. Programmering med Java. Källkodsexempel. Java API-exempel In- och utmatning. Programmering med Java Programmering med Java Programspråket Java Källkodsexempel Källkod Java API-exempel In- och utmatning Grunderna Ann Pan panda@nada.kth.se Rum 1445, plan 4 på Nada 08-7909690 Game.java

Läs mer

Grundkurs Programmering

Grundkurs Programmering HI124 Grundkurs Programmering F7b: Funktioner på djupet! A. Cajander, STH 6 1 5 42 3.14f a float char short circuit order of subexp eval. Dagens fokus = + - * / % ++ -- + - * / % & ^ > ==!= > < >=

Läs mer

Föreläsningsanteckningar, Introduktion till datavetenskap HT S4 Datastrukturer. Tobias Wrigstad

Föreläsningsanteckningar, Introduktion till datavetenskap HT S4 Datastrukturer. Tobias Wrigstad 1 Datatyper Tobias Wrigstad Det finns flera olika typer av (slags) data Olika datatyper har olika egenskaper. T.ex. är ett personnummer inte ett tal. (Den sista siffran skall stämma enligt den s.k. Luhnalgoritmen

Läs mer

Villkor if, switch. F2: Styrstrukturer, programmeringsteknik (kap. 3 4) If-kommando forts. If-kommando forts.

Villkor if, switch. F2: Styrstrukturer, programmeringsteknik (kap. 3 4) If-kommando forts. If-kommando forts. F2: Styrstrukturer, programmeringsteknik (kap. 3 4) Villkorskommandon, if, switch Villkor, logiska värden, relationsoperatorer, logiska operatorer Skottårsexempel Triangelanalysexempel, strängar Switch,

Läs mer

Repetition C-programmering

Repetition C-programmering Repetition C-programmering Viktor Kämpe C Historik Utvecklades först 1969 1973 av Dennis Ritchcie vid AT&T Bell Labs. Högnivå språk med kontakt mot maskinvara. Ett utav de mest använda språken. Repetition

Läs mer

Tentamen Grundläggande programmering

Tentamen Grundläggande programmering Akademin för Innovation Design och Teknik Tentamen Grundläggande programmering Kurskod: DVA103 Datum 2012-06-11 Tid 14.10 16.30 Examinator: Lars Asplund Maxpoäng: 48 Betygsgränser: Betyg 3: 20 Betyg 4:

Läs mer

Skizz till en enkel databas

Skizz till en enkel databas Skizz till en enkel databas Data: Register En vektor Funktioner: Databas Initiera huvudloop Avsluta Poster (struct( struct) val Mata in Skriv ut Spara Hämta Ändra Radera Enligt diskussion 1999-11-23 Bertil

Läs mer

Mer om funktioner och grafik i Matlab

Mer om funktioner och grafik i Matlab CTH/GU 2/22 Matematiska vetenskaper Inledning Mer om funktioner och grafik i Matlab Först skall vi se lite på funktioner som redan finns i Matlab, (elementära) matematiska funktioner som sinus och cosinus

Läs mer

E02 "The Review" Föreläsning 2, HT2013 Grunderna, repetition. Johan Leitet. Kurs: 1dv403 Webbteknik I

E02 The Review Föreläsning 2, HT2013 Grunderna, repetition. Johan Leitet. Kurs: 1dv403 Webbteknik I E02 "The Review" Föreläsning 2, HT2013 Grunderna, repetition Kurs: 1dv403 Webbteknik I Johan Leitet E02 - "The Review" Dagens agenda Identifierare Kommentarer Variabler Datatyper Operatorer Villkorssatser

Läs mer

Linjärt minne. Sammanhängande minne är ej flexibelt. Effektivt

Linjärt minne. Sammanhängande minne är ej flexibelt. Effektivt Binära träd (forts) Ett binärt träd kan lagras i ett enda sammanhängande minne Roten har index 1 Vänster barn till nod i har index 2*i Höger barn till nod i har index 2*i + 1 Föräldern till nod i har index

Läs mer

Datastrukturer och algoritmer

Datastrukturer och algoritmer Innehåll Datastrukturer och algoritmer Föreläsning 2 Fält Specifikation, Konstruktion och Specifikation, Konstruktion Dynamiska resurser Länk Länkade celler 25 26 Fält Modell Schackbräde Organisation n-dimensionellt

Läs mer

Digitalitet. Kontinuerlig. Direkt proportionerlig mot källan. Ex. sprittermometer. Elektrisk signal som representerar ljud.

Digitalitet. Kontinuerlig. Direkt proportionerlig mot källan. Ex. sprittermometer. Elektrisk signal som representerar ljud. Analog Digitalitet Kontinuerlig Direkt proportionerlig mot källan Ex. sprittermometer Elektrisk signal som representerar ljud Diskret Digital Representation som siffror/symboler Ex. CD-skiva Varje siffra

Läs mer

F5 Selektion och iteration. ID1004 Objektorienterad programmering Fredrik Kilander

F5 Selektion och iteration. ID1004 Objektorienterad programmering Fredrik Kilander F5 Selektion och iteration ID1004 Objektorienterad programmering Fredrik Kilander fki@kth.se Boolska uttryck Boolska uttryck använder sig av jämförelseoperatorer < > = ==!= Resultatets datatyp är boolean

Läs mer

Tentamen TANA17 Matematiska beräkningar Provkod: DAT1 Godkänd: 8p av totalt 20p Tid: 21:a April klockan

Tentamen TANA17 Matematiska beräkningar Provkod: DAT1 Godkänd: 8p av totalt 20p Tid: 21:a April klockan MAI/Linköpings universitet Fredrik Berntsson Tentamen TANA17 Matematiska beräkningar Provkod: DAT1 Godkänd: 8p av totalt 20p Tid: 21:a April klockan 8.00-12.00 Redovisning Lös först uppgifterna i Matlab.

Läs mer

Introduktion C-programmering

Introduktion C-programmering Introduktion C-programmering Viktor Kämpe C Historik Utvecklades först 1969 1973 av Dennis Ritchcie vid AT&T Bell Labs. Högnivå språk med kontakt mot maskinvara. Ett utav de mest använda språken. 2 C Standarder

Läs mer

Rekursion och induktion för algoritmkonstruktion

Rekursion och induktion för algoritmkonstruktion Informationsteknologi Tom Smedsaas, Malin Källén 20 mars 2016 Rekursion och induktion för algoritmkonstruktion Att lösa ett problem rekursivt innebär att man uttrycker lösningen i termer av samma typ av

Läs mer

Föreläsning 2 Programmeringsteknik och Matlab DD1312. Programspråk. Utskrift på skärmen

Föreläsning 2 Programmeringsteknik och Matlab DD1312. Programspråk. Utskrift på skärmen Föreläsning 2 Programmeringsteknik och Matlab DD1312 Introduktion till python Variabler,datatyper, omvandling av typer sfunktioner Två olika typer av program omvandlar högnivå till lågnivå program: Interpreterande

Läs mer

1/15/2013. DD1310/DD1314/DA3009 Programmeringsteknik. Lärandemål... Vilka läser kursen? ...fler lärandemål VARFÖR? Föreläsning 1

1/15/2013. DD1310/DD1314/DA3009 Programmeringsteknik. Lärandemål... Vilka läser kursen? ...fler lärandemål VARFÖR? Föreläsning 1 Skolan för Datavetenskap och kommunikation DD1310/DD1314/DA3009 Programmeringsteknik Föreläsning 1 Kursinfo Diagnostiskt prov Python-intro: print variabler reserverade ord input kommentarer beräkningar

Läs mer

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

Numeriska Metoder och Grundläggande Programmering för P1, VT2014 Numeriska Metoder och Grundläggande Programmering för P1, VT2014 Föreläsning 5: Filhantering i Matlab Mer om datatyper: celltabeller, gles lagring (Kap. 7 & 8 i MATLAB Programming for Engineers, S. Chapman)

Läs mer

String [] argv. Dagens Agenda. Mer om arrayer. Mer om arrayer forts. String [] argv. argv är variabelnamnet. Arrayer och Strängar fortsättning

String [] argv. Dagens Agenda. Mer om arrayer. Mer om arrayer forts. String [] argv. argv är variabelnamnet. Arrayer och Strängar fortsättning Dagens Agenda String [] argv String [] argv Arrayer och Strängar fortsättning Booleska operatorer if, for, while satser Introduktion till algoritmer public static void main(string [] argv) argv är variabelnamnet

Läs mer

Exempelsamling Assemblerprogrammering

Exempelsamling Assemblerprogrammering Exempelsamling Assemblerprogrammering I uppgifterna nedan utgå från följande programskelett: #include.data var1:.word 12 var2:.word 19 sum: prod:.float 0.set noreorder.text.globl start.ent start

Läs mer

732G Linköpings universitet 732G11. Johan Jernlås. Översikt. Repetition. Felsökning. Datatyper. Referenstyper. Metoder / funktioner

732G Linköpings universitet 732G11. Johan Jernlås. Översikt. Repetition. Felsökning. Datatyper. Referenstyper. Metoder / funktioner 732G11 Linköpings universitet 2011-01-21 1 2 3 4 5 6 Skapa program Kompilera: Källkod Kompilator bytekod Köra: Bytekod Virtuell maskin Ett riktigt program Hej.java class Hej { public static void main (

Läs mer

Avbildningar och hashtabeller. Koffman & Wolfgang kapitel 7, mestadels avsnitt 2 4

Avbildningar och hashtabeller. Koffman & Wolfgang kapitel 7, mestadels avsnitt 2 4 Avbildningar och hashtabeller Koffman & Wolfgang kapitel 7, mestadels avsnitt 2 4 1 2 Mängder i Java 3 Mängd-gränssnittet Set vs. List Mängder får endast innehålla unika element: Metoden.add(E) returnerar

Läs mer

TANA17 Matematiska beräkningar med Matlab

TANA17 Matematiska beräkningar med Matlab TANA17 Matematiska beräkningar med Matlab Datorlektion 6. Text och filer 1 Textsträngar Uppgift 1.1 Skapa en sträng som innehåller texten: kommer du snart?. Använd length för att kontrollera hur många

Läs mer

Lösningar till tentamen i EIT070 Datorteknik

Lösningar till tentamen i EIT070 Datorteknik Lösningar till tentamen i EIT070 Datorteknik Institutionen för Elektro- och informationsteknik, LTH Onsdagen den 13 mars 2013, klockan 14:00 19:00 i Vic 2 A-D, 3 A-C. Tillåtna hjälpmedel: på tentan utdelad

Läs mer

TDDC74 Programmering: Abstraktion och modellering Datordugga 2 - exempel

TDDC74 Programmering: Abstraktion och modellering Datordugga 2 - exempel TDDC74 Programmering: Abstraktion och modellering Datordugga 2 - exempel Läs alla frågorna först och bestäm dig för i vilken ordning du vill lösa uppgifterna. Uppgifterna är inte nödvändigtvis i svårighetsordning.

Läs mer

Föreläsning 2 Programmeringsteknik och C DD1316. Programmering. Programspråk

Föreläsning 2 Programmeringsteknik och C DD1316. Programmering. Programspråk Föreläsning 2 steknik och C DD1316 python introduktion Variabler Datatyp Aritmetiska operatorer av typer Reserverade ord logiska operatorer If-sats kommentarer betyder att instruera en dator Ett program

Läs mer

TANA17 Matematiska beräkningar med MATLAB för M, DPU. Fredrik Berntsson, Linköpings Universitet. 9 november 2015 Sida 1 / 28

TANA17 Matematiska beräkningar med MATLAB för M, DPU. Fredrik Berntsson, Linköpings Universitet. 9 november 2015 Sida 1 / 28 TANA17 Matematiska beräkningar med MATLAB för M, DPU Fredrik Berntsson, Linköpings Universitet 9 november 2015 Sida 1 / 28 Föreläsning 3 Linjära ekvationssystem. Invers. Rotationsmatriser. Tillämpning:

Läs mer

Föreläsning 2 Programmeringsteknik och Matlab DD1312. Programspråk. Utskrift på skärmen

Föreläsning 2 Programmeringsteknik och Matlab DD1312. Programspråk. Utskrift på skärmen Föreläsning 2 Programmeringsteknik och Matlab DD1312 Introduktion till python Variabler, datatyper, omvandling av typer sfunktioner Två olika typer av program omvandlar högnivå till lågnivå program: Interpreterande

Läs mer

Övning från förra gången: readword

Övning från förra gången: readword (9 september 2010 T4.1 ) Övning från förra gången: readword /** readword.c * * int readword(char w[], int n) { * * Läser tecken tills en bokstav påträffas. * Läser och lagrar sedan högst n-1 bokstäver

Läs mer

TAIU07 Matematiska beräkningar med Matlab

TAIU07 Matematiska beräkningar med Matlab TAIU07 Matematiska beräkningar med Matlab Datorlektion 3. Avbrott och Funktioner 1 Repetionssatsen while Uppgift 1.1 Skriv ett program som skriver ut det minsta tal av formen 3 n som är större än 5000.

Läs mer

PROGRAMMERING-JAVA TENTAMINA

PROGRAMMERING-JAVA TENTAMINA PROGRAMMERING-JAVA TENTAMINA Nicolina Månsson 2010-08-16 (Kontaktperson Nicolina Månsson, tel. 0768-530640) Tentamensinstruktioner Poängsättning Hela tentamen omfattar 42 poäng. Poäng för varje uppgift

Läs mer

Erfarenheter från labben

Erfarenheter från labben Erfarenheter från labben Bra Jobbat! Lite ont om plats... Parprogrammering? Skillnad mellan program och funktion! Skillnad mellan uttryck och kommando! Välj bra variabelnamn! Vad göra om det blir fel?

Läs mer

Att förstå hur man konstruerar modulära program Att kunna skapa nya funktioner Att förstå hur data skickas mellan funktioner

Att förstå hur man konstruerar modulära program Att kunna skapa nya funktioner Att förstå hur data skickas mellan funktioner Lektion 4, del 1, kapitel 10 Funktioner i JavaScript Inlärningsmål Att förstå hur man konstruerar modulära program Att kunna skapa nya funktioner Att förstå hur data skickas mellan funktioner Introduktion

Läs mer

Command line argumenter. Objektorienterad Programmering (TDDC77) Vad blir resultatet? Nu då? Ahmed Rezine. Hösttermin 2016

Command line argumenter. Objektorienterad Programmering (TDDC77) Vad blir resultatet? Nu då? Ahmed Rezine. Hösttermin 2016 Command line argumenter Objektorienterad Programmering (TDDC77) Föreläsning VI: eclipse, felsökning, felhantering Ahmed Rezine IDA, Linköpings Universitet Hösttermin 2016 /* Cla. java * Programmet illustrerar

Läs mer

Objektorienterad Programmering (TDDC77)

Objektorienterad Programmering (TDDC77) Objektorienterad Programmering (TDDC77) Föreläsning VI: eclipse, felsökning, felhantering Ahmed Rezine IDA, Linköpings Universitet Hösttermin 2016 Outline Felhantering Eclipse Felsökning Command line argumenter

Läs mer

SMD 134 Objektorienterad programmering

SMD 134 Objektorienterad programmering SMD 134 Objektorienterad programmering Dagens agenda: Typer i Java: primitiva datatyperna, referenstyper Variabler och variabeltilldelningar med primitiva typer Konstanter av de olika typerna. Heltalsräkning

Läs mer

DD1310/DD1314/DA3009 Programmeringsteknik LÄRANDEMÅL... Vilka läser kursen? ...FLER LÄRANDEMÅL. Föreläsning 1

DD1310/DD1314/DA3009 Programmeringsteknik LÄRANDEMÅL... Vilka läser kursen? ...FLER LÄRANDEMÅL. Föreläsning 1 Skolan för Datavetenskap och kommunikation DD1310/DD1314/DA3009 Programmeringsteknik Föreläsning 1 Kursinfo Python-intro: print variabler reserverade ord input kommentarer beräkningar datatyper if-satser

Läs mer