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



Автор Николай Мурин задал вопрос в разделе Другие языки и технологии

Программа паскаль множества и получил лучший ответ

Ответ от Wladimir[гуру]
Алгоритм:
Введенное число делится на самый большой член множества значений монет. ("50")
1. Если получилось число большее 1-цы, то целочисленная часть это и будет количество полтинников.
Далее от первоначальной суммы отнимается сумма в полтинниках и с остатоком производится та же операция, но со следующим членом множества монет (с меньшим) .
2. Если результат деления меньше единицы, то необходимо с числом повторить то же действие, но со следующим (меньшим) членом множества.
Если результат деления равен целому числу, то необходимо выйти из программы и вывести значения количеств монет по номиналам, которое тоже можно представить в виде множества.
Все эти действия замыкаются в цикл, выход из которого производится либо по появлению нуля в остатке от деления, либо по достижению последнего члена множества номиналов монет ("1")

Ответ от Jurijus Zaksas[гуру]
Несколько странно использовать множества для данной задачи, поскольку множества не адресуются по элементам. Логичнее было бы использовать массив констант.
Но в общем и целом алгоритм такой: введенную сумму множим на 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 - выход.

Ответ от 3 ответа[гуру]
Привет! Вот подборка тем с похожими вопросами и ответами на Ваш вопрос: Программа паскаль множества
Множество тип данных на Википедии
Посмотрите статью на википедии про Множество тип данных
 

Ответить на вопрос:

Имя*

E-mail:*

Текст ответа:*
Проверочный код(введите 22):*