You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 16 Next »

Læringsmål:

  • Switch
  • For-løkker

Pensum

  • Kap 4.4
  • Kap 5.1


a) 

I) Hva gjør funksjonen nedenfor?
II) Hva er noe, annet og funky? Gi dem bedre navn. 

function noe = annet( funky )
    switch ( funky )
        case 1
            noe = 'Januar ';
        case 2
            noe = 'Februar ';
        case 3
            noe = 'Mars ';
        case 4
            noe = 'April ';
        case 5
            noe = 'Mai ';
        case 6
            noe = 'Juni ';
        case 7
            noe = 'Juli ';
        case 8
            noe = 'August ';
        case 9
            noe = 'September ';
        case 10
            noe = 'Oktober ';
        case 11
            noe = 'November ';
        case 12
            noe = 'Desember ';
    otherwise
            noe = 'Ikke en gyldig maaned ';
    end
end

Du 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 at alle personene er lagret i en vektor (liste) og man bruker for-løkken for å gå gjennom alle personene (i listen).

 

function res = dinFunksjon ( 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. 

% 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.

% vector er en vektor med tall eks : v = [ 1 2 3 ];
	function res = fn ( vector )
	res = 1;
	
	for i = 1 : length ( vector )
		res = res*vector(i);
	end
end

c) Funksjonen under skal returnere verdien til det største tallet. Hva er galt?

function val = maximum ( r, s )
	if ( r < s )
		val = r;
	elseif ( s > r )
		val = s;
	end
end

d) En funksjon dukker opp. Den skal returnere 1 om den finner et negativt tall og 0 ellers. Hva er galt med den?

function res = negative ( list)
res = false;
for i = 1 : length(list)	
	if ( list(i) < 0)
		res = true; % fant jeg fant
	else
		res = false; % fant ikke
	end
end
  • No labels