-
Created by Unknown User (sindreka), last modified by Unknown User (henriboh) on 13.10.2015
Oppgave 1 - Teori for-løkker
enListe = 1:10
for tellevariabel = enListe
%her er det kode som gjentas
end
- 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
for i = 1:length(list)
if list(i) <= 0
list(i) = 1;
end
end
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