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

Compare with Current View Page History

« Previous Version 6 Next »

a)

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å stater vi på 100 igjen\n\n')

b)

function numCoins = countCoins (list)
tempList = 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)

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
    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.
    j = j+1;
    if (mod(j,20)==0)
        fprintf('Summen er: %d\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)

function numCoins = dailyCoins(dailyDinner)
%dailyDinner = [60,139,63,102,94,83,49,75,133,102];
coins = [20,10,5,1];
%%% En liste over verdien til mynter vi kan betale med
numCoins = zeros(length(dailyDinner),length(coins));
%%% Denne listen skal inneholde hvor mange av de forskjellige myntene vi
%%% trenger hver dag.
%%% numCoins(i,j) gir antall mynter for dag i av myntnummer j
%%% numCoins(1,1) skal være 3, fordi 60 = 3*20
i = 1; %%% Dag
j = 1; %%% Mynt
while i <= length(dailyDinner) %%% så lenge det finnes flere dager
    if dailyDinner(i)-sum(coins.*numCoins(i,:))-coins(j) >= 0
        %%% Sjekker om man kan bruke en mynt til av samme type
        %%% uten å overstige prisen på middagen
        numCoins(i,j) = numCoins(i,j)+1; % legger til en mynt.
    elseif dailyDinner(i)-sum(coins.*numCoins(i,:)) == 0
        %%% Sjekker om vi har funnet rett antall mynter for denne middagen
        i = i+1;
        %%% går til neste middag
        j = 1;
        %%% Angir at vi skal coins(1) igjen.
    else
        j = j+1;
        %%% angir at vi må bruke neste mynt
    end
end

e) 

numCoins = dailyCoins(dailyDinner)
weightCoins = sum(numCoins*[9.9;6.8;7.85;4.35])
  • No labels