Innhold:
Tilordninger og semikolon
En tilordning i Matlab er å lagre en verdi i en variabel. En annen måte å si dette på er at vi «gir variabelen en verdi»
saldo = 100;
Hovedregelen er at vi alltid avslutter en tilordning med semikolon. Det er ett unntak her, og det er at vi dropper semikolon ved feilsøking. De færreste programmer fungerer etter hensikten i første forsøk på å skrive dem[1]. Enten kommer det rødskrift på skjermen, eller så får vi helt andre resultater enn planlagt. Da er det behov for å skrive ut noen mellomregninger til skjerm underveis, slik at vi kan finne ut av hva som egentlig foregår. Siden dette dessverre skjer altfor ofte har de som laget Matlab lagt inn et «triks» i språket for oss,
Vi må ikke ha et slikt triks, for vi kunne like gjerne ha lagt inn en ny programsetning med
disp(saldo);
etter tilordningen av saldo
. Nå er det en gang mye enklere å ta bort eller legge til semikoloner når du leter etter feil enn å legge inn helt nye linjer med kall til den innebygde funksjonen disp
. Derfor syntes forfatterne av Matlab dette var «kjekt å ha». Så ble det slik.
Blokker og semikolon
Programmeringsspråk har to hovedingredienser, tilordninger (eller enkle programsetninger) ogblokker. Vi kan se på blokker som «bokser» for å samle programsetninger som logisk hører sammen. I grunnkurset har vi lært om blokkene vist i Tabell 1.
Tabell 1. Blokker i Matlab.
if (betingelse) end | if (betingelse) else end | if (betingelse) elseif (betingelse) else end | forliste end | while (betingelse) end | function returvariabel =funksjonsnavn(parameter,...) end |
Hver av disse kan inneholde en eller flere enkle programsetninger. De kan også inneholde nye blokker, f.eks. kan if-end inneholde en ny if-end, for-end kan inneholde en ny for-end; eller kanskje også en if-end. I dataspråk kalles dette å nøste blokker:
for i = 1:length(liste) if (liste(i) >= 0) Npos = Npos + 1; end end | for i = 1:m for j = 1:n sum2 = sum2 + tab(i,j)^2; end end | while (tall > 0) if (mod(tall,2) == 0) like = like + 1; end tall = input(); end |
Alle blokkene starter med spesielle ord som Matlab kjenner igjen — if
, for
, while
, function
og til slutt end
for å angi hvor blokka slutter. Slike spesielle ord kalles for nøkkelord. For blokker gjelder regelen at
Egentlig er dette litt intuitivt. Et semikolon forteller hvor en enkel programsetning slutter. På samme vis forteller nøkkelordet end
hvor en blokk slutter. Da blir det litt smør på flesk å forsøke seg med semikolon etter end
.
Spesialtilfeller
Det er to tilfeller hvor bruk av semikolon ikke spiller noen rolle — Matlab fungerer nøyaktig likt enten du bruker det eller ikke.
return
Nøkkelordet return brukes for å hoppe ut av en funksjon hvis det ikke er mer å gjøre[2]. Matlab fungerer likt både med og uten semikolon her.
disp
Den innebygde funksjonen disp skriver ut på skjermen innparameteren (tall eller tabell) du gir den. Du får samme resultat med og uten semikolon; det ville ikke ha noen mening å skrive resultatet to ganger på skjermen.