Oppgave 1 - Teori for-løkker

  1. enListe = 1:10 
    for tellevariabel = enListe
    	%her er det kode som gjentas
    end
  2. Man bruker helst når antallet iterasjoner er kjent. Når du ikke vet antall iterasjoner er det vanligere å bruke while-løkker.

Oppgave 2 - Løkker

%1
for i = 1:20
	fprintf('%i. Bolton Wanderers\n',i)
end
%2
tall = 1;
while tall ~=7
	tall = randi([0 10]);
	disp(tall)
end

Oppgave 3 - While-løkke

tall = randi([0 10]);
while tall ~= 7
    disp(tall)
    tall = randi([0 10]);
end

Oppgave 4 - Repetisjon av for-løkker

  1. for i = 1:length(list)
    	if list(i) <= 0
    		list(i) = 1;
    	end
    end
  2. forelopig_sum_tabell = zeros(1,length(list));
    forelopig_sum_tabell(1) = list(1);
    for i = 2:length(list)
        forelopig_sum_tabell(i) = forelopig_sum_tabell(i-1)+list(i);
    end
    forelopig_sum_tabell

Oppgave 5 - Passord

while 1 % Evig løkke
    passord1 = input('Skriv inn ditt passord--> ');
    passord2 = input('Skriv inn ditt passord på nytt--> ');
   
    % Sammenligner de to vektorene og lagrer binærverdien i variablen like
    like = strcmp(passord1,passord2)
    
    % Skriver om passordet fra string til ASCII-verdi
    passord1 = double(passord1);
    passord2 = double(passord2);
    
    % Vi lagrer passordenes respektive lengder
    n = length(passord1);
    m = length(passord2);  
        
    % Hvis passordene er like
    if like == 1
        fprintf('Passordene er like.\n');
        
    % Hvis de ikke er like, sammenligner vi deres lengde
    elseif length(passord1) ~= length(passord2)
        fprintf('Passordene har ulik lengde!\n');
        
    % Hvis lengden også er ulik undersøker vi hvilken av passordene som
    % kommer først i alfabetisk rekkefølge. 
    else
        % Vi går gjennom hver bokstav i ordene og sammenligner dem
        for i = 1:max(n,m)
            if passord1(i) > passord2(i)  
                fprintf('Passord 2 kommer før passord 1 i alfabetet\n');
                break 
            else
                fprintf('Passord 1 kommer før passord 2 i alfabetet\n');
                break
            end% If
        end % For
    end % If 
end % While

Oppgave 6 - Produkt

produkt = 0;
while produkt < 70
    tall1 = randi([1 10]);
    tall2 = randi([1 10]);
    produkt = tall1 * tall2;
    disp(produkt)
end

Oppgave 7 - Speedometer

for kmh = [10:10:110]
    kmhToMph = kmh / 1.6;
    fprintf('%d km/t = %.0f mph.\n',kmh,kmhToMph);
end

Oppgave 8 - Doble for-løkker

%1
mat =  [ 1, 3,-3, 5,23;
    23, 2,34,13,32;
    33,67,64, 5,-9;
    46,-6, 6,64, 8;
    2, 3,19,23,-4];
%2
i = 1;
for row = mat
    j = 1;
    for element = row'
        if element < 0
            mat(j,i) = -element;
        end
        j = j+1;
    end
    i = i+1;
end
mat
%3
tall = mat(1,1);
for row = mat
    for element = row'
        if element > tall
            tall = element;
        end
    end
end
tall

Oppgave 9 - Badekaret

litervann = 0;
while litervann < 20
	fprintf('Det er %i liter vann i badekaret.\n',litervann)
	litervann = litervann + 1;
end
fprintf('Badekaret er fult!\n')

Oppgave 10 - Badekarsprodusenten

%1a
tabellen = [20,35,10,17,45,35,20,15,17,40];
%1b
badekarSum = 0;
for badekar = tabellen
	badekarSum = badekarSum + badekar;
end
fprintf('Du trenger %i liter for å fylle opp badekarene.\n,badekarSum')
%2
tall = 1;
sumoddetall = 0;
while tall < 20
	sumoddetall = sumoddetall + tall;
	tall = tall + 2;
end
fprintf('Summen av alle (positive) oddetall under 20 er %i.\n',sumoddetall )

Oppgave 11 - Sum av gangetabellen

sum = 0;
for i = [1:10]
    for j = [1:10]
        sum = sum + (i*j);
    end
end
fprintf('%d', sum);

Oppgave 12 - Stigende sekvenser

j = 1;
for i = [1:10]
    k = 1;
    while k <= j
        fprintf('%d ', k);
        k = k + 1;
        i = i + 1;
    end
    j = j + 1;
    fprintf('\n');
end
  • No labels