Автор Николай Мурин задал вопрос в разделе Другие языки и технологии
Программа паскаль множества и получил лучший ответ
Ответ от Wladimir[гуру]
Алгоритм:
Введенное число делится на самый большой член множества значений монет. ("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 - выход.
Как за месяц выучить паскаль? с чего мне начать???
Очень советую не начинать с Делфи и других больших оболочек. Скачай старенький Turbo Pascal, его
подробнее...
паскаль
var i,n:integer; p:real; a,b:array[1..100]of real;
begin
write('Введите размер массивов:
подробнее...
как задать множество гласных букв в паскале
readln(zad); {Задание}
res:=\"\";{результат}
for i:=1 to lehgth(zad) do begin
s:=zad[ i
подробнее...
Free Pascal. Что значит \"in\" в паскале? И чем можно его заменить?
if(s = \'+\' or s = \'-\' or s =
подробнее...
Объясните пожалуйста что такое массивы в паскале и как с ними вообще работать. . И если можно пример программы))
Попросту говоря, массив это набор пронумерованных переменных, к которым можно обращаться по их
подробнее...
Как будет выглядеть программа решения квадратного уравнения ax^2 + bx + c = 0 (Паскаль)???
Для Одри можно и покороче ))
Только для случая одного корня печатается 2 одинаковых. Так тоже
подробнее...
Ньютон, Лейбниц, Паскаль, Кеплер, Дарвин, Линней, Павлов, Пирогов, Эйнштейн, Фарадей, Джоуль, Сахаров, Гейзенберг -
Не должны. Они могут, но никому ничего не
подробнее...
Почему закон паскаля справедлив только для жидкостей и газов???
Потому что твердые тела не обладают
подробнее...
где скачать Pascal ABC ??
Система Pascal ABC предназначена для обучения программированию на языке Паскаль и ориентирована на
подробнее...
чем отличается Delphi 7 от PascalABC.net ???
На сайте PascalABC.NET специально описаны описаны различия.
"Язык PascalABC.NET близок к
подробнее...
Массовое переименование файлов. Чем?
#yahrefs195570# - Утилита для пакетного переименования текстовых, музыкальных, графических (без
подробнее...
Какие есть книги о рок-музыке?
Ария Маргариты
История Рока
7. Память о прошлом - История группы Черный Обелиск.
8.
подробнее...
где и когда был изобретен Гидравлический Пресс?
Гидравлический пресс — Принцип этого могущественного орудия современной техники был открыт
подробнее...
есть ли черные розы?
Существуют ли Чёрные розы? На этот вопрос существует множество красивых легенд и не только легенд.
подробнее...