Læringsmål:
Pensum
- Kap 4.4 - The Switch statement
- Kap 5.1 - The FOR loop
a)
I) Hva gjør funksjonen nedenfor? (Hva skrives ut? Hvordan fungerer funksjonen? Hva er case
, switch
og otherwise
?)
II) Hva er noe, annet og funky? Gi dem bedre navn I koden under kan du se ordene something
, other
og funky
. Hva representerer disse? Endre navnene til å være mer beskrivende for deres funksjon.
Code Block |
---|
|
function noeother = annetsomething( funky )
switch ( funky )
case 1
noeother = 'Januar ';
case 2
noeother = 'Februar ';
case 3
noeother = 'Mars ';
case 4
noeother = 'April ';
case 5
noeother = 'Mai ';
case 6
noeother = 'Juni ';
case 7
noeother = 'Juli ';
case 8
noeother = 'August ';
case 9
noeother = 'September ';
case 10
noeother = 'Oktober ';
case 11
noeother = 'November ';
case 12
noeother = 'Desember ';
otherwise
noeother = 'Ikke en gyldig maaned ';
end
end |
Du Man får i oppgave å telle antall personer i et rom. Hvordan gjøres dette? En løsning er å be dem stille seg på rekke og for hver person du ser så legger du til én i tellingen helt til alle er telt.
I programmering gjøres dette med vektorer og for-løkker. Det antaes antas at alle personene er lagret i en vektor (liste) og man bruker for-løkken for å gå iterere gjennom alle personene (i listen).
Expand |
---|
title | Klikk her for å lære mer om lister og løkker |
---|
|
dinFunksjonfunction ( vector )
% initialiser noe .
for i = 1 : length ( vector )
% gjør noe for hvert element i vektoren
end
end
|
Når man løser telleproblemer er det lurt å bruke pekefingeren for å ha kontroll på hvor langt man har kommet. I eksempelet over representerer i-variabelen pekefingeren og man kan si at den peker på det elementet i vektoren man har kommet til. På samme måte som man bruker v(1) for å få tilgang til det første elementet i en vektor med navnet v, kan man bruke i-variabelen for å få tilgang til elementene i vektoren slik: v(i). Siden for-løkken hjelper med å sette verdien til i lik 1,2,3 osv til enden av vektoren, kan man gjøre en handling for hvert element i listen. Feks øke tellevariabelen med 1 for hvert person man ser. Code Block |
---|
| % her er vector en liste med personer .
function counter = count ( vector )
% før vi har starter å telle så har vi telt 0 personer .
counter = 0;
for i = 1 : length ( vector )
% for hver person vi teller øker vi telleren med 1.
counter = counter + 1;
end
% nå er counter lik antall personer i rommet .
end |
|
b) Hva gjør følgende kode? Gi bedre navn til res og fn.
Code Block |
---|
|
% vector er en vektor med tall eks : vvector = [ 1 2 3 ];
function res = fn ( vector )
res = 1;
for i = 1 : length ( vector )
res = res*vector(i);
end
end |
...
Code Block |
---|
|
function val = maximum ( rA, s B)
if (A r < s > B)
val = rA;
elseif (B s > r < A)
val = sB;
end
end |
d) En funksjon dukker opp. Den Funksjonen under skal returnere 1 om den finner et negativt tall og 0 ellers. Hva er galt med den?
Code Block |
---|
|
function resbool = negative hasNegatives( list)
resbool = false;
for i = 1 : length(list)
if ( list(i) < 0)
resbool = true; % fant jeg fant
else
resbool = false; % fant ikke
end
end
end |