Wątek przeniesiony 2022-04-25 02:15 z C# i .NET przez furious programming.

Aplikacja okienkowa bankomat. Jakiego algorytmu użyć, aby wypłacał konkretne nominały banknotów "równomiernie" ?

0

Niestety szukając odpowiedzi na to pytanie w internecie natknąłem się tylko na algorytmy wydawania reszty w sposób : jak najmniej banknotów / monet.

Mój problem jest z lekka inny, mam bankomat który ma w sobie ileś sztuk każdego z banknotów. Żaden nominał nie ma być zbyt szybko wycyckany do zera (wtedy, gdy bez problemu i z dużym zapasem mógłby wypłacić innymi). Myślę że opisałem swój problem na tyle dobrze że każdy rozumie o co mi chodzi.

Chciałbym tylko jeszcze dodać że jestem nowicjuszem w programowaniu, dopiero zacząłem naukę programowania obiektowego i robię tylko naprawde proste aplikacje okienkowe w windows forms w visualu.
Dziękuję za wszelkie nakierowania na rozwiązanie problemu

0

Nie sądzę, aby w/w potzrebny algorytm był skatalogowany i miał jakaś nazwę *)
Trzeba go napisać, zaczynajac od struktury danych, dynamicznie oceniać zużycie / zapas itd

*) inaczej od klasycznego algorytmu przygotowania nominałów pod wypłatę, to klasyka, co więcej w czasach "dawnych" z dominacją gotówki miał wiodące znaczenie

1

Dziwny problem. Bankomat zwykle wyplaca walute, ktorej oczekujesz (jesli oferuje opcje wyboru walut). Nie przedstawiles zadnych zalozen typu czy wszystkich walut jest po rowno, czy mozna wyplacac tylko jedna walute, jak ma wygladac przelicznik walut? 100$ to nie to samo co 100zl czy 100£. Wyplacajacy ma skupic sie tylko na nominale typu chce 300 (wodolnej waluty) czy jednak na przelozeniu jeszcze kursu tych walut aby otrzymac konkretna kwote itd.

pawellosu2 napisał(a):

Chciałbym tylko jeszcze dodać że jestem nowicjuszem w programowaniu

Problem o ktory pytasz ma niewiele wspolnego z programowaniem. Bardziej z logika.

5

pytania pomocnicze

  1. masz wypłacić 550zł, bankomat ma do dyspozycji: 10x200zł, 10x100zł, 10x50zł, 10x20zł, 10x10zł - jakiego oczekujesz wyniku?
  2. masz wypłacić 550zł, bankomat ma do dyspozycji: 10x200zł, 20x100zł, 30x50zł, 40x20zł, 50x10zł - jakiego oczekujesz wyniku?
  3. masz wypłacić 550zł, bankomat ma do dyspozycji: 50x200zł, 40x100zł, 30x50zł, 20x20zł, 10x10zł - jakiego oczekujesz wyniku?
  4. masz wypłacić 550zł, bankomat ma do dyspozycji: 10x200zł, 50x100zł, 20x50zł, 40x20zł, 30x10zł - jakiego oczekujesz wyniku?
  5. masz wypłacić 550zł, bankomat ma do dyspozycji: 30x200zł, 40x100zł, 20x50zł, 50x20zł, 10x10zł - jakiego oczekujesz wyniku?
  6. masz wypłacić 550zł, bankomat ma do dyspozycji: 2x200zł, 2x100zł, 2x50zł, 2x20zł, 2x10zł - jakiego oczekujesz wyniku?

Jak sobie sam odpowiesz na te pytania to będziesz wiedział jak ma wyglądać algorytm. To jest właśnie sedno tego zadania - wymyślić ALGORYTM (tu nawet nie trzeba umieć nic programować) jakie wydać nominały. Im więcej takich przypadków weźmiesz pod uwagę tym "lepszy" będzie Twój algorytm.

PS. to będzie bardzo prosta aplikacja okienkowa, ba nie musi nawet być okienkowa - równie dobrze może być konsolowa.

1 użytkowników online, w tym zalogowanych: 0, gości: 1