...
Code Block | ||
---|---|---|
| ||
function vector = countCoins(coinList)
vector = zeros(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 | ||
---|---|---|
| ||
function vector = countCoinssumCoins(coinList) vector = zeros(1, 4); % oppretter returvektoren sum = 0; 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 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 ELLER:% 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 |