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 vector = countCoins(coinList) vector = zeros(1, 4); %oppretter returvektoren for i = 1:length(coinList) if coinList(i) == 1 vector(1) = vector(1) + 1; elseif coinList(i) == 5 vector(2) = vector(2) + 1; elseif coinList(i) == 10 vector(3) = vector(3) + 1; elseif coinList(i) == 20 vector(4) = vector(4) + 1; end end 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])