Versions Compared

Key

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

Læringsmål:

  • Switch

Pensum

  • 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 = annet something( funky )
	    switch ( argfunky )
		        case 1
			res            other = 'Januar ';
		        case 2
			res            other = 'Februar ';
		        case 3
			res            other = 'Mars ';
		        case 4
			res            other = 'April ';
		        case 5
			res            other = 'Mai ';
		        case 6
			res            other = 'Juni ';
		        case 7
			res            other = 'Juli ';
		        case 8
			res            other = 'August ';
		        case 9
			res            other = 'September ';
		        case 10
			res            other = 'Oktober ';
		        case 11
			res            other = 'November ';
		        case 12
			res            other = 'Desember ';
	otherwise
			noe    otherwise
            other = '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 ( rA > B)
		val = A;
	elseif (B < s A)
		val = rB;
	elseif ( s > r )
		val = s;
	end
end


d) Funksjonen under skal returnere 1 om den finner et negativt tall og 0 ellers. Hva er galt med den?

Code Block
languagenone
function bool = hasNegatives(list)
bool = false;
for i = 1 : length(list)	
	if (list(i) < 0)
		bool = true; % fant 
	else
		bool = false; % fant ikke
	end
end
end