1. В небольшом предприятии его сотрудникам выдаётся месячная зарплата. Кассир, имея на руках бухгалтерскую ведомость, собирается ехать в банк за деньгами. При этом он имеет возможность не просто подать заявку на общую сумму, а указать в ней также, какими именно купюрами ему хотелось бы получить её. Делается это для того, чтобы потом было удобнее рассчитываться с каждым отдельным работником (например, если выплаты производится, как говорят, «в конвертах»). Предварительно все исходные данные нужно представить в виде таблицы, где против каждой фамилии сотрудника, как только вводится начисленная ему зарплата, она тут же выражается соответствующим набором денежных знаков. Одновременно подводится и общий итог по всему коллективу для формирования банковского заказа. При определении набора следовать принципу наименьшего числа купюрРади упрощения задачи расчёт вести только на бумажные деньги с точностью до 10 рублей
Для расчётов использовать встроенные функции ЦЕЛОЕ и ОСТАТ из категории «математических» .
Другие языки программирования и технологии
Может кто знает? Не нужно решать, прост может кто знает как записать формулу расчета с целым и остатком? Заранее спасибо
Судя по ЦЕЛОЕ и ОСТАТ из категории «математических», речь идет об экселе. Позвольте спросить, функцию ОСТАТ обязательно использовать или можно обойтись только ЦЕЛОЕ? Полагаю, главное решить поставленную задачу.
Значит так, приведу путь решения для купюр 50, 25, 10, 5, 3 и 1. Итак, в ячейки B1-G1 запишите приведенный ряд номиналов купюр. В ячейку А2 пишите сумму, которую требуется разбить. Остается заполнить шесть ячеек формулами
В2:=ЦЕЛОЕ(A2 / B1) {число купюр максимального номинала}
С2:=ЦЕЛОЕ((A2 - B1*B2) / C1)
D2:=ЦЕЛОЕ((A2 - B1*B2 - C1*C2) / D1)
E2:=ЦЕЛОЕ((A2 - B1*B2 - C1*C2 - D1*D2) / E1)
F2:=ЦЕЛОЕ((A2 - B1*B2 - C1*C2 - D1*D2 - E1*E2) / F1)
G2:=ЦЕЛОЕ((A2 - B1*B2 - C1*C2 - D1*D2 - E1*E2 - F1*F2) / G1)
Из первоначальной суммы вычитаем произведение номинала на число купюр этого номинала постепенно наращивая число слагаемых.
Вот и все. Остается скопировать формулы в нужное количество строк, ввести суммы зарплат и посчитать число разных купюр функцией СЧЕТЕСЛИ() с условием значение ячейки больше нуля.
Думаю, для своих номиналов переделать труда не составит. Собственно вся переделка сведется к указанию нужных номиналов в первой строкеи, возможно, добавлению (удаленю) ячеек с формулами в строке.
Значит так, приведу путь решения для купюр 50, 25, 10, 5, 3 и 1. Итак, в ячейки B1-G1 запишите приведенный ряд номиналов купюр. В ячейку А2 пишите сумму, которую требуется разбить. Остается заполнить шесть ячеек формулами
В2:=ЦЕЛОЕ(A2 / B1) {число купюр максимального номинала}
С2:=ЦЕЛОЕ((A2 - B1*B2) / C1)
D2:=ЦЕЛОЕ((A2 - B1*B2 - C1*C2) / D1)
E2:=ЦЕЛОЕ((A2 - B1*B2 - C1*C2 - D1*D2) / E1)
F2:=ЦЕЛОЕ((A2 - B1*B2 - C1*C2 - D1*D2 - E1*E2) / F1)
G2:=ЦЕЛОЕ((A2 - B1*B2 - C1*C2 - D1*D2 - E1*E2 - F1*F2) / G1)
Из первоначальной суммы вычитаем произведение номинала на число купюр этого номинала постепенно наращивая число слагаемых.
Вот и все. Остается скопировать формулы в нужное количество строк, ввести суммы зарплат и посчитать число разных купюр функцией СЧЕТЕСЛИ() с условием значение ячейки больше нуля.
Думаю, для своих номиналов переделать труда не составит. Собственно вся переделка сведется к указанию нужных номиналов в первой строкеи, возможно, добавлению (удаленю) ячеек с формулами в строке.
Предположим что у вас среда делфи, тогда используем математический модуль,
Округление до целого по банковским правилам - x:=Round(345.87); //x: Extended; Здесь x=346.
Округление до двух знаков после запятой - x:=Roundto(x,-2); //x: Extended; uses Math;
Надеюсь помог.
Округление до целого по банковским правилам - x:=Round(345.87); //x: Extended; Здесь x=346.
Округление до двух знаков после запятой - x:=Roundto(x,-2); //x: Extended; uses Math;
Надеюсь помог.
Похожие вопросы
- Формула расчета минимальной и максимальной цены
- Нужна простая программа для создания фильма с мелких файлов, может хто-то знает где её скачать? Заранее спасибо!!!
- (Borland C++) Неизвестно откуда берет значение. Помогите, кто знает. Заранее спасибо!
- Помогите с программированием С++. Заранее спасибо.
- Подскажите самый простой язык программирования, для начала! Заранее спасибо!
- Помогите перевести из десятичной системы 135,135 в семеричную. Заранее спасибо.
- как отключить оформление в контакте и вернуть стандартный вид странице??заранее спасибо )
- Факториал tasm. Нужно вычислить факториал (не меньше 300!) и вывести результат на дисплей. Заранее спасибо.
- Учусь программировать. С чего начать. Какие книги читать. Просьба указать автора. Заранее спасибо.
- Изменить код.basic.Заранее спасибо