...
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
% 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 |