Урок 15. Задача 22.
Primary tabs
Задача про банкомат:
Пользователь вводит целое число - сумму в некоторой валюте, требуется выдать эту сумму купюрами наибольшего достоинства.
Напишите программу, которая в качестве результата скажет как именно надо разменять указанную сумму купюрами наибольшего достоинства (укажет количество для купюры каждого типа)Например, пусть у нас набор купюр 1000, 500, 100 и 50 рублей:
Сумму 350 рублей: по задаче следует выдать как: 3 по 100 и 1 по 50
Сумму 520 рублей: таким набором разменять нельзя.
Указания по возможному оформлению (можно оформлять и иначе):Напишите процедуру, которая:
принимает на вход число (сумму) по значению
массив "достоинств" купюр отсортированный по убыванию (предположим, что видов купюр не может быть больше 10) по значению
массив для "количеств купюр" по ссылке
булевский параметр успешности подбора купюр (некоторые суммы вообще разменять нельзя)
После выполнения процедуры в четвертом параметре должен быть true или false, а в массиве "количеств" должны находится находится значения, на основании которых банкомат мог бы выдать купюры.
type Arrubl = array[ 1..4 ] of integer; var sum, i :integer; fl :boolean; bills :Arrubl = (1000, 500, 100, 50); count :Arrubl = (0, 0, 0, 0); procedure bancomat(sum :integer; bills :Arrubl; var count :Arrubl; var fl :boolean); var i :integer; begin i := 0; while (i < 4) do begin i := i + 1; if (sum > 0) and ((sum div bills[i]) > 0) then begin count[i] := sum div bills[i]; sum := sum mod bills[i]; end else if (sum < bills[i]) then count[i] := 0 end; if (sum > 0) then fl := false; end; procedure scoreboard(bills, count :Arrubl; fl :boolean); var i :integer; begin if fl then for i := 1 to 4 do if (count[i] = 0) then continue else write(bills[i], ' = ', count[i], ' ') else write('No exchange') end; begin fl := true; sum := 5450; bancomat(sum, bills, count, fl); scoreboard(bills, count, fl); readln(); end.
- Log in to post comments
- 481 reads
vedro-compota
Wed, 08/24/2022 - 19:43
Permalink
засчитано
засчитано
_____________
матфак вгу и остальная классика =)