Föreläsning M: Introduktion till MATLAB

Storlek: px
Starta visningen från sidan:

Download "Föreläsning M: Introduktion till MATLAB"

Transkript

1 Föreläsning M: Introduktion till MATLAB (Föreläsningen är gjord för kursen TDDD87 som har ett litet MATLAB-moment instucket emellan Ada-laborationer. Studenterna känner till, variabler, satser, typer, styrsatser, underprogram och fält, i Ada. Föreläsningen gör sig förmodligen best om föreläsaren kör en MATLAB-prompt live för studenterna.) På den här föreläsningen skall jag introducera er för verktyget MATLAB. Det används inom många ingenjörsmässiga situationer och ni kommer ha nytta av det i kommande kurser. Föreläsningen är också förberedande för de MATLAB-uppgifter som skall genomföras i den här kursen. Nu kan det kännas tungt att börja med något helt nytt, särskilt när vi just har kommit igång med Ada. Lyckligtvis kan man trösta sig med att det finns två ljusa sidor med att ta upp ett nytt programmeringsspråk. Det första är att det är väldigt nyttigt för att förstå programmering i allmänhet. Det som är nytt kan föra med sig nya tankesätt och ger förmodligen nya insikter i hur man kan lösa problem. Den andra fördelen är att mycket är likt det ni redan har lärt er. Detta är egentligen inte en slump, utan alla programmeringsspråk fungerar på mer eller mindre samma sätt. Huruvida MATLAB är ett programmeringsspråk kan man diskutera. Låt oss inte göra det. Låt mig istället berätta att MATLAB är ett verktyg för att utföra matematiska beräkningar. MATLAB är alltså i sig ett program. Det finns dock en kommandoprompt i MATLAB där man kan skriva in kommandon. När man trycker enter så exekveras kommandot. Låter det bekant? Just det - det är precis så som ett terminalen (kallas också för kommandoskal) fungerar. Vi säger att MATLAB interpreterar dessa kommandon. Det finns även möjlighet att gruppera ihop kommandon så att de blir små program. När man kör sådana program så kommer MATLAB helt enkelt gå igenom kommandona ett och ett och exekvera dem, precis som om de hade skrivits in i kommandofönstret. Hittills är vi vana vid ett kompilerande språk, men nu går vi alltså över till något som interpreteras. Istället för en kompilator, har man en interpretator. Oavsett vilket man har fungerar ju detta som en tolk. Tänk er att jag skall agera tolk mellan min mormor (som bara talar engelska) och min farmor (som bara talar svenska). Om min mormor vill skriva ett långt brev till min farmor, då tar jag brevet i handen, går hem på kammaren och översätter allt ihop och lämnar över resultatet till farmor nästa dag - det är kompilering. Däremot om min mormor bara vill säga ett par meningar till farmor, så tar jag nog dem en och en - precis som interpretering. Ni förstår säkert att dessa två angreppssätt har lite olika fördelar och nackdelar. Vid kompilering kan man upptäcka lite mer "övergripande" problem, och kanske till och med rätta till dem, innan man levererar slutresultatet. Vid interpretering har man dock istället större möjlighet att testa sig fram när man skall göra något. Rent praktiskt blir det inte jättestor skillnad dock. Ni kommer skriva er kod på ett ställe, i det vi kallar för ett skript eller en funktion. Och ni kommer att kunna köra dem på ett annat. Detta är ju mycket likt hur vi redan har arbetat i kursen. Vi kan börja med att titta lite på hur MATLAB hanterar variabler. Först av allt skall det sägas att man i MATLAB inte behöver deklarera sina variabler. Man kan helt enkelt hitta på ett variabelnamn och tilldela variabeln med en gång. Zimsalabim - så finns den! Här har vi ett par exempel:

2 namn = 'Anna Maria Karlsson'; alder = 32; skostorlek = 38.5 simkunnig = true turnummer = [ ]; Vi ser här exempel på lite olika data, en sträng, ett heltal, ett flyttal, en boolean och en vektor (mer om dessa senare). Kommandona ovan är alltså tilldelningar, inte lika-med-jämförelser. Vill man kontrollera huruvida något är lika med något annat så får man skriva ==, men vi kommer tillbaka till det om en stund. Det är viktigt att veta att man i MATLAB skiljer på små och stora bokstäver. Skriver jag "SKOSTORLEK", är detta alltså inte samma variabel som "skostorlek". Vi har nu fem variabler. Om vi skrev in dessa kommandon i kommandofönstret så finns detta variabler tillgängliga på MATLABs "globala nivå". Semi-kolonen på varje rad har inte riktigt den funktion som man kanske hade gissat. I Ada betyder ju semi-kolon att satsen är slut, här är det istället tvång på att varje sats måste stå på en egen rad. Själva semi-kolonet undertrycker den automatiska utskrift som MATLAB alltid gör när ett kommando exekveras. När man tilldelar variabler på detta sätt skulle MATLAB bara bekräfta detta genom att skriva ut variabelns värde om man inte hade haft semi-kolonet på slutet. I sina program vill man därför ofta ha semi-kolon efter alla satser, annars blir det hejdlöst många utskrifter! Jag återkommer till in- och utmatning om en stund. Om man nu verkligen vill låta en sats gå över flera rader så kan man bryta den, genom att skriva "...". Detta betyder att satsen fortsätter på nästa rad. Nästa stora skillnad från tidigare är att MATLAB inte är hårt typat. Det finns datatyper i MATLAB men variabler är inte begränsade till den typ de var från början. D.v.s jag kan nu utan problem göra detta: alder = 27.5; Det gamla värdet i variabeln "alder" försvinner och den får 27.5 istället. Hokus pokus - så har jag förvandlat en integer till en float. Vilket trolleri! Vi fortsätter och tittar på lite fler tilldelningar: pi = 3.14 x = pi / 2 y = sin(x) positive = abs(x * y) i = 3 / 2 i = ceil(3 / 2) i = floor(3.0 / 2.0) i = mod(3, 2) i = i + 1 i = '2' % En kommentar i = '0' + '1' % i blir 97 b = true % b blir 1 b = (i < 8) % b blir 0

3 Här behövs det förmodligen lite förklaring. Vi börjar uppifrån. Första tilldelningen är inget konstigt, vi skapar en ny variabel "pi" som vi sätter till Det finns redan en variabel "pi" i MATLAB som är bra mycket mer precis än våra ynka två decimaler. Nu har vi dock tyvärr skrivit över den! Lyckligtvis kan man "glömma" variabler genom att använda kommandot "clear pi" eller "clear". Det senare "glömmer bort" alla variabler som man har skapat. Gör vi detta så får vi tillbaka vårt ursprungliga pi. Tilldelning nummer 2 hade inte gått så bra i ett hårt typat språk, men är nu helt okej. Tilldelning nummer 3 använder sig av den inbyggda funktionen sin (sinus-funktionen). Man behöver inte importera några paket i MATLAB, allt finns från start. Tilldelning nummer 4 använder sig av en annan inbyggd funktion abs (absolutbelopp). Tilldelning nummer 5 hade gett resultatet 1 i Ada - det är ju heltalsdivision. MATLAB är inte så kinkigt med detta och vi får helt enkelt 1.5. Tilldelning nummer 6 och 7 är exempel på avrundningar. nedåt och uppåt. I tilldelning nummer 8 använder vi operatorn mod. I MATLAB måste man dock anropa detta som en funktion med två parametrar. Tilldelning nummer 9 behöver ingen extra förklaring. I tilldelning nummer 10 ser vi återigen ett exempel på hur en variabel hux flux kan byta typ. Här ser vi också exempel på hur man skriver en kommentar i MATLAB. Tilldelning nummer 11 ser mystisk ut. Man kan faktiskt addera två tecken i MATLAB. I grund och botten representerar MATLAB allt data som flyttal om man inte explicit anger något annat. Alltså går det fin fint att skicka två tecken till operatorn '+'. Som svar får man summan av tecknens asciivärde. Vi kan även använda booleans i MATLAB, tilldelning 12 och 13 är exempel på detta. Värdena true och false är dock bara konstanter som står för talen 1 och 0. Vi går vidare och tittar nu lite på in- och utmatning. Det finns i princip två kommandon som är bra att känna till när man skall skriva ut data. Den första heter disp och kan hantera i princip vilken typ av data som helst. x = 199; disp(x); % Skriver ut 199 i % kommandofönstret Dessutom får man alltid en nyrad efter utskriften med disp. Disp är dock ganska primitiv, den klarar bara av att skriva ut en sak i taget. Vill man utföra lite mer intrikata utskrifter kan man använda sig av kommandot fprintf. fprintf tar alltid en sträng som första parameter. Strängen kommer att skrivas ut utan nyrad. Man kan dock tvinga fram en ny rad genom att inför tecknen "\n" någonstans i strängen. "\n" är en speciell markör som talar om att vi vill ha ett radslut där. Det finns andra markörer som gör att man kan infoga t.ex. tal i strängen: y = 2.5; z = 'pelle'; fprintf('%d är primtal,%3.3f är flyttal,\njag heter %s.', x, y, z); Vi får då utskriften: 199 är primtal, är flyttal, jag heter pelle. Jag vill också påminna om det tredje sättet att skriva ut saker; att helt enkelt inte avsluta en sats med ett semikolon, då skriver MATLAB automatiskt ut resultatet.

4 315 % Skriver ut: % ans = % 315 Vad det gäller inmatning finns det egentligen bara ett kommando som ni behöver, input. N = input('mata in ett tal: '); Här måste man komma ihåg att det som matas in måste vara ett korrekt MATLAB-uttryck. T.ex. måste strängar matas in med sina citationstecken. För det mesta behövs inte in- och utmatningsrutinerna dock, eftersom MATLAB-funktioner kan anropas direkt från kommandofönstret med sina parametrar, och det resultat som returneras automatiskt skrivs ut om semi-kolon inte används. Nu går vi vidare och tittar på fler satser. Vi börjar med if-satsen. Den ser ut på följande sätt: if Villkor elseif else ; Precis som i Ada så kan "" vara vilken sekvens av satser som helst. Det är också lätt att glömma att det heter "elseif" i MATLAB, inte "elsif" som i Ada. I övrigt ser det nästan precis ut som Ada, vi har tappat ett "then" och "if" efter "", men man vänjer sig ganska snabbt vid detta. Vi tar direkt ett exempel: choice = input('enter a number: '); if choice == 42 choice == 9 some_text = 'right'; else some_text = 'wrong'; disp(some_text); Här låter vi användaren mata in ett tal. Om talet är 42 eller 9 sätts variabeln some_text (som inte fanns sedan tidigare!) till 'right' och annars till 'wrong'. " " innebär alltså eller. Märk också att jag behöver skriva två likmedstecken för att göra en matematisk jämförelse eftersom det enkla likmedstecknet används för tilldelning, lätt att göra fel på... Efter if-satsen skrivs texten ut. En intressant variant här är om vi byter "else" mot "elseif choice == 15". Om vi sedan tänker oss att användaren matar in något helt annat, t.ex. 0, då kommer vi varken gå in i den första if-grenen eller den andra. Detta innebär att variabeln some_text aldrig sätts till ett värde, och på så sätt inte finns när vi kommer ner till disp. Då kraschar programmet! Detta känns lite märkligt. Men ännu märkligare blir det om vi kör programmet igen och matar in 42 - då fungerar det som det skall igen. Om vi sedan kör programmet en tredje gång och matar in 0, då kraschar inte programmet utan texten "right" kommer ut! Det funkar den tredje gången eftersom variabeln some_text ligger kvar sedan en tidigare körning. På detta sätt fungerar det alltid om man kör kod direkt i kommandofönstret eller kör ett skript som man har skrivit. Lyckligtvis får man lokala variabler när man skriver funktioner, tillbaka till det senare.

5 Vi kan kort titta på vilka operatorer som vi har tillgång till. Jag har redan nämnt "==" och " " (lika med, resp. eller). Här är relationsoperatorerna: == ~= < > <= => Den a som egentligen ser lite märklig ut är "skiljt ifrån", "~=". De logiska operatorer vi har är && ~ eller och inte Dessa tre finns också som funktioner, or(villkor1, villkor2), and(villkor1, villkor2), not(villkor). Följande aritmetiska operatorer finns att leka med: + - * / ^.*./ Vi kommer tillbaka till de sista två senare. Vi går nu vidare på loopar. Vi börjar med for-satsen som ser ut på följande sätt: for styrvariabel = intervall Ett konkret exempel på detta: for i = 1:4 fprintf('styrvariabeln är %d\n', i); % loop Då skrivs följande ut: Styrvariabeln är 1 Styrvariabeln är 2 Styrvariabeln är 3 Styrvariabeln är 4 Ett intervall har alltid formen N:M, där N <= M, eller N:S:M, där S är ett steg. Alltså kan man få i att hoppa fler tal åt gången, t.ex. genom att skriva i=1:2:10. Då får man talen 1, 3, 5, 7, 9. Man kan även få intervallet, och på så sätt också loopen, att gå baklänges genom att ha ett negativt steg. Då måste startvärdet vara större än eller lika med slutvärdet. T.ex. så här 5:-1:1 som ger 5, 4, 3, 2, 1. Man kan också stega med decimaltal om man vill. I övrigt fungerar for-satsen precis som i Ada med undantaget att styrvariabeln i även finns efter att loopen gått klart. Som ni ser så har jag själv lagt till kommentaren % loop efter for-satsens "". Personligen tycker jag att det blir ganska rörigt med alla "" i MATLAB-kod, därför markerar jag vad det är för något jag "ar". Samtidigt blir koden ännu mer lika Ada, vilket jag tycker är positivt. I MATLAB finns även while-satsen. while Villkor Den är helt analog med den while som finns i Ada. Det finns dock ingen "loop"-loop i detta språk. Vill man ha en evig loop får man alltså göra en while med ett villkor som alltid är sant, t.ex. X==X,

6 eller 1==1, eller helt enkelt bara "true". while true disp('jag älskar dig!'); % loop Det finns även ett till alternativ här. Man kan faktiskt skriva en for-sats och sätta intervallet från 1 till oändligheten. Man brukar dock få en varning när man sedan kör koden. En sådan for-sats kan vara praktisk för eviga loopar där man även vill ha en varvräknare. for i = 1:inf fprintf('jag älskar dig'); % loop Även här finns det en sats för att avbryta en loop inifrån (som Adans "exit"), men här heter den break. Det finns också en sats som heter continue. När man kommer till en sådan sats inne i en loop så går man direkt upp till början av loopen igen. Här kommer ett exempel: A = 10; while A > 0 disp(a); A = A + 1; if mod(a, 2) == 0 continue; elsif A == 7 break; % if A = A 2; % loop Hur många varv går denna loop? Rätt bökigt. Mitt tips är att undvika framförallt continue men också break så mycket som möjligt. Alla satser som gör konstiga hopp i koden är av ondo, det är kanske därför continue inte finns i Ada... Nu går vi över till underprogram. I MATLAB finns det bara funktioner. Man kan dock anropa en funktion utan att ta hand om returvärdet, d.v.s. så som man hade skrivit en procedur i Ada. Y = sin(x); sin(x+pi/2); Båda dessa är tillåtna i MATLAB, de är båda anrop till funktionen sin. Vi kommer dock inte få se resultatet av det undre anropet, p.g.a. semikolonet. Funktioner placeras i separata filer, precis som skript. Det som skiljer en funktion från ett skript rent syntaktiskt är att funktionen har ett funktionshuvud längst upp i filen. Här är två exempel: function funktionsnamn function ret = namn(para1, para2)

7 Parametrarna skrivs som vanligt i en parentes efter funktionens namn. Eftersom datatyper inte är något som MATLAB egentligen befattar sig med så skriver man inte ut något i den stilen. "in" eller "out" behöver man inte heller fundera på, alla parametrar är "in". Jag repeterar detta sista: det finns inga out-parametrar i MATLAB. Allt som kommer tillbaka från en funktion måste returneras. I MATLAB returnerar man dock inte explicit med satsen return utan använder en returvariabel. Namnet på returvariabeln skrivs i fuktionshuvudet innan namnet på funktionen och ett likmedstecken. I MATLAB fungerar det som så att man sätter returvariabeln till det värde som man vill returnera, när man sedan kommer ner till "" i funktionen så returneras värdet automatiskt. Man kan faktiskt använda satsen return, men utan värde. Den hoppar direkt ned till slutet av funktionen bara. Både returvariabel och parametrar är frivilligt. Man kan alltså ha en funktion som bara har parametrar: function min_funktion(para1, para2) Eller bara returvariabel: function returvariabel = min_funktion Namnet på filen som funktionen ligger i skall vara samma som namnet på funktionen plus ".m". Det senaste exemplet skulle alltså ligga på filen min_funktion.m. Anrop till funktioner ser precis ut som i Ada. D.v.s. man skriver helt enkelt namnet på funktionen och har eventuella aktuella parametrar inom parentes efteråt. Värdet som returneras från funktionen kommer att byta plats med anropet, precis som vi är vana vid. Vi tar ett till exempel: function summa = plus(tal1, tal2) summa = tal1 + tal2; % plus Denna funktion, som ligger på filen plus.m, kan alltså anropas från kommandofönstret, från ett skript eller från en annan funktion på något av följande sätt: Z = plus(15, 3); % Z blir 18 plus(z, 2) % 20 skrivs ut plus(1, plus(2, 3)) % 6 skrivs ut Eftersom det inte finns out-parametrar i MATLAB kan det vara besvärligt när man vill få tillbaka flera värden från en funktion. Det finns dock möjlighet att returnera flera värden i MATLAB om man använder klamrar, både i funktionshuvudet och anropet. Här är ett exempel på detta: function [a b] = swap(a, b) c = a; a = b; b = c; % swap

8 Exempel på anrop till swap: Tal1 = 3; Tal2 = 7; [Tal1, Tal2] = swap(tal1, Tal2); disp(tal1); % 7 Skrivs ut disp(tal2); % 3 Skrivs ut Skulle man anropa en sådan funktion utan klamrarna så får man ast ut det första returvärdet. Som nämnt tidigare är de variabler som skapas inuti en funktion lokala variabler. D.v.s. de kommer ast att existera medan funktionen körs, de ligger inte kvar tills senare. Inuti funktionen kan man heller inte komma åt de variabler som ligger på MATLABs "globala" nivå. Detta är bra då undviker man att konstiga beroen byggs upp mellan funktionen och den miljö i vilken funktionen exekveras. Om vi nu jämför med skript så är dessa precis tvärt om. De har alltid tillgång till de globala variablerna och kan inte heller ta parametrar eller returnera resultat. Vill man göra ett ordentligt program är det därför oftast bättre att skapa sig en riktig funktion. Man kan lägga flera funktioner på samma fil. Det är behändigt när man vill göra underprogram, till sina underprogram. Det är bara att rada upp dessa underfunktioner under den första funktionen i filen. Man måste då komma ihåg att dessa underfunktioner bara är åtkomliga inom filen. Jag vill passa på att nämna att MATLAB har en bra hjälp-funktion. Skriver man help i kommandofönstret så får man en rad topics att välja bland. Man kan också gå direkt för hjälpen för ett specifikt kommando om man skriver namnet på kommandot efter help. Nu går vi raskt vidare och kollar lite på vektorer. Vektorer i MATLAB är lika de fält/arrayer som vi har jobbat med i Ada. Precis som i Ada kan man ha vektorer med olika innehåll. Man kan ha vektorer av heltal, vektorer av tecken (strängar) o.s.v. En vektor kan ha mer än 1 dimension, i sådana fall kallar vi det för en matris. Att skapa en vektor är inte svårt, man tilldelar helt enkelt en variabel flera värden som man har inom klamrar: v = [ ]; v = [ 1, 2, 3, 4, 5 ]; Man kan ha komman mellan varje element, eller inte, resultatet blir detsamma. Värt att veta är att MATLAB skiljer på rad och kolumnvektorer. Dessa två exempel blir båda radvektorer. Man kan skapa en kolumnvektor genom att skilja elementen med ';'. v = [ 1; 2; 3; 4; 5 ]; Eller genom att skriva elementen på egna rader: v = [ ]; De intervall som vi talade om i samband med for-satsen är egentligen också sätt att skapa vektorer på.

9 v = 1:5; % v blir [ ] v = 1:2:10; % v blir [ ] v = 5: 1:1; % v blir [ ] Vi kan se dessa som "snabbsätt" att skapa vektorer som ökar eller minskar. Det finns två inbygda kommandon för att skapa vektorer av bara nollor resp. ettor. v = zeros(1,5); % v blir [ ] v = ones(5,1); % v blir [ ] Den första parametern anger alltså hur många rader man vill ha, och den andra hur många kolumner man vill ha. Man kan även skapa en tom vektor så här: v = []; Hakparenteserna innebär en sammanslagning av element. Vi kan ta ett par exempel till: a = 1:5; b = 6:9; v = [a b] % v blir [ ] v = [v 10] % [ ] En flerdimensionell vektor (matris) följer samma principer. m = [ 1 2 3; 4 5 6; 7 8 9]; m = [ 1:3; 4:6; 7:8]; m = [ ]; ones(3) % båda dessa ger matrisen ones(3,3) % [ ] Utöver detta finns det många andra spännande kommandon: % Skapa enhetsmatris m = eye(3) % m blir [ ] % Skapa diagonalmatris m = diag([1 2 3]) % m blir [ ]

10 % Rotation medurs m2 = rot90(m) % m2 blir [ ] % Transponat m3 = m2' % m3 blir [ ] Att få ut saker ur vektorer med indexering är också inget som skiljer sig särskilt från i Ada. v = [ ]; v(1) % ger 2 v(2:3) % ger [ 4 6 ] v([1 5]) % ger [ 2 10 ] v([5 1]) % ger [ 10 2 ] v(5: 1:1) % ger [ ] v = [3 1 2]; v(v) % ger [ ] disp(v(6)) v(6) = 12; % Ger FEL! Det finns inget % 6:e element! % Helt OK. % v blir [ ] Motsvarande för matriser: m(r, k) % Ger elementet på rad r och % kolumn k i matrisen m. m = [ 1 2 3; 4 5 6; 7 8 9]; m(2:3, 2:3) % Ger raderna 2 till 3, och % kolumnerna 2 till 3, dvs: % [ 5 6 % 8 9 ] Man kan använda ordet "" för att referera till matirsen (eller vektorns) sista kolumn eller rad. m(, ) % Elementet i det lägre % högra hörnet i m (9). m(1, 1:) % Ger Översta raden [1 2 3] Om man indexerar med intervall så kan man utelämna siffror i intervallet. Då tolkas detta som första resp. sista indexet.

11 m(2:, :2) % Ger raderna 2 till 3, och % kolumnerna 1 till 2, d.v.s % [ 4 5 % 7 8 ] m(:, 3) % Ger alla rader, och 3:e % kolumnen: % [ 3 % 6 % 9 ] Med vektorer kan vi plocka ut exakt de rader och kolumner som vi vill ha ur matrisen. m([1 3], 2) % Ger [ 2 % 8 ] m([1 ], [1 ]) % Ger [ 1 3 % 7 9 ] Fler skojjiga saker: m = [ ] l = length(m); % ger största % dimenisionen, d.v.s. 3 n = numel(m); % ger antal element, 6 s = size(v); % ger [ 2 3 ] size(v, 1) % ger antalet rader, 2 size(v, 2) % ger antalet kolumner, 3 Vi kan nu gå vidare och titta lite på hur man kan räkna med vektorer och matriser. Det är här som MATLAB verkligen glänser. v1 = [ 1 2 3]; v2 = v1 * 2; % v2 blir [ ] v2 = v1 * v1; % Fel! (?) v2 = v1 * v1'; % v2 blir 14 v2 = v1.* 2; % v2 blir [ ] v2 = v1.* v1; % v2 blir [ ] v2 = v1' * v1; % v2 blir [ ] v2 = v1./ v1; % v2 blir [ ] v2 = v1 / 2; % blir [ ] sin(v) % [ ] cos(v) % sum(v1) % Summan av talen i v1 (6) prod(v1) % Produkten av v1 (6)

12 Operatorerna.* och./ är alltså "elementvis" multiplicering/division. Då tar man element för element och applicerar den skalära operationen. Kan vara pratkisk i vissa fall. Som ni ser klarar också MATLABs inbyggda kommandon så som sin, cos m.fl. att ta matriser som indata. Vi avslutar med att prata kort om ett av MATLABs verktyg för att visualisera data, nämligen plot. Med kommandot plot kan man rita grafer och figurer. När man anropar kommandot plot kommer det att öppnas ett nytt fönster där figuren hamnar. Nästa anrop till plot hamnar i samma fönster, och den gamla figuren försvinner. Om man vill kan man ändra detta betee så att figurerna kombineras, det gör man genom att använda satsen "hold". Sätter man "hold" till "on" så kommer nästa figur att ritas ovanpå den gamla. Med "hold off" kommer nästa utritning att återigen få den föregåe att försvinna. Vi tar två exempel: plot(x, y); plot([ ], [ ]); Om parametrarna till plot är skalärer plottas det bara ut en punkt. Då vektorer skickas så dras det en linjer mellan varje par av koordinater. Den andra satsen kommer att rita ut en kvadrat. Vill man modifiera utseet, t.ex. byta färg till rött, och få linjen sträckad, så kan man ange en formateringssträng efter de två första parametrarna. plot([ ], [ ], 'r x'); Med detta blir linjerna röda och streckade, punkterna markeras med kryss. Man kan skicka fler parametrar till plot, för att göra mer avancerade figurer... t = 0.0:0.01:2*pi; u = 0:72:360; plot(cos(t), sin(t), 'r',... cosd(u), sind(u), 'b'); Dessa tre satser kommer tillsammans att rita ut en röd cirkel med en blå regelbunden femhörning inuti. Vill man visualisera en matris kan man använda kommandot imagesc, detta är praktiskt i er laborationsuppgift "Game of Life".

Introduktion till MATLAB, med utgångspunkt från Ada

Introduktion till MATLAB, med utgångspunkt från Ada Introduktion till, med utgångspunkt från Desktop-miljö som innefattar editor, kommandofönster, graffönster och mycket mer. Interpreteras Snabbt att testa kommandon Terminal + emacs + gnatmake Kompileras

Läs mer

Variabler och konstanter

Variabler och konstanter Variabler och konstanter Deklareras automatisk när man stoppar in data i dem. X = 7 Y = A Z = Kalle Definieras av att de har: ett namn (X) en datatyp (Integer) ett värde (t.ex. 7) Lagras i datorns minne!

Läs mer

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

Dagens program. Programmeringsteknik och Matlab. Administrativt. Viktiga datum. Kort introduktion till matlab. Övningsgrupp 2 (Sal Q22/E32) Programmeringsteknik och Matlab Övning Dagens program Övningsgrupp 2 (Sal Q22/E2) Johannes Hjorth hjorth@nada.kth.se Rum 458 på plan 5 i D-huset 08-790 69 02 Kurshemsida: http://www.nada.kth.se/kurser/kth/2d2

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

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

Beräkningsvetenskap föreläsning 2

Beräkningsvetenskap föreläsning 2 Beräkningsvetenskap föreläsning 2 19/01 2010 - Per Wahlund if-satser if x > 0 y = 2 + log(x); else y = -1 If-satsen skall alltid ha ett villkor, samt en då det som skall hända är skrivet. Mellan dessa

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

Laboration: Grunderna i MATLAB

Laboration: Grunderna i MATLAB Laboration: Grunderna i MATLAB 25 augusti 2005 Grunderna i MATLAB Vad är MATLAB? MATLAB är ett interaktivt program för vetenskapliga beräkningar. Som användare ger du enkla kommandon och MATLAB levererar

Läs mer

TSBB14 Laboration: Intro till Matlab 1D

TSBB14 Laboration: Intro till Matlab 1D TSBB14 Laboration: Intro till Matlab 1D Utvecklad av Maria Magnusson med mycket hjälp av Lasse Alfredssons material i kursen Introduktionskurs i Matlab, TSKS08 Avdelningen för Datorseende, Institutionen

Läs mer

Instruktion för laboration 1

Instruktion för laboration 1 STOCKHOLMS UNIVERSITET MATEMATISKA INSTITUTIONEN Avd. för matematisk statistik MD, ANL, TB (rev. JM, OE) SANNOLIKHETSTEORI I Instruktion för laboration 1 De skriftliga laborationsrapporterna skall vara

Läs mer

Kort om programmering i Matlab

Kort om programmering i Matlab CTH/GU 25/26 Matematiska vetenskaper Kort om programmering i Matlab Inledning Redan första tillfället gjorde ni ett litet program. Ni skrev ett script eller en skriptfil som beräknade summan 5 i 2 = 2

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

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

MMA132: Laboration 2 Matriser i MATLAB

MMA132: Laboration 2 Matriser i MATLAB MMA132: Laboration 2 Matriser i MATLAB Introduktion I den här labben skall vi lära oss hur man använder matriser och vektorer i MATLAB. Det är rekommerad att du ser till att ha laborationshandledningen

Läs mer

Exempel på ett litet Ada-program

Exempel på ett litet Ada-program Exempel på ett litet Ada-program -- En kommentar som beskriver något. with Ada.Text_IO; procedure Mini is -- Deklarationer. K : constant Integer := 5; X, Y : Integer; -- Körbar kod. Ada.Text_IO.Put( Utskrift

Läs mer

Programmering i C++ En manual för kursen Datavetenskaplig introduktionskurs 5p

Programmering i C++ En manual för kursen Datavetenskaplig introduktionskurs 5p Programmering i C++ En manual för kursen Datavetenskaplig introduktionskurs 5p Skriven av Michael Andersson Introduktion Programmering I högnivåspråk fokuserar på själv problemet (algoritmen) istället

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

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

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

Introduktion till Matlab

Introduktion till Matlab Introduktion till Matlab Inledande matematik, I1, ht10 1 Inledning Detta är en koncis beskrivning av de viktigaste delarna av Matlab. Till en början är det enkla beräkningar och grafik som intresserar

Läs mer

Programmeringsteknik med C och Matlab

Programmeringsteknik med C och Matlab Programmeringsteknik med C och Matlab Kapitel 2: C-programmeringens grunder Henrik Björklund Umeå universitet Björklund (UmU) Programmeringsteknik 1 / 32 Mer organisatoriskt Imorgon: Datorintro i lab Logga

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 3-4 Innehåll. Diskutera. Metod. Programexempel med metod

Föreläsning 3-4 Innehåll. Diskutera. Metod. Programexempel med metod Föreläsning 3-4 Innehåll Diskutera Vad gör programmet programmet? Föreslå vilka satser vi kan bryta ut till en egen metod. Skriva egna metoder Logiska uttryck Algoritm för att beräkna min och max Vektorer

Läs mer

TAIU07 Matematiska beräkningar med Matlab

TAIU07 Matematiska beräkningar med Matlab TAIU07 Matematiska beräkningar med Matlab Datorlektion 2. Villkor och Repetition 1 Logiska uttryck Uppgift 1.1 Låt a=3 och b=6 Vad blir resultatet av testerna ab? Uppgift 1.2 Låt a, b,

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

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

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

TAIU07 Matematiska beräkningar med MATLAB för MI. Fredrik Berntsson, Linköpings Universitet. 15 januari 2016 Sida 1 / 26 TAIU07 Matematiska beräkningar med MATLAB för MI Fredrik Berntsson, Linköpings Universitet 15 januari 2016 Sida 1 / 26 TAIU07 Kursmål och Innehåll Målet med kursen är att Ge grundläggande färdighet i att

Läs mer

Användarhandledning Version 1.2

Användarhandledning Version 1.2 Användarhandledning Version 1.2 Innehåll Bakgrund... 2 Börja programmera i Xtat... 3 Allmänna tips... 3 Grunderna... 3 Kommentarer i språket... 4 Variabler... 4 Matematik... 5 Arrayer... 5 på skärmen...

Läs mer

Exempel att testa. Stora problem och m-filer. Grundläggande programmering 4. Informationsteknologi. Informationsteknologi.

Exempel att testa. Stora problem och m-filer. Grundläggande programmering 4. Informationsteknologi. Informationsteknologi. Grundläggande programmering 4 stefan@it.uu.se - Huvudprogram och underprogram - Egna funktioner - Olika typer av fel - Lite om effektiv programmering Exempel att testa Programmen för några vardagsproblem

Läs mer

TANA17 Matematiska beräkningar med MATLAB för M, DPU. Fredrik Berntsson, Linköpings Universitet. 27 oktober 2015 Sida 1 / 31

TANA17 Matematiska beräkningar med MATLAB för M, DPU. Fredrik Berntsson, Linköpings Universitet. 27 oktober 2015 Sida 1 / 31 TANA17 Matematiska beräkningar med MATLAB för M, DPU Fredrik Berntsson, Linköpings Universitet 27 oktober 2015 Sida 1 / 31 TANA17 Kursmål och Innehåll Målet med kursen är att Ge grundläggande färdighet

Läs mer

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

MATLAB the Matrix Laboratory. Introduktion till MATLAB. Martin Nilsson. Enkel användning: Variabler i MATLAB. utvecklat av MathWorks, Inc. Introduktion till MATLAB Martin Nilsson Avdelningen för teknisk databehandling Institutionen för informationsteknologi Uppsala universitet MATLAB the Matrix Laboratory utvecklat av MathWorks, Inc. Matematisk

Läs mer

Föreläsning 3-4 Innehåll

Föreläsning 3-4 Innehåll Föreläsning 3-4 Innehåll Skriva egna metoder Logiska uttryck Algoritm för att beräkna min och max Vektorer Datavetenskap (LTH) Föreläsning 3-4 HT 2017 1 / 36 Diskutera Vad gör programmet programmet? Föreslå

Läs mer

Uppgift 1 (grundläggande konstruktioner)

Uppgift 1 (grundläggande konstruktioner) Uppgift 1 (grundläggande konstruktioner) a) Skriv ett program som låter användaren mata in 7 heltal och som gör utskrifter enligt nedanstående körexempel. Mata in 7 heltal: 1 0 0 3 1 1 1 Tal nr 2 var en

Läs mer

Logik och Jämförelser. Styrsatser: Villkorssatsen if och repetitonssatsen for. Scriptfiler. Kommentarer. Tillämpningar: Ett enkelt filter.

Logik och Jämförelser. Styrsatser: Villkorssatsen if och repetitonssatsen for. Scriptfiler. Kommentarer. Tillämpningar: Ett enkelt filter. TAIU07 Föreläsning 3 Logik och Jämförelser. Styrsatser: Villkorssatsen if och repetitonssatsen for. Scriptfiler. Kommentarer. Tillämpningar: Ett enkelt filter. 27 januari 2016 Sida 1 / 21 Logiska variabler

Läs mer

Tekniska Högskolan i Linköping Institutionen för Datavetenskap (IDA) Torbjörn Jonsson Plot och rekursion

Tekniska Högskolan i Linköping Institutionen för Datavetenskap (IDA) Torbjörn Jonsson Plot och rekursion Tekniska Högskolan i Linköping Institutionen för Datavetenskap (IDA) Torbjörn Jonsson 2010-11-19 Plot och rekursion I denna laboration skall du lära dig lite om hur plot i MatLab fungerar samt använda

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

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

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

Föreläsning 6: Introduktion av listor

Föreläsning 6: Introduktion av listor Föreläsning 6: Introduktion av listor Med hjälp av pekare kan man bygga upp datastrukturer på olika sätt. Bland annat kan man bygga upp listor bestående av någon typ av data. Begreppet lista bör förklaras.

Läs mer

När man vill definiera en matris i MATLAB kan man skriva på flera olika sätt.

När man vill definiera en matris i MATLAB kan man skriva på flera olika sätt. "!$#"%'&)(*,&.-0/ 177 Syftet med denna övning är att ge en introduktion till hur man arbetar med programsystemet MATLAB så att du kan använda det i andra kurser. Det blir således inga matematiska djupdykningar,

Läs mer

Index. Vektorer och Elementvisa operationer. Summor och Medelvärden. Grafik i två eller tre dimensioner. Ytor. 20 januari 2016 Sida 1 / 26

Index. Vektorer och Elementvisa operationer. Summor och Medelvärden. Grafik i två eller tre dimensioner. Ytor. 20 januari 2016 Sida 1 / 26 TAIU07 Föreläsning 2 Index. Vektorer och Elementvisa operationer. Summor och Medelvärden. Grafik i två eller tre dimensioner. Ytor. 20 januari 2016 Sida 1 / 26 Matriselement och Index För att manipulera

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

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

Språket Python - Del 1 Grundkurs i programmering med Python

Språket Python - Del 1 Grundkurs i programmering med Python Hösten 2009 Dagens lektion Ett programmeringsspråks byggstenar Några inbyggda datatyper Styra instruktionsflödet Modulen sys 2 Ett programmeringsspråks byggstenar 3 ETT PROGRAMMERINGSSPRÅKS BYGGSTENAR

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

Instruktion för laboration 1

Instruktion för laboration 1 STOCKHOLMS UNIVERSITET MATEMATISKA INSTITUTIONEN Avd. för matematisk statistik ANL/TB SANNOLIKHETSTEORI I, HT07. Instruktion för laboration 1 De skrifliga laborationsrapporterna skall vara skrivna så att

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

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

Introduktion till programmering SMD180. Föreläsning 4: Villkor och rekursion

Introduktion till programmering SMD180. Föreläsning 4: Villkor och rekursion Introduktion till programmering Föreläsning 4: Villkor och rekursion 1 1 Några inbyggda funktioner (med resultat!) Konverterar mellan de grundläggande typerna: >>> int("32") 32 >>> int(3.999) 3 >>> float(32)

Läs mer

Föreläsning 2 Programmeringsteknik DD1310. Programmering. Programspråk

Föreläsning 2 Programmeringsteknik DD1310. Programmering. Programspråk Föreläsning 2 steknik DD1310 Python introduktion Variabler Datatyper Aritmetiska operatorer av typer Reserverade ord logiska operatorer If-sats kommentarer betyder att instruera en dator Ett program är

Läs mer

Introduktion till Matlab

Introduktion till Matlab Introduktion till Matlab Analys och Linjär Algebra, del A, K1/Kf1/Bt1, ht10 1 Inledning Ni kommer använda Matlab i nästan alla kurser i utbildningen. I matematikkurserna kommer vi ha studio-övningar nästan

Läs mer

Några inbyggda funktioner (med resultat!) Introduktion till programmering D0009E. Föreläsning 4: Villkor och rekursion. Modulus-operatorn.

Några inbyggda funktioner (med resultat!) Introduktion till programmering D0009E. Föreläsning 4: Villkor och rekursion. Modulus-operatorn. Några inbyggda funktioner (med resultat!) Introduktion till programmering D0009E Föreläsning 4: Villkor och rekursion Konverterar mellan de grundläggande typerna: >>> int("") >>> int(.999) >>> float().0

Läs mer

Alla datorprogram har en sak gemensam; alla processerar indata för att producera något slags resultat, utdata.

Alla datorprogram har en sak gemensam; alla processerar indata för att producera något slags resultat, utdata. Att förstå variabler Alla datorprogram har en sak gemensam; alla processerar indata för att producera något slags resultat, utdata. Vad är en variabel? En variabel är en plats att lagra information. Precis

Läs mer

Föreläsning 3.1: Datastrukturer, en översikt

Föreläsning 3.1: Datastrukturer, en översikt Föreläsning.: Datastrukturer, en översikt Hittills har vi i kursen lagt mycket fokus på algoritmiskt tänkande. Vi har inte egentligen ägna så mycket uppmärksamhet åt det andra som datorprogram också består,

Läs mer

2D1339 Programkonstruktion för F1, ht 2003

2D1339 Programkonstruktion för F1, ht 2003 2D1339 Programkonstruktion för F1, ht 2003 Kontrollskrivning 1 Onsdag 19/11 2003 kl 9.15 10.00 Endast ett svar är rätt på varje fråga! Om mer än ett svar givits blir det noll poäng på frågan. Alla skriftliga

Läs mer

Laboration: Grunderna i Matlab

Laboration: Grunderna i Matlab Laboration: Grunderna i Matlab Att arbeta i kommandofönstret och enkel grafik Den här delen av laborationen handlar om hur man arbetar med kommandon direkt i Matlabs kommandofönster. Det kan liknas vid

Läs mer

MMA132: Laboration 1 Introduktion till MATLAB

MMA132: Laboration 1 Introduktion till MATLAB MMA132: Laboration 1 Introduktion till MATLAB De flesta numeriska metoder låter oss få en tillräckligt bra lösning på ett matematiskt problem genom att byta ut komplexa matematiska operationer med kombinationer

Läs mer

Alla filer som bearbetar PHP script ska avslutas med ändelsen.php, exempelvis ska en indexsida till en hemsida heta index.php

Alla filer som bearbetar PHP script ska avslutas med ändelsen.php, exempelvis ska en indexsida till en hemsida heta index.php Introlektion PHP är ett av de enklare språken att lära sig just pga. dess dynamiska struktur. Det används för att bygga upp båda stora och mindre system. Några vanliga system som använder sig av PHP är

Läs mer

Matematisk Modellering

Matematisk Modellering Matematisk Modellering Föreläsning 1 Magnus Oskarsson Matematikcentrum Lunds Universitet Matematisk Modellering p.1/34 Denna föreläsning (läsvecka 1) Vad handlar kursen om, mål, kurskrav, ide. Matematisk

Läs mer

Uppgift 1 ( Betyg 3 uppgift )

Uppgift 1 ( Betyg 3 uppgift ) 2008-03-12.kl.14-19 Uppgift 1 ( Betyg 3 uppgift ) Du skall skriva ett program som läser igenom en textfil som heter FIL.TXT och skriver ut alla rader där det står ett decimaltal först på raden. Decimaltal

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

Objektorienterad programmering Föreläsning 2

Objektorienterad programmering Föreläsning 2 Objektorienterad programmering Föreläsning 2 Copyright Mahmud Al Hakim mahmud@webacademy.se www.webacademy.se Agenda Inläsning av data via dialogrutor Repetitioner (While-satsen och For-satsen) Nästlade

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

Python. Python är, som Scheme, ett interpreterat språk men det finns kompilatorer för Python.

Python. Python är, som Scheme, ett interpreterat språk men det finns kompilatorer för Python. är, som Scheme, ett interpreterat språk men det finns kompilatorer för. När man interpreterar ett språk tillhandahåller man en interpretator som läser sats för sats och försöker tolka den. När man kompilerar

Läs mer

Grunderna i C++ T A. Skapad av Matz Johansson BergströmLIMY

Grunderna i C++ T A. Skapad av Matz Johansson BergströmLIMY Grunderna i C++ ARK 385: Virtuella Verktyg i en Materiell värld AT Arkitektur & Teknik Chalmers Tekniska Högskola 2009 - Kursen skapades (3 förel.) 2010-6 förel. + 2 projekt 2011-8 förel. Helt omarbetade

Läs mer

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

TANA17 Matematiska beräkningar med MATLAB för M, DPU. Fredrik Berntsson, Linköpings Universitet. 2 november 2015 Sida 1 / 23 TANA17 Matematiska beräkningar med MATLAB för M, DPU Fredrik Berntsson, Linköpings Universitet 2 november 2015 Sida 1 / 23 Föreläsning 2 Index. Kolon-notation. Vektoroperationer. Summor och medelvärden.

Läs mer

Föreläsning 2. Variabler, tilldelning och kodblock{} if-satsen Logiska operatorer Andra operatorer Att programmera

Föreläsning 2. Variabler, tilldelning och kodblock{} if-satsen Logiska operatorer Andra operatorer Att programmera Föreläsning 2 Variabler, tilldelning och kodblock if-satsen Logiska operatorer Andra operatorer Att programmera Variabler Det är i variabler som all data (information) lagras. Genom att ändra värde på

Läs mer

Python. Python är, som Scheme, ett interpreterat språk men det finns kompilatorer för Python.

Python. Python är, som Scheme, ett interpreterat språk men det finns kompilatorer för Python. är, som Scheme, ett interpreterat språk men det finns kompilatorer för. När man interpreterar ett språk tillhandahåller man en interpretator som läser sats för sats och försöker tolka den. När man kompilerar

Läs mer

Objektorienterad Programmering (TDDC77)

Objektorienterad Programmering (TDDC77) Objektorienterad Programmering (TDDC77) Föreläsning II: utmatning, variabler, typer Ahmed Rezine IDA, Linköpings Universitet Hösttermin 2016 Kompilera och köra programmet under terminal 2: I Skapa Hej.java

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

I Skapa Hej.java och skriv programmet. I Kompilera med javac Hej.java. I Rätta fel och repetera tills du lyckas kompilera ditt program

I Skapa Hej.java och skriv programmet. I Kompilera med javac Hej.java. I Rätta fel och repetera tills du lyckas kompilera ditt program Kompilera och köra programmet Objektorienterad Programmering (TDDC77) Föreläsning II: utmatning, variabler, typer Ahmed Rezine IDA, Linköpings Universitet Hösttermin 2016 under terminal 2: I Skapa Hej.java

Läs mer

Inledande matematik för I1. MVE011 läsperiod Matlab vecka 2 övningsuppgifter

Inledande matematik för I1. MVE011 läsperiod Matlab vecka 2 övningsuppgifter Inledande matematik för I1 MVE011 läsperiod 1 010 Matlab vecka övningsuppgifter Linjära ekvationssystem Matlab har många kraftfulla redskap för att hantera matriser och därmed också linjära ekvationssystem.

Läs mer

Labb i Datorsystemteknik och programvaruteknik Programmering av kalkylator i Visual Basic

Labb i Datorsystemteknik och programvaruteknik Programmering av kalkylator i Visual Basic Labb i Datorsystemteknik och programvaruteknik Programmering av kalkylator i Visual Basic Inledning Starta Microsoft Visual Studio 2005. Välj create Project Välj VB + Vindows Application och välj ett nytt

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

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

Textsträngar från/till skärm eller fil 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,

Läs mer

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

KPP053, HT2016 MATLAB, Föreläsning 1. Introduktion till MATLAB Skript Inläsning och utskrift av variabler Ekvationssystem Anonyma funktioner KPP053, HT2016 MATLAB, Föreläsning 1 Introduktion till MATLAB Skript Inläsning och utskrift av variabler Ekvationssystem Anonyma funktioner MATLAB Väletablerat Mycket omfattande program GNU OCTAVE Öppen

Läs mer

En introduktion till MatLab

En introduktion till MatLab Chalmers tekniska högskola En introduktion till MatLab Gustafsson Gabriel gabgus@student.chalmers.se Johansson Việt Simon simoj@student.chalmers.se Författare: Norell Pontus npontus@student.chalmers.se

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

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, 14:e Mars, 2017 Provkod: TEN1 Hjälpmedel:

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

Matematisk Modellering

Matematisk Modellering Matematisk Modellering Föreläsning 1 Anders Heyden Matematikcentrum Lunds Universitet Matematisk Modellering p.1/37 Denna föreläsning (läsvecka 1) Vad handlar kursen om, mål, kurskrav, ide. Matematisk

Läs mer

2D1339 Programkonstruktion för F1, ht 2003

2D1339 Programkonstruktion för F1, ht 2003 2D1339 Programkonstruktion för F1, ht 2003 Fiktiv Kontrollskrivning 1 Endast ett svar är rätt på varje fråga! Om mer än ett svar givits blir det noll poäng på frågan. Alla skriftliga hjälpmedel är tillåtna

Läs mer

TANA17 Matematiska beräkningar med Matlab

TANA17 Matematiska beräkningar med Matlab TANA17 Matematiska beräkningar med Matlab Datorlektion 2. Linjär Algebra, Villkor och Logik 1 Linjär Algebra Programsystemet Matlab utvecklades ursprungligen för att underlätta beräkningar från linjär

Läs mer

Pascal... Pascal. Pascal... Pascal...

Pascal... Pascal. Pascal... Pascal... ... Programspråk uppkallat efter Blaise. Skapat av Nicolaus Wirt. Avsett för undervisning för att lära ut typbegreppet och styrstrukturer. Har fått stor spridning p.g.a. enkelhet och att kompilatorn varken

Läs mer

Programmering, grundkurs, 8.0 hp, Elektro, KTH, hösten 2010. Programmering: att instruera en maskin att utföra en uppgift, kräver olika språk:

Programmering, grundkurs, 8.0 hp, Elektro, KTH, hösten 2010. Programmering: att instruera en maskin att utföra en uppgift, kräver olika språk: Föreläsning 1 OH: Övergripande information Programmering: att instruera en maskin att utföra en uppgift, kräver olika språk: * maskinspråk = ettor och nollor, kan bara en maskin förstå. * programmeringsspråk

Läs mer

Sanningar om programmering

Sanningar om programmering Grundläggande programmering stefan@it.uu.se Sanningar om programmering Ett MATLAB-program är ett antal MATLABkommandon samlade i en m-fil. Att utveckla och skriva program kallas att programmera. Att skriva

Läs mer

2 februari 2016 Sida 1 / 23

2 februari 2016 Sida 1 / 23 TAIU07 Föreläsning 4 Repetitonssatsen while. Avbrott med break. Exempel: En Talföljd och en enkel simulering. Egna funktioner. Skalärprodukt. Lösning av Triangulära Ekvationssystem. Programmeringstips.

Läs mer

Pascal. reserverade ord fördefinierade funktioner och procedurer egendefinierade funktioner, procedurer och objekt

Pascal. reserverade ord fördefinierade funktioner och procedurer egendefinierade funktioner, procedurer och objekt Programspråk uppkallat efter Blaise. Skapat av Nicolaus Wirt. Avsett för undervisning för att lära ut typbegreppet och styrstrukturer. Har fått stor spridning p.g.a. enkelhet och att kompilatorn varken

Läs mer

kl Tentaupplägg

kl Tentaupplägg Tentaupplägg TIPS 1: Läs igenom ALLA uppgifterna. Välj den du känner är lättast först. Det kan gärna ta 10-20 minuter. Försök skriva saker som kan vara problem i uppgifterna. Är det något du absolut kommer

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

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

Multipel tilldelning. Introduktion till programmering D0009E. Föreläsning 6: Iteration. while-satsen. Kom ihåg. Snurror kontra rekursion

Multipel tilldelning. Introduktion till programmering D0009E. Föreläsning 6: Iteration. while-satsen. Kom ihåg. Snurror kontra rekursion Introduktion till programmering D0009E Föreläsning 6: Iteration Multipel tilldelning Helt ok att tilldela en variabel flera gånger: bruce = bruce, bruce = 7 bruce Output: 7 Som tillståndsdiagram: bruce

Läs mer

M0043M Integralkalkyl och Linjär Algebra, H14, Matlab, Föreläsning 1

M0043M Integralkalkyl och Linjär Algebra, H14, Matlab, Föreläsning 1 M0043M Integralkalkyl och Linjär Algebra, H14, Matlab, Föreläsning 1 Ove Edlund LTU 2014-11-07 Ove Edlund (LTU) M0043M, M1 2014-11-07 1 / 14 Några elementära funktioner i Matlab Exempel exp Beräknar e

Läs mer

TANA17 Matematiska beräkningar med Matlab

TANA17 Matematiska beräkningar med Matlab TANA17 Matematiska beräkningar med Matlab Datorlektion 1. Vektorer och Matriser 1 Inledning I denna övning skall du träna på att använda Matlab för enklare beräkningar och grafik. För att lösa uppgifterna

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, 20 Mars, 2015 Provkod: TEN1 Hjälpmedel:

Läs mer

Linjär algebra med tillämpningar, lab 1

Linjär algebra med tillämpningar, lab 1 Linjär algebra med tillämpningar, lab 1 Innehåll Per Jönsson Fakulteten för Teknik och Samhälle, 2013 Uppgifterna i denna laboration täcker kapitel 1-3 i läroboken. Läs igenom motsvarande kapitel. Sitt

Läs mer

Linköpings Tekniska Högskola Instutitionen för Datavetenskap (IDA) Torbjörn Jonsson, Erik Nilsson Lab 2: Underprogram

Linköpings Tekniska Högskola Instutitionen för Datavetenskap (IDA) Torbjörn Jonsson, Erik Nilsson Lab 2: Underprogram Mål Lab 2: Underprogram Följande laboration introducerar underprogram; procedurer, funktioner och operatorer. I denna laboration kommer du att lära dig: Hur man skriver underprogram och hur dessa anropas.

Läs mer

Planering Programmering grundkurs HI1024 HT 2014

Planering Programmering grundkurs HI1024 HT 2014 Planering Programmering grundkurs HI1024 HT 2014 Föreläsning V36 Föreläsning 1 Vad är programmering? Boken! Kurs-PM Vad är ett program? Kompilerande- Interpreterande Programmeringsmiljö Hello World! Att

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