Задание 10 Параграф 3.3 ГДЗ Босова 8 класс (Информатика)
- Запишите на языке Паскаль программу, реализующую алгоритм работы кассира, выдающего покупателю сдачу $$s$$ наименьшим возможным количеством банкнот по 500 $$\left(k_{500}\right)$$, 100 $$\left(k_{100}\right)$$, 50 $$\left(k_{50}\right)$$ и 10 $$\left(k_{10}\right)$$ рублей.
Нужно последовательно определить, сколько банкнот каждого номинала войдёт в сумму сдачи. Сначала берём как можно больше банкнот по $$500$$ рублей, затем из остатка — по $$100$$, потом по $$50$$ и по $$10$$.
Для этого используем целочисленное деление и остаток от деления:
$$k500 = s \ div \ 500$$
$$k100 = (s \ mod \ 500) \ div \ 100$$
$$k50 = (s \ mod \ 100) \ div \ 50$$
$$k10 = (s \ mod \ 50) \ div \ 10$$
Так как в примере сумма $$845$$, то:
$$k500 = 845 \ div \ 500 = 1$$
$$k100 = (845 \ mod \ 500) \ div \ 100 = 345 \ div \ 100 = 3$$
$$k50 = (845 \ mod \ 100) \ div \ 50 = 45 \ div \ 50 = 0$$
$$k10 = (845 \ mod \ 50) \ div \ 10 = 45 \ div \ 10 = 4$$
program Ch;
var
k500, k100, k50, k10, s: integer;
begin
readln(s);
k500 := s div 500;
k100 := (s mod 500) div 100;
k50 := (s mod 100) div 50;
k10 := (s mod 50) div 10;
writeln(‘Следует сдать:’);
writeln(‘банкнот по 500 руб. — ‘, k500, ‘ шт.’);
writeln(‘банкнот по 100 руб. — ‘, k100, ‘ шт.’);
writeln(‘банкнот по 50 руб. — ‘, k50, ‘ шт.’);
writeln(‘банкнот по 10 руб. — ‘, k10, ‘ шт.’);
end.
Ответ
Для суммы $$845$$ рублей программа выведет: 1 банкноту по $$500$$ руб., 3 банкноты по $$100$$ руб., 0 банкнот по $$50$$ руб. и 4 банкноты по $$10$$ руб.



