Другие языки программирования и технологии

Программа паскаль множества

Нужна программа которая будет раскладывать гривну на копейки и выдавать сколько каких копеек влезет в ту или инную введеденную сумму. moneta:= [‘1’, ‘2’, ‘5’, ‘10’, ‘25’, ‘50’]; Допустим введена цифра 1.28 (*100=128 копеек) то программа должна с использованием множества вывести 2 х 50 копеек. 1 х 25 коп 1 х 2 коп. 1 х 1 коп Очень нужнО!! хотябы алгоритм решения напишите. заранее спаибо.
Алгоритм:

Введенное число делится на самый большой член множества значений монет. ("50")

1. Если получилось число большее 1-цы, то целочисленная часть это и будет количество полтинников.

Далее от первоначальной суммы отнимается сумма в полтинниках и с остатоком производится та же операция, но со следующим членом множества монет (с меньшим) .

2. Если результат деления меньше единицы, то необходимо с числом повторить то же действие, но со следующим (меньшим) членом множества.

Если результат деления равен целому числу, то необходимо выйти из программы и вывести значения количеств монет по номиналам, которое тоже можно представить в виде множества.

Все эти действия замыкаются в цикл, выход из которого производится либо по появлению нуля в остатке от деления, либо по достижению последнего члена множества номиналов монет ("1")
Евгений Функнер
Евгений Функнер
5 362
Лучший ответ
Несколько странно использовать множества для данной задачи, поскольку множества не адресуются по элементам. Логичнее было бы использовать массив констант.
Но в общем и целом алгоритм такой: введенную сумму множим на 100 и превращаем в целое число методом обрубания дробной части. Затем идем от наибольшего члена множества к наименьшему (не знаю как, вот тут массив по-любому удобнее) и смотрим, сколько раз данный элемент помещается в наше число. Если количество больше 0, делаем соотв. вывод на экран. Затем берем остаток от деления нашего числа на произведение номинал*количество и повторяем. Остановка когда число=0. Например:
Ввели 1.28
Наше число 128
128/50=2 - вывод 2х50
128\(50*2)=28
28/25=1 - вывод 1х25
28\(25*1)=3
3/10=0
3/5=0
3/2=1 - вывод 1х2
3\(2*1)=1
1/1=1 - вывод 1х1
1\(1*1)=0 - выход.
Р)
Рома )))
72 935