...
Code Block | ||
---|---|---|
| ||
function vector = countCoins(coinList) vector = zeros(1, 4); %oppretter returvektoren for i = 1:length(coinList) ifswitch coinList(i) == case 1 vector(1) = vector(1) + 1; elseif coinList(i) == case 5 vector(2) = vector(2) + 1; elseif coinList(i) == case 10 vector(3) = vector(3) + 1; elseif coinList(i) == case 20 vector(4) = vector(4) + 1; else 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 | ||
---|---|---|
| ||
function vector = countCoinssumCoins(coinList) vector = zeros(1, 4); % oppretter returvektoren sum = 0; for i = 1:length(coinList) ifswitch coinList(i) == case 1 vector(1) = vector(1) + 1; elseif coinList(i) == case 5 vector(2) = vector(2) + 1; elseif coinList(i) == case 10 vector(3) = vector(3) + 1; elseif coinList(i) == case 20 vector(4) = vector(4) + 1; else otherwise error('Kun gyldige mynter!'); end sum = sum + coinList(i); % dersom vi har talt et multiplum av 20 mynter, skriver vi ut summen if mod(i,20) == 0 end fprintf('Etter %d mynter har vi talt opp %d kroner\n', i, sum); end end end |
d)
Code Block | ||
---|---|---|
| ||
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;
end
end |