Problem kasjera - kasjer ma wydać resztę, przy użyciu minimalnej liczby monet. Rozwiązanie oparte na algorytmie zachłannym, czyli wykonuje zawsze działanie, które wydaje się w danej chwili najkorzystniejsze. Najpierw używamy monety o największej dopuszczalnej wartości, redukując w ten sposób problem do wypłacenia mniejszej kwoty.
Algorytm ten można przedstawiać na wiele sposobów, oto kilka z nich:
Sposób 1. Opis słowny algorytmu wydawania reszty.
Dane: Kwota pieniędzy do wydania, nominały banknotów i bilonu uporządkowane malejąco
Wyniki: Ilość poszczególnych nominałów banknotów i bilonu
Krok 1: Ustalenie wartości początkowych
Krok 2: Sprawdzamy, ile razy najwyższy nominał mieści się w kwocie do wydania
Krok 3: Obliczamy resztę do wydania: poprzednia kwota - obliczona ilość * nominał
Krok 4: Przechodzimy do niższego nominału
Krok 5: Jeśli reszta do wydania = 0 [stop] w przeciwnym razie powtarzamy kroki 2 - 4
Sposób 2. Schematy blokowe.
lub
Jak widać, schemat drugi jest nieco bardziej skomplikowany od pierwszego, jednakże oba przedstawiają to samo.
Sposób 3. Rozwiązanie w Excelu.
Sposób 4. VBA
Po kliknięciu w przycisk „Wydanie reszty” pojawia się nam okno, w którym wpisujemy kwotę reszty do wydania. Po kliknięciu „ok” ukazuje się nam …
Sposób 5. Turbo Pascal
Turbo Pascal to jeden z podstawowych programów do pisania innych programów, obecnie jest rzadko używany – został wyparty przez inne, jednakże dzięki jego prostocie możemy z łatwością użyć go do rozwiązania problemu kasjera.
Sposób 6. C++
Tak jak wyżej.
Brak komentarzy:
Prześlij komentarz