Другие языки программирования и технологии
Программа паскаль множества
Нужна программа которая будет раскладывать гривну на копейки и выдавать сколько каких копеек влезет в ту или инную введеденную сумму. moneta:= [‘1’, ‘2’, ‘5’, ‘10’, ‘25’, ‘50’]; Допустим введена цифра 1.28 (*100=128 копеек) то программа должна с использованием множества вывести 2 х 50 копеек. 1 х 25 коп 1 х 2 коп. 1 х 1 коп Очень нужнО!! хотябы алгоритм решения напишите. заранее спаибо.
Алгоритм:
Введенное число делится на самый большой член множества значений монет. ("50")
1. Если получилось число большее 1-цы, то целочисленная часть это и будет количество полтинников.
Далее от первоначальной суммы отнимается сумма в полтинниках и с остатоком производится та же операция, но со следующим членом множества монет (с меньшим) .
2. Если результат деления меньше единицы, то необходимо с числом повторить то же действие, но со следующим (меньшим) членом множества.
Если результат деления равен целому числу, то необходимо выйти из программы и вывести значения количеств монет по номиналам, которое тоже можно представить в виде множества.
Все эти действия замыкаются в цикл, выход из которого производится либо по появлению нуля в остатке от деления, либо по достижению последнего члена множества номиналов монет ("1")
Введенное число делится на самый большой член множества значений монет. ("50")
1. Если получилось число большее 1-цы, то целочисленная часть это и будет количество полтинников.
Далее от первоначальной суммы отнимается сумма в полтинниках и с остатоком производится та же операция, но со следующим членом множества монет (с меньшим) .
2. Если результат деления меньше единицы, то необходимо с числом повторить то же действие, но со следующим (меньшим) членом множества.
Если результат деления равен целому числу, то необходимо выйти из программы и вывести значения количеств монет по номиналам, которое тоже можно представить в виде множества.
Все эти действия замыкаются в цикл, выход из которого производится либо по появлению нуля в остатке от деления, либо по достижению последнего члена множества номиналов монет ("1")
Несколько странно использовать множества для данной задачи, поскольку множества не адресуются по элементам. Логичнее было бы использовать массив констант.
Но в общем и целом алгоритм такой: введенную сумму множим на 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 - выход.
Но в общем и целом алгоритм такой: введенную сумму множим на 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 - выход.
Похожие вопросы
- программа Паскаль
- А программы Паскаль, Бейсик, Жава, и другие они все переводятся в один и тот же машиный язык? (вопрос про обычный пк).
- Какую программу (Паскаль) использовать в учебных целях, чтоб была овместима с файлами от "Турбо Паскаль"? В которых
- Программа Паскаль.
- Кто хорошо знает программу ПАСКАЛЬ??плиз помогите)
- Программа Паскаль
- Помогите разобраться с написанием программы Паскале!
- Напишите программу, паскаль, пожалуйста
- где у меня ошибка в программе? ( Паскаль не изучала, писала интуитивно :D )
- Программа паскаль, код внутри.