• No results found

D E FÖRSTA STEGEN – ”H ALLO W ORLD ” 9

4 PASS 1- KOMMA IGÅNG

4.1 D E FÖRSTA STEGEN – ”H ALLO W ORLD ” 9

Det finns en slags ”tradition” inom litteraturen om datorprogram och programmeringsspråk enligt vilken den första uppgiften man skall lösa när man ger sig i kast med ett nytt program eller språk är att få programmet att skriva ”Hallo World” på skärmen.

Det här kan verka litet fånigt, men det är faktiskt inte så dumt. Visserligen är det vi kräver av själva programmet tämligen trivialt, men för att det hela skall fungera måste vi behärska en hel del saker om den miljö i vilket programmet fungerar: vi måste kunna logga in på den dator där programmet skall köras, hitta och starta programmet, få programmet att acceptera våra instruktioner om vad som skall utföras, köra programmet och till sist få programmet att kommunicera ett resultat, vanligtvis via en bildskärm. Kan vi klara av alla dessa uppgifter så kan vi i fortsättningen koncentrera oss på att få programmet att lösa mer och mer komplicerade uppgifter.

4.1.1 Logga in på datorn.

Hur man loggar in på datorerna på övningslabbet kommer troligen att variera med tiden. Det beror också på vilket operativsystem den dator du skall arbeta vid använder. Här beskrivs hur det går till att logga in på en dator som kör operativsystemet Windows under vårterminen 2002. Skulle du

misslyckas att komma in på det sätt som beskrivs här kan det bero på att förhållandena ändrats, så fråga en assistent om du är tveksam.

I normalfallet kommer datorn att visa upp en inloggningsruta på skärmen där användarnamnet redan är ifyllt som ”student”. Allt du behöver göra är då att klicka på ”OK” så loggas du in, och kan börja arbeta.

4.1.2 Starta matlab

När du är inloggad kan du se ett antal små bilder – ”ikoner” – på skärmen. Alla dessa ikoner är en symbol för andra objekt som finns på datorn. Det kan vara filer, mappar (kataloger) eller program. Vad som händer när du dubbelklickar på en ikon beror på vad ikonen är en symbol för, är det t ex en symbol för en fil skapad i programmet Microsoft Word kommer programmet Microsoft Word att starta och öppna filen om du dubbelklickar på ikonen. På din skärm

kommer du att ha en ikon som visar matlabs symbol. Den ikonen är länkad direkt till programmet matlab, så genom att dubbelklicka på den startar matlab.

En alternativ metod att starta matlab är att klicka på den lilla fyrkanten längst ned, märkt med Windows-symbolen och ordet ”Start”. Då öppnas en meny med ett antal alternativ varav ett är

”Start programs ›”. Klickar du på den raden så öppnas en mindre meny (det är innebörden av symbolen ”›”), där väljer du ”matlab 6.1 ›” och på den meny som då öppnas återigen ”matlab 6.1”.

Figur 1Matlab symbolen

4.1.3 matlabs "skrivbord” (desktop)

När matlab har startat öppnas ett nytt fönster på din dator som kan se litet olika ut beroende på vilka inställningar som har sparats[SH1], men det blir i alla fall en variant av det som kallas matlabs skrivbord. En variant av skrivbordet ser ut som nedan, men bli alltså inte förskräkt om det inte ser riktigt likadant ut.

Vi skall snart (REFERENS) ta en litet närmare titt på hur man kan förändra utseendet på det som matlab visar kan anpassas till vad vi vill göra under ett givet arbetspass. Men låt oss börja med en enkel konfiguration för att först bekanta oss litet med matlab: Gå in i menyn ”View” (att gå in i en meny betyder att man klickar på menyns titelord, i det här fallet ”View”. När man gör det visas ett litet fönster (ungefär som i figuren härintill) som kallas rullgardinsmeny (pull-down menu). Genom att klicka på något av de ord som står i menyn kan du utföra vissa kommandon. Dessa menyer har ett särskilt symbolspråk, en liten triangel, som den du

kan se efter ”Desktop Layout” anger att du genom att klicka på den raden kan öppna upp ytterligare en meny, en undermeny till ”Desktop Layout”.

Symbolen ”√” används för variabler som kan slås på och av i menyn. I det exempel som vi visar till höger betyder det att ”Command Window” är påslaget, medan de andra alternativen är avslagna. Eventuellt är fler alternativ påslagna när du startar matlab, slå i så fall av dem genom att klicka på de ord som har

Desktop Layout

symbolen ”√” till vänster om sig så att det ser ut som i figuren. När vi nu lämnar menyn genom att klicka någonstans utanför menyfönstret har vi en enkel matlab-desktop med ett enda fönster –

kommandofönstret öppet. Kommandofönstret (Command Window) är det fönster genom vilket vi och matlab kommunicerar med varandra, där skriver vi in kommandon och matlab skriver ut resultat.

4.1.4 Say Hallo

Så har vi äntligen kommit fram till den punkt då vi är redo att säga hallå världen. Det som återstår är att instruera matlab att skriva ut ”Hallo World” på skärmen. Det finns fler sätt att instruera matlab att utföra kommandon, det enklaste som vi skall använda först är att helt enkelt skriva in kommandot i kommandofönstret. När vi skriver ett kommanod i kommandofönstret och trycker på ”return” så kontrolleras först att kommandot har en korrekt syntax, dvs att kommandot är skrivet enligt de regler som gäller för matlabs kommandospråk så att programmet kan tolka instruktionen. Om kommandot vi skrivit in är korrekt så utförs det och eventuella resultat visas i kommandofönstret. Det kommando vi skall använda för att säga hallå heter disp() efter engelskans ”display”. Kommandot betyder helt enkelt att matlab skall visa det som står inom parantesen (argumentet) i kommandofönstret på

skärmen. Som vi snart kommer att se kan det som står inom parantesen vara en mängd olika storheter, men just nu är vi intresserade av något som kallas för textsträng. En textsträng är en sträng av tecken, omgiven av enkla citationstecken – ’ . Matlab behandlar en textsträng som en liten låda som man inte, i alla fall inte utan ganska mycket möda, kan göra något med annat än att spara och ta fram vid behov.

Just nu räcker ju detta för våra syften, genom att ge textsträngen ”Hallo World” som argument till kommandot disp ger vi matlab instruktionen att skriva ut strängen på skärmen. Det sista steget blir alltså att ge kommandot disp(’Hallo World’) i kommandofönstret, som svar kommer matlab att skriva

”Hallo World” i kommandofönstret, och vi har klarat av vår första matlab uppgift.

>> disp(’Hallo World’) Hallo World

Lägg märke till att under tiden som du skriver strängen så är den lila, och att den skiftar färg till mörkröd när du skriver dit det andra citationstecknet och fullbordar en korrekt sträng. Det här är ett stöd som matlab ger oss för att underlätta att skriva korrekta kommandon. Vi återkommer senare till en genomgång av annan hjälp vi kan få.

4.1.5 Matlabs hjälpfunktion

Matlab har en mycket omfattande on-line dokumentation, och kraftigt stöd för hjälpfunktionen. Det finns fler sätt att hitta information så vi kommer under kursens gång att få lära oss fler olika metoder för att avlocka matlab dess hemligheter. Den första metoden vi skall använda är att öppna och använda hjälp-fönstret. Det gör du genom att i matlabs desktop klicka på ? symbolen. Då öpnnas ett nytt fönster – ”Help window”, ett fönster som är uppdelat i två panåer genom en vertikal avgränsning. Den vänstra panåen används för att navigera i materialet och finna det avsnitt i dokumentationen som vi är

intresserade av, i den högra panån presenteras hjälp-texter.

Tittar vi nu först på den vänstra panån så kan vi välja fyra alternativa sätt att navigera genom att klicka på någon av de fyra flikarna högst upp:

contents

ger oss en innehållsförteckning där ämnena är grupperade i kapitel och underkapitel i olika nivåer ner till enstaka sidor.

index

ger oss tillgång till ett alfabetiskt ämnesregister där vi kan söka om vi vet namnet på det kommando eller det begrepp vi vill veta mer om.

search

ger oss möjlighet att söka i den samlade dokumentationen. Sökningen kan vara efter såväl enstaka ord som hela fraser.

favourites

är en sida som vi själva kan bygga upp. Om vi genom att använda någon av de tre metoderna ovan har hittat en sida som vi misstänker att vi kommer att återvända till kan vi genom att clicka på ”add to favourites” ovanför textpanån lägga till ett

bokmärke till den sidan. Nästa gång vi startar matlab och går in i hjälpfunktionen kan vi hitta vår favoritsida under den här fliken. Skulle vi vilja ta bort en favorit, eller döpa om den så kan vi göra det genom att klicka på en favorit med den högra musknappen.

Lå oss nu ta en närmare titt på vad som möter oss under fliken ”contents”. Grovt schematiskt ser panån under ”contents” ut så här:

Boxarna symboliserar avsnitt i hjälpkatalogen. Genom att klicka på någon av textraderna kommer vi till motsvarande avsnitt i hjälpdokumentationen. den lilla fyrkanten med ett + -tecken visar att motsvarande symbol innehåller underavdelningar som vi kan göra synliga genom att klicka på

plustecknet. När vi gör det - prova! - så öppnas den avdelningen, och vi kan fortsätt att klicka oss fram tills vi når ner till den nivå vi söker. En underavdelning som är öppnad kan stängas igen: klicka bara på minustecknet så stängs motsvarande nivå. I den här kursen kommer vi nästan uteslutande att hålla oss inom den del av dokumentationen som startar med boxen "MATLAB". Klickar du på den boxen så öppnar sig nästa nivå, här är "Getting started with MATLAB" och "Using MATLAB" de avsnitt vi kommer att behöva mest. I bägge fallen är "Development Environment" det avsnitt som vi kommer att ha mest nytta av. I det här kompendiet används en speciell syntax för att beskriva hur du skall navigera fram till givna avsnitt i hjälpdokumentationen. Låt oss t ex börja med att läsa i dokumentationen hur matlab med hjälp av fägkodning och andra trix hjälper oss att skriva korrekta kommandon i

kommando fönstret. Till den sidan når du genom att med början i läget som avbildas i figuren ovan klicka på följande titlar:

MATLAB Using MATLAB

Development Environment Running MATLAB Functions

The Command Window

Preferences ofr the Command Windown

Längst ned på sidan finns en länk "syntax highlightning" som leder oss till den sida som beskriver hur matlab använder färgkoder för att hjälpa till med syntaxen.

För att spara utrymmer kommer vi i det här kompendiet att använda en speciell syntax för att beskriva hur vi navigerar i hjälpsystemet. Klickandet ovan skriver vi

?/MATLAB/Using!MATLAB/Development!Environment/Running!MATLAB!Functions/The Command!Window/Preferences ofr the Command Windown

När vi har läst färdigt i hjälpfönstret så kan det vara bekvänt att göra sig av med det så att vi lättare kan se kommandofönstret. Enklast gör vi det genom att använda oss av en av symbolerna som visas högst upp till höger i varje fönster (alltså inte bara matlabs) som visas på datorn. De tre symbolerna används

för att hantera fönster i Windowsmiljön. Symbolen till

vänster avnänds för att förminska fönstret till en "ikon". Prova att klicka på den, och du ser att fönstret försvinner och att vi obehindrat kan se de fönster som tidigare var dolda bakom hjälpfönstret. Det fina i kråksången är att fönstret finns kvar i skepnad av en liten symbol "Help" på listen längst ned på datorskärmen. Genom att klicka på den symbolen återställs fönstret genast. Det här är ett bekvämt sätt att göra det enklare att hitta bland alla sina öppna fönster, de som inte används för tillfället minimerar man bara och de finns fortfarande lätt tillgängliga.

Krysset längst till höger avslutar det program som öppnat fönstret, klickar vi på det så avslutas matlabs hjälpfunktion och vi får börja om från början och klicka på om vi vill ha mer hjälp.

Den mittersta symbolen slutligen används för att maximera ett fönsters storlek, klickar vi på den så förstoras fönstret så att det täcker hela datorskärmen. Det här kan vara bekvämt om man till exempel vill kunna läsa en hel sida i dokumentationen på skärmen utan att behöva skrolla upp och ner på skärmen. När vi är klara klickar vi bara en gång till på samma symbol och fönstret återtar sin ursprungliga storlek.

Ett annat sätt att få hjälp är att i kommandofönstret skriva help subject, där subject är det ämne man söker hjälp om. Detta leder snabbare fram till den informaiton man söker. Svårigheten med att använda det kommandot är bara att man måste ha en första idé om vad det är man vill ha hjälp med så att man har något vettigt att skriva in som "subject".

4.1.6 Avsluta matlab

Det finns två sätt att avsluta matlab. Du kan antingen gå in i menyn ”File” och där välja ”exit Matlab”

eller också trycka på ”ctrl Q”, det betyder att du samtidigt trycker ner tangenten ”ctrl” i nedre vänstra hörnet av tangentbordet och tangenten ”Q”.

4.2 Börja räkna

4.2.1 matlab som en räknedosa

Enklare matematiska operationer görs precis som på en vanlig räknedosa (med normal, dvs ej omvänd polsk notation à la HP-räknare) med den lilla skillnaden att vi trycker på return i stället för ”=” när vi vill beräkna resultatet. Pröva t ex att beräkna 2+2:

>> 2 + 2 ans = 4

4.2.2 operatorer

För aritmetik har matlab de vanliga operatorerna:

+ Addition - Subtraktion

* Multiplikation / Division

\ Vänsterdivision – beskrivs i avsnitt XXX

^ Exponering

’ Komplex konjugering och transponering ( ) Paranteser för att definiera prioritetsordning Prioritetsordningen mellan operatorerna är den normala.

4.2.3 variabler

I matlab kan man liksom i alla högnivåspråk definiera variabler, och tilldela dessa värden. Detta har två omedelbara fördelar: dels underlättar det arbetet genom att man inte behöver upprepa inmatning av samma värde fler gånger, dels gör det instruktionerna enklare att följa och förstå – åtminstone om man väljer namn på konstanterna som är begripliga. Antag som ett exempel att en läskeblask kostar 10 pix, en varmkorv 12 och en kaffe 4. Om då Kalle köper en korv och fyra kaffe, Lisa en läskeblask och två korvar och Ludde tre korvar och två läskeblask, så kan vi räkna ut vad var och en fick betala på följande sätt:

>> laskeblask = 10

>> Ludde = 3*korv + 2 *laskeblask Ludde =

56

I exemplet ovan är laskeblask, korv, kaffe, Kalle, Lisa och Ludde alla variabler. Variabler kan alltså tilldelas värden antingen explicit (uttryckligen) genom t ex korv = 12, eller genom en beräkning som t ex Kalle = 2*korv + 4*kaffe.

Observera att man som alltid måste vara noga med syntaxen, eller programmeringsspråkets grammatik. Det går inte att skriva

>> Dyrt = 3 korv

Prova! Du kommer att få ett prov på hur matlab vänligt, men inte särskilt diskret hjälper en tillrätta när man får syntaxen fel.

Glömmer man bort vad en läsk kostar kan vi fråga matlab:

>> laskeblask

laskeblask = 10

En fallgrop man får akta sig för är att för variabler vars värde beräknas, som t ex Kalle ovan behåller det värde som variabeln tilldelas senaste gången den beräknas, även om en av de variabler som ingår när man beräknar variabelns värde ändras. Ett exempel:

>> kola = 0.5

Värdet på variabeln Sune ändras alltså inte när värdet på klubba ändras, när värdet på Sune beräknades gällde det gamla värdet på klubba och värdet på Sune förblir oförändrat så länge vi inte räknar om det med

>> Sune = 20 * kola + 4 * klubba Sune =

30

Variabelnamn i matlab måste börja med en bokstav, följd av en godtycklig combination av bokstäver (ej å, ä eller ö), siffror eller understrykning (–), ett variabelnamn kan alltså inte innehålla mellanslag.

Matlab ser skillnad på stor och liten bokstav, ALLA, Alla och alla är alltså tre olika variabler. Om man vill skapa variabelnamn som är sammansättningar av mer än ett ord finns två konventioner:

antingen binder man ihop med ett understrykningstecken, eller också skriver man med små bokstäver, men inleder nya ord med versal. Alltså antingen lagsta_strom eller lagstaStrom. Vilket du väljer att göra är godtyckligt, men det är bra om man försöker att hålla sig till ett sätt att skriva. Det är ju enkelt

att komma ihåg att variabeln är ”lägsta ström”, men om man på vissa ställen skriver lagsta_strom och på andra lagstaStrom så kommer man att hänvisa till olika variabler på olika ställen i sin kod. Det är därför klokt att en gång för alla bestämma sig för en konvention och sedan hålla sig till den. Det kan också vara bra att undvika de svenska bokstäverna även om det program man arbetar med stöder dessa. När man skriver många program skaffar man sig vanor, och det är bra om vanorna fungerar i så många olika sammanhang som möjligt.

eps 2-52, den minsta relativa skillnaden mellan två rationella tal, eller uttryckt på annat sätt: det minsta tal man kan addera till 1 och få ett tal som är större än 11. realmin 2-1022, det minsta rationella talet som kan representeras på datorn,

realmax (2-eps)1023, det största rationella talet som kan representeras på datorn.

Inf Oändligheten som resultat av en väl definierad matematisk operation, t ex 10/0 NaN Icke definierat (Not a Number), resultatet av en operation där resultate inte är

definierat t ex 0/0 eller Inf - Inf ans Resultatet av det senaste kommandot

Av dessa kommer vi kanske inte att använda mer än pi i den här kursen, men det är bra att veta att de finns, i vissa lägen kan matlab komma att använda dem i felmeddelanden och då är det bra att veta vad till exempel NaN står för.

Vi har här valt att kalla dessa tal för "konstanter" eftersom det är så vi betraktar och använder dem.

Rent tekniskt är de dock implementerade som inbyggda funktioner vilket har som en konsekvens att man kan definiera om dem:

De är dock litet mer stabila än vanliga variabler av typ Kalle som vi själva definierar. En variabel vi har definierat kan tas bort så att matlab inte längre minns något om dem genom att ge commandot clear:

1 Minns att datorer använder en sträng av ettor och nollor för att representera rationella tal. De kontinuerliga talen representeras internt av en serie diskontinuerliga tal vilket är nödvändigt om man vill kunna beskriva talen

>> clear Kalle

Gör vi samma sak med en av "konstanterna" i tabellen ovan så återställs värdet till det fördefinierade som visas i tabellen..

4.3 Miljön i matlab

4.3.1 Städa upp kommandofönstret: tyst input, fortsättningsrader

När man börjar komma igång litet med att använda matlab så tycker man ofta att kommandofönstret blir litet ostrukturerat, alla kommandon man ger upprepas slaviskt, vissa värden ges utan decimaler, andra med en lång radda nollor på slutet. Det finns ett antal kommandon som hjälper en att skräddarsy vad vi ser i kommandofönstret.

För att stänga av ekot, det vill säga för att få matlab att avstå från att rapportera resultatet av varje kommando vi skriver in räcker det med att avsluta raden med semikolon. Egentligen är det inte raden, utan kommandot som avslutas med semikolon. Distinktionen är viktig, eftersom användandet av semikolon gör det möjligt att skriva mer än ett kommando på varje rad. Denna finess bör användas med omdöme, driver man det för långt kan det bli nästan omöjligt att se vad man gjort, men rätt använt kan det istället göra det lättare att följa med:

>> laskeblask = 10; korv = 12; kaffe = 4;

>> Kalle = 2*korv + 4*kaffe Kalle =

40

ser mycket bättre ut än förra gången vi räknade ut Kalles utgifter.

Man bör försöka undvika för långa kommandon, men ibland kan man behöva skriva kommandon som inte får plats på en rad, som till exempel:

Y = ((3.5*(a+b)–c)+sin(phi–2.75*D)/epsil**2+(455–abba**3)/(cos(4+pi)–2.75) om vi behöver dela upp ett kommando på fler rader kan vi göra det, men för att tala om för matlab att kommandot inte är slut när raden är slut, vilket ju är vad matlab normalt antar, så måste den rad som har en fortsättning avslutas med tre punkter omedelbart följda av return:

>> Y = ((3.5*(a+b)–c)+sin(phi–2.75*D)/epsil**2+…

>> (455–abba**3)/(cos(4+pi)–2.75)

är alltså ett kommando även om det sträcker sig över mer än en rad.

är alltså ett kommando även om det sträcker sig över mer än en rad.

Related documents