Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Læringsmål:

  • Switch
  • For-løkker

Pensum

  • 4.4 - The Switch statement
  • 5.1 - The FOR loopKap PLACEHOLDER


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
languagenone
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 å iterere gjennom alle personene (i listen).

 

Expand
titleKlikk her for å lære mer om lister og løkker
Code Block
languagenone
function res = 
dinFunksjon
function ( 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
languagenone
% 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
languagenone
% 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
languagenone
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
languagenone
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