Versions Compared

Key

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

a)

Code Block
languagenone
for i = 1:99
fprintf ('Fiskebolla lengter etter havet\nFor havet det er fiskebollers hjem\nDette var det %d. verset\nNå er det bare %d igjen\n\n',i,100-i)
end
fprintf ('Fiskebolla lengter etter havet\nFor havet det er fiskebollers hjem\nDette var det siste verset\nNå staterstarter vi på 100 igjen\n\n')

b)

Code Block
languagenone
function numCoinsvector = countCoins (listcoinList)
tempListvector = zeros(2,max(list));
% lager en liste med antall elementer lik verdien til største mynten.
for i = list
    tempList(2,i) = tempList(2,i)+1;
    % Teller antall mynter med denne verdien på plassen som tilsvarer
    % verdien til denne mynten. 
    % 5 kroninger blir lagret i list(2,5), fordi i = 5 for alle 5 kroninger
    
    tempList(1,i) = i;
    % Angir verdien til mynten med denne indeksen.
    % 5 kroninger har verdi 5.
end
tempIndex = find(tempList(2,:));
% find finner indeksen til alle elementer i listen som er ulik null.
numCoins = tempList(:,tempIndex);
% Lager en ny liste med alle mynter som vi har flere enn null av.
for i = 1:length(numCoins)
    fprintf('Du har %d %d-kroninger\n',numCoins(2,i),numCoins(1,i))
end

c)

1, 4); %oppretter returvektoren
for i = 1:length(coinList)
   switch coinList(i)
        case 1
        vector(1) = vector(1) + 1;
        case 5
        vector(2) = vector(2) + 1;
        case 10
        vector(3) = vector(3) + 1;
        case 20
        vector(4) = vector(4) + 1;
        otherwise
        error('Kun gyldige mynter!');
    end
end
end
 
% Alternativ løsning
function vector = countCoins2(coinList)
coins = [1, 5, 10, 20];
vector = zeros(1,4);
for i = 1:length(coins)
    vector(i) = sum(coinList == coins(i));
end
if sum(coinList) ~= sum(vector.*coins)
    error('Kun gyldige mynter!');
end
end


c)

Code Block
languagenone
function sumCoins(coinList)
vector = zeros(1, 4); 
sum
Code Block
function numCoins = countCoins (list)
tempList = zeros(2,max(list));
% lager en liste med antall elementer lik verdien til største mynten.
j = 0;
for i = list
1:length(coinList)
    switch tempListcoinList(2,i) = tempList(2,i)+1;
        case 1
    % Teller antall mynter med denne verdien på plassen som tilsvarervector(1) = vector(1) + 1;
    % verdien til denne mynten.case 5
    % 5 kroninger blir lagret i listvector(2) = vector(2,5), fordi i = 5 for alle 5 kroninger) + 1;
        case 10
    
    tempListvector(1,i3) = i vector(3) + 1;
    %  Angir verdien tilcase mynten20
 med denne indeksen.
    % 5 kroninger har verdi 5.vector(4) = vector(4) + 1;
    j   = j+1;
otherwise
       if (mod(j,20)==0)error('Kun gyldige mynter!');
    end
    sum = sum + coinList(i);
end
fprintf('Summen er: %dEtter %d mynter har vi talt opp %d kroner\n', sum(list(1:j)))
    end
end
tempIndex = find(tempList(2,:));
% find finner indeksen til alle elementer i listen som er ulik null.
numCoins = tempList(:,tempIndex);
% Lager en ny liste med alle mynter som vi har flere enn null av.
for i = 1:length(numCoins)
    fprintf('Du har %d %d-kroninger\n',numCoins(2,i),numCoins(1,i))
end

d)

i, sum);
end

d)

Code Block
languagenone
function coins(price)
coinList = [20, 10, 5, 1]; 
sum = 0;
for i = 1:length(coinList) % Her kunne vi også skrevet 4. Kanskje vil vi utvide funksjonen i fremtiden slik at også lapper skal være med.
    while price >= coinList(i)
        sum = sum + 1;
        price = price - coinList(i);
    end
    fprintf('Antall %d-kroninger: %d\n', coinList(i), sum);
    sum = 0;
end
end
 
% Alternativ løsning
function coins(price)
coinList = [20, 10, 5, 1]; 
sum = 0;
for i = 1:length(coinList) % Her kunne vi også skrevet 4
    sum = floor(price / coinList(i));
    price = rem(price, coinList(i));
    fprintf('Antall %d-kroninger: %d\n', coinList(i), sum);
    sum = 0;
Code Block
dailyDinner = [60,139,63,102,94,83,49,75,133,102];
coins = [20,10,5,1];
numCoins = zeros(length(dailyDinner),length(coins));
i = 1; j = 1;
while i <= length(dailyDinner)
    if dailyDinner(i)-sum(coins.*numCoins(i,:))-coins(j) >= 0
        numCoins(i,j) = numCoins(i,j)+1;
    elseif dailyDinner(i)-sum(coins.*numCoins(i,:)) == 0
        i = i+1;
        j = 1;
    else
        j = j+1;
    end
end