Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 28.11.2012, 23:39   #1
Kasti
Новичок
Джуниор
 
Регистрация: 28.11.2012
Сообщений: 3
По умолчанию Алгоритм выдачи денег

Нужен алгоритм выдачи денег как в банкоматах, при этом имеются все наминалы(0,01 до 5000) и выдаются только рубли
п.с алгоритм нужен ввиде блок схемы, заранее спасибо за помощь
Kasti вне форума Ответить с цитированием
Старый 28.11.2012, 23:41   #2
Kasti
Новичок
Джуниор
 
Регистрация: 28.11.2012
Сообщений: 3
По умолчанию

Забыл дописать
деньги должны выдаваться минимальным количеством монет т.е если 11575 рублей то 2х5000 1х1000 1х500 1х50 2х10 и 1х5
Kasti вне форума Ответить с цитированием
Старый 29.11.2012, 00:17   #3
Abstraction
Старожил
 
Аватар для Abstraction
 
Регистрация: 25.10.2011
Сообщений: 3,178
По умолчанию

Алгоритм:
Пока "остаток" не ноль, находим самую крупную купюру меньше остатка, прибавляем к выдаваемому набору и вычитаем её номинал из "остатка".
Abstraction вне форума Ответить с цитированием
Старый 29.11.2012, 00:28   #4
Kasti
Новичок
Джуниор
 
Регистрация: 28.11.2012
Сообщений: 3
По умолчанию

у меня проблема не в версии решения а в том что я не могу оформить его в виде блок схемы, а само решение такое нужно ввести 2 мерный массив в котором 2 строки 13 столбцов(наминалы) потом делить сумму поочерёдно на каждый наминал полученные частные записывать во 2 ой столбец а в 1 ом записывать наминалы, т.е 11575:5000=2 и остаток 1575 потом сравнить остаток с наминалом на который делили если меньше то дальше делим на другой наминал и так до нуля
Kasti вне форума Ответить с цитированием
Старый 29.11.2012, 09:32   #5
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
а в том что я не могу оформить его в виде блок схемы,
совет. записывайте решение на языке программирования Паскаль.
Потом пользуйтесь любой программой для построения блок-схемы по коду.
Профит.

p.s. можно, конечно и с нуля нарисовать блок-схему, но мне лично, лениво!
На крайний случай, рисуйте свою, выкладывайте на форум, тут проверять, поправят, если надо...
Serge_Bliznykov вне форума Ответить с цитированием
Старый 29.11.2012, 09:56   #6
Sasha_Smirnov
Особый статус
Участник клуба
 
Аватар для Sasha_Smirnov
 
Регистрация: 24.11.2008
Сообщений: 1,535
По умолчанию VB vs Pascal

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
совет: записывайте решение на языке программирования Паскаль
Чисто для сравнения — на VB; в документе можно испытать, вставив туда этот код (по Alt-F11):
Код:
Option Explicit

Sub money()
Const summa = 10000000000# '50000000.5
Dim N, nabor()
Dim i, k, ki
    nabor = Array(10000, 5000, 1000, 500, 100, 50, 10, 5, 2, 1, 0.5, 0.1, 0.05, 0.01)
    N = summa   'данная сумма
    i = 0       'индекс массива nabor() - разновидностей купюр
        Do
            ki = 0              'искомое количество монет/купюр i-го достоинства
                Do While N >= nabor(i)
                    ki = ki + 1
                    N = N - nabor(i)
                Loop
                    k = k + ki  'насчитали (ещё) ki монет/купюр i-го достоинства
            i = i + 1           'взяли следующую (меньшую по достоинству) монету/купюру
        Loop Until N < 0.05
'    MsgBox N
    MsgBox "Для выдачи " & summa & _
    " р. необходимо купюр и монет общим количеством " & k & ".", vbInformation
End Sub
«Возвращать» же блок-схему из кода, по-моему, просто непедагогично.
Вложения
Тип файла: doc monedero.doc (36.0 Кб, 28 просмотров)

Последний раз редактировалось Sasha_Smirnov; 30.11.2012 в 03:58. Причина: :,
Sasha_Smirnov вне форума Ответить с цитированием
Старый 29.11.2012, 10:28   #7
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
по-моему просто непедагогично.
не буду спорить, это так. Зато максимально просто и удобно!
Serge_Bliznykov вне форума Ответить с цитированием
Старый 29.11.2012, 10:42   #8
Mad_Cat
Made In USSR!
Старожил
 
Аватар для Mad_Cat
 
Регистрация: 01.09.2010
Сообщений: 3,657
По умолчанию

Цитата:
имеются все наминалы(0,01 до 5000)
Цитата:
выдаются только рубли
Зачем тогда Банкомат копейками грузили?
и если все номиналы имеются то сумму <= 5000 выдать одной купюрой?
та легко
код паскаль
Код:
K=trunc(rub) div 5000;
if rub - 5000*K>0 then k:=k+1;
"...В жизни я встречал друзей и врагов.В жизни много всего перевидал.Солнце тело мое жгло, ветер волосы трепал,но я смысла жизни так и не узнал..."
(c) Юрий Клинских aka "Хой"

Последний раз редактировалось Mad_Cat; 29.11.2012 в 10:45.
Mad_Cat вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Нужен скрипт Парсер выдачи яндекса webbaster Фриланс 1 29.06.2012 21:52
проблема в выдачи информации Makspane Общие вопросы Delphi 0 08.05.2012 19:02
bat-file для выдачи чисел от 1 до 256 fahitos456. JavaScript, Ajax 4 03.02.2012 16:54
Жадный алгоритм. Задача о размене денег. Multiman Помощь студентам 4 18.10.2010 13:15
Процедура выдачи из файла grafgrial Общие вопросы Delphi 4 16.05.2010 00:34