Zdefiniuj funkcję zachlanneWydawanieReszty(), która dla reszty resztaDoWydania obliczy liczbę nominałów użytych do jej wydania. Dostępne nominały zapisane są w tablicach zloteNominaly, groszeNominaly. Nominały z tablicy groszeNominaly mają posłużyć do wydania reszty po przecinku. Przetestuj swój program dla następujących danych wejściowych:
zloteNominaly – tablica liczb naturalnych zawierająca posortowany malejąco zbiór nominałów; nominały z tej tablicy powinny posłużyć do wydania całkowitej części reszty resztaDoWydania
groszeNominaly – tablica liczb naturalnych zawierająca posortowany malejąco zbiór nominałów; nominały z tej tablicy powinny posłużyć do wydania rzeczywistej części reszty resztaDoWydania
resztaDoWydania - liczba rzeczywista; kwota do wydania
Wynik:
minimalna liczba nominałów, jakich należy użyć do wydania reszty
Wynik dla podanych danych:
Linia 1. Liczba nominalow uzytych do wydania reszty 77 kropka 99 dwukropek 10.
R1LProooyFpgc
Linia 1. public class Main otwórz nawias klamrowy.
Linia 2. public static int zachlanneWydawanieReszty otwórz nawias okrągły double resztaDoWydania przecinek int otwórz nawias kwadratowy zamknij nawias kwadratowy zloteNominaly przecinek int liczbaZlote przecinek int otwórz nawias kwadratowy zamknij nawias kwadratowy groszeNominaly przecinek int liczbaGrosze zamknij nawias okrągły otwórz nawias klamrowy.
Linia 3. int resztaZlote znak równości otwórz nawias okrągły int zamknij nawias okrągły resztaDoWydania średnik prawy ukośnik prawy ukośnik reszta bez groszy.
Linia 4. int resztaGrosze średnik.
Linia 5. resztaDoWydania znak równości resztaDoWydania asterysk 1000 średnik prawy ukośnik prawy ukośnik wymnażamy liczbę razy 1000 przecinek aby osiągnąć precyzję do 2 miejsc po przecinku.
Linia 6. resztaGrosze znak równości otwórz nawias okrągły int zamknij nawias okrągły resztaDoWydania średnik.
Linia 7. resztaGrosze znak równości resztaGrosze prawy ukośnik 10 średnik prawy ukośnik prawy ukośnik usunięcie 0 z końca.
Linia 8. resztaGrosze znak równości resztaGrosze procent 100 średnik prawy ukośnik prawy ukośnik pozostawienie 2 ostatnich cyfr średnik liczby groszy.
Linia 9. int wynik znak równości 0 średnik.
Linia 11. for otwórz nawias okrągły int i znak równości 0 średnik i otwórz nawias ostrokątny liczbaZlote średnik i plus plus zamknij nawias okrągły otwórz nawias klamrowy prawy ukośnik prawy ukośnik wydanie reszty w złotówkach.
Linia 12. while otwórz nawias okrągły resztaZlote minus zloteNominaly otwórz nawias kwadratowy i zamknij nawias kwadratowy zamknij nawias ostrokątny znak równości 0 zamknij nawias okrągły otwórz nawias klamrowy.
Linia 13. wynik znak równości wynik plus 1 średnik.
Linia 14. resztaZlote znak równości resztaZlote minus zloteNominaly otwórz nawias kwadratowy i zamknij nawias kwadratowy średnik.
Linia 15. zamknij nawias klamrowy.
Linia 16. zamknij nawias klamrowy.
Linia 18. for otwórz nawias okrągły int i znak równości 0 średnik i otwórz nawias ostrokątny liczbaGrosze średnik i plus plus zamknij nawias okrągły otwórz nawias klamrowy prawy ukośnik prawy ukośnik wydanie reszty w groszach.
Linia 19. while otwórz nawias okrągły resztaGrosze minus groszeNominaly otwórz nawias kwadratowy i zamknij nawias kwadratowy zamknij nawias ostrokątny znak równości 0 zamknij nawias okrągły otwórz nawias klamrowy.
Linia 20. wynik znak równości wynik plus 1 średnik.
Linia 21. resztaGrosze znak równości resztaGrosze minus groszeNominaly otwórz nawias kwadratowy i zamknij nawias kwadratowy średnik.
Linia 22. zamknij nawias klamrowy.
Linia 23. zamknij nawias klamrowy.
Linia 25. return wynik średnik.
Linia 26. zamknij nawias klamrowy.
Linia 28. public static void main otwórz nawias okrągły String otwórz nawias kwadratowy zamknij nawias kwadratowy args zamknij nawias okrągły otwórz nawias klamrowy.
Linia 29. int otwórz nawias kwadratowy zamknij nawias kwadratowy zloteNominaly znak równości otwórz nawias klamrowy 500 przecinek 200 przecinek 100 przecinek 50 przecinek 20 przecinek 10 przecinek 5 przecinek 2 przecinek 1 zamknij nawias klamrowy średnik.
Linia 30. int otwórz nawias kwadratowy zamknij nawias kwadratowy groszeNominaly znak równości otwórz nawias klamrowy 50 przecinek 20 przecinek 10 przecinek 5 przecinek 2 przecinek 1 zamknij nawias klamrowy średnik.
Linia 31. int liczbaZlote znak równości zloteNominaly kropka length średnik.
Linia 32. int liczbaGrosze znak równości groszeNominaly kropka length średnik.
Linia 34. double resztaDoWydania znak równości 77 kropka 99 średnik.
Linia 36. System kropka out kropka print otwórz nawias okrągły cudzysłów Liczba nominalow uzytych do wydania reszty cudzysłów zamknij nawias okrągły średnik.
Linia 37. System kropka out kropka print otwórz nawias okrągły resztaDoWydania plus cudzysłów dwukropek cudzysłów zamknij nawias okrągły średnik.
Linia 38. System kropka out kropka println otwórz nawias okrągły zachlanneWydawanieReszty otwórz nawias okrągły resztaDoWydania przecinek zloteNominaly przecinek liczbaZlote przecinek groszeNominaly przecinek liczbaGrosze zamknij nawias okrągły zamknij nawias okrągły średnik.
Linia 39. zamknij nawias klamrowy.
Linia 40. zamknij nawias klamrowy.
31
Ćwiczenie 6
Zdefiniuj metodę zachlanneWydawanieReszty(), która dla każdej z reszt w tablicy resztyDoWydania obliczy, ile razy do jej wydania został użyty każdy z nominałów z tablicy nominaly. Przetestuj swój program dla następujących danych wejściowych:
nominaly = { 50, 20, 10, 5, 2, 1 }
resztyDoWydania = { 234, 784, 129 }
Specyfikacja:
Dane:
nominaly – tablica liczb naturalnych; zawierająca posortowany malejąco zbiór nominałów
resztyDoWydania – tablica liczb naturalnych; zawierająca reszty do wydania
Wynik:
liczba nominałów wykorzystanych do wydania reszty
Wynik dla podanych danych:
Linia 1. Reszta do wydania dwukropek 234 kropka Liczba użytych w sumie banknotów i monet dwukropek 8.
Linia 2. Nominal 50 dwukropek 4.
Linia 3. Nominal 20 dwukropek 1.
Linia 4. Nominal 10 dwukropek 1.
Linia 5. Nominal 5 dwukropek 0.
Linia 6. Nominal 2 dwukropek 2.
Linia 7. Nominal 1 dwukropek 0.
Linia 8. Reszta do wydania dwukropek 784 kropka Liczba użytych w sumie banknotów i monet dwukropek 19.
Linia 9. Nominal 50 dwukropek 15.
Linia 10. Nominal 20 dwukropek 1.
Linia 11. Nominal 10 dwukropek 1.
Linia 12. Nominal 5 dwukropek 0.
Linia 13. Nominal 2 dwukropek 2.
Linia 14. Nominal 1 dwukropek 0.
Linia 15. Reszta do wydania dwukropek 129 kropka Liczba użytych w sumie banknotów i monet dwukropek 6.
Linia 16. Nominal 50 dwukropek 2.
Linia 17. Nominal 20 dwukropek 1.
Linia 18. Nominal 10 dwukropek 0.
Linia 19. Nominal 5 dwukropek 1.
Linia 20. Nominal 2 dwukropek 2.
Linia 21. Nominal 1 dwukropek 0.
R1604iv7Jurrz
Linia 1. public class ResztaWydawanie otwórz nawias klamrowy.
Linia 2. public static void zachlanneWydawanieReszty otwórz nawias okrągły int otwórz nawias kwadratowy zamknij nawias kwadratowy resztyDoWydania przecinek int otwórz nawias kwadratowy zamknij nawias kwadratowy nominaly przecinek int liczbaNominalow przecinek int liczbaReszt przecinek int otwórz nawias kwadratowy zamknij nawias kwadratowy otwórz nawias kwadratowy zamknij nawias kwadratowy ileRazyUzyte zamknij nawias okrągły otwórz nawias klamrowy.
Linia 3. for otwórz nawias okrągły int i znak równości 0 średnik i otwórz nawias ostrokątny liczbaReszt średnik i plus plus zamknij nawias okrągły otwórz nawias klamrowy.
Linia 4. int resztaDoWydania znak równości resztyDoWydania otwórz nawias kwadratowy i zamknij nawias kwadratowy średnik.
Linia 5. for otwórz nawias okrągły int j znak równości 0 średnik j otwórz nawias ostrokątny liczbaNominalow średnik j plus plus zamknij nawias okrągły otwórz nawias klamrowy.
Linia 6. ileRazyUzyte otwórz nawias kwadratowy i zamknij nawias kwadratowy otwórz nawias kwadratowy j zamknij nawias kwadratowy znak równości resztaDoWydania prawy ukośnik nominaly otwórz nawias kwadratowy j zamknij nawias kwadratowy średnik.
Linia 7. resztaDoWydania znak równości resztaDoWydania minus ileRazyUzyte otwórz nawias kwadratowy i zamknij nawias kwadratowy otwórz nawias kwadratowy j zamknij nawias kwadratowy asterysk nominaly otwórz nawias kwadratowy j zamknij nawias kwadratowy średnik.
Linia 8. zamknij nawias klamrowy.
Linia 9. zamknij nawias klamrowy.
Linia 10. zamknij nawias klamrowy.
Linia 12. public static void main otwórz nawias okrągły String otwórz nawias kwadratowy zamknij nawias kwadratowy args zamknij nawias okrągły otwórz nawias klamrowy.
Linia 13. int otwórz nawias kwadratowy zamknij nawias kwadratowy nominaly znak równości otwórz nawias klamrowy 50 przecinek 20 przecinek 10 przecinek 5 przecinek 2 przecinek 1 zamknij nawias klamrowy średnik.
Linia 14. int otwórz nawias kwadratowy zamknij nawias kwadratowy resztyDoWydania znak równości otwórz nawias klamrowy 234 przecinek 784 przecinek 129 zamknij nawias klamrowy średnik.
Linia 16. int liczbaNominalow znak równości nominaly kropka length średnik.
Linia 17. int liczbaReszt znak równości resztyDoWydania kropka length średnik.
Linia 19. int otwórz nawias kwadratowy zamknij nawias kwadratowy otwórz nawias kwadratowy zamknij nawias kwadratowy ileRazyUzyte znak równości new int otwórz nawias kwadratowy liczbaReszt zamknij nawias kwadratowy otwórz nawias kwadratowy liczbaNominalow zamknij nawias kwadratowy średnik.
Linia 21. zachlanneWydawanieReszty otwórz nawias okrągły resztyDoWydania przecinek nominaly przecinek liczbaNominalow przecinek liczbaReszt przecinek ileRazyUzyte zamknij nawias okrągły średnik.
Linia 23. for otwórz nawias okrągły int i znak równości 0 średnik i otwórz nawias ostrokątny liczbaReszt średnik i plus plus zamknij nawias okrągły otwórz nawias klamrowy.
Linia 24. int k znak równości 0 średnik.
Linia 25. for otwórz nawias okrągły int j znak równości 0 średnik j otwórz nawias ostrokątny liczbaNominalow średnik j plus plus zamknij nawias okrągły otwórz nawias klamrowy.
Linia 26. k plus znak równości ileRazyUzyte otwórz nawias kwadratowy i zamknij nawias kwadratowy otwórz nawias kwadratowy j zamknij nawias kwadratowy średnik.
Linia 27. zamknij nawias klamrowy.
Linia 28. System kropka out kropka println otwórz nawias okrągły cudzysłów Reszta do wydania dwukropek cudzysłów plus resztyDoWydania otwórz nawias kwadratowy i zamknij nawias kwadratowy plus cudzysłów kropka Liczba użytych w sumie banknotów i monet dwukropek cudzysłów plus k zamknij nawias okrągły średnik.
Linia 30. for otwórz nawias okrągły int j znak równości 0 średnik j otwórz nawias ostrokątny liczbaNominalow średnik j plus plus zamknij nawias okrągły otwórz nawias klamrowy.
Linia 31. System kropka out kropka println otwórz nawias okrągły cudzysłów Nominal cudzysłów plus nominaly otwórz nawias kwadratowy j zamknij nawias kwadratowy plus cudzysłów dwukropek cudzysłów plus ileRazyUzyte otwórz nawias kwadratowy i zamknij nawias kwadratowy otwórz nawias kwadratowy j zamknij nawias kwadratowy zamknij nawias okrągły średnik.
Linia 32. zamknij nawias klamrowy.
Linia 33. zamknij nawias klamrowy.
Linia 34. zamknij nawias klamrowy.
Linia 35. zamknij nawias klamrowy.
31
Ćwiczenie 7
Zdefiniuj metodę zachlanneWydawanieReszty(), która dla każdej z reszt w tablicy resztyDoWydania sprawdzi, czy jest możliwe wydanie jej za pomocą nominałów z tablicy nominaly. Przetestuj swój program dla następujących danych wejściowych:
nominaly = { 9, 8, 7, 6}
resztyDoWydania = { 957, 9999, 2436, 5717, 13 }
Specyfikacja:
Dane:
nominaly – tablica liczb naturalnych; zawierająca posortowany malejąco zbiór nominałów
resztyDoWydania - tablica liczb naturalnych; zawierająca reszty do wydania
Wynik:
komunikat informujący, czy dana reszta może bądź nie może zostać wydana podanymi nominałami
Wynik dla podanych danych:
Linia 1. Reszta 957 nie moze zostac wydana nominalami 9 8 7 6.
Linia 2. Reszta 9999 moze zostac wydana nominalami 9 8 7 6.
Linia 3. Reszta 2436 moze zostac wydana nominalami 9 8 7 6.
Linia 4. Reszta 5717 nie moze zostac wydana nominalami 9 8 7 6.
Linia 5. Reszta 13 nie moze zostac wydana nominalami 9 8 7 6.
RZ1ZKDdGDV5B3
Linia 1. public class Main otwórz nawias klamrowy.
Linia 2. public static boolean zachlanneWydawanieReszty otwórz nawias okrągły int resztaDoWydania przecinek int otwórz nawias kwadratowy zamknij nawias kwadratowy nominaly zamknij nawias okrągły otwórz nawias klamrowy.
Linia 3. for otwórz nawias okrągły int i znak równości 0 średnik i otwórz nawias ostrokątny nominaly kropka length średnik i plus plus zamknij nawias okrągły otwórz nawias klamrowy.
Linia 4. int k znak równości resztaDoWydania prawy ukośnik nominaly otwórz nawias kwadratowy i zamknij nawias kwadratowy średnik.
Linia 5. resztaDoWydania znak równości resztaDoWydania minus k asterysk nominaly otwórz nawias kwadratowy i zamknij nawias kwadratowy średnik.
Linia 6. zamknij nawias klamrowy.
Linia 8. return resztaDoWydania znak równości znak równości 0 średnik.
Linia 9. zamknij nawias klamrowy.
Linia 11. public static void main otwórz nawias okrągły String otwórz nawias kwadratowy zamknij nawias kwadratowy args zamknij nawias okrągły otwórz nawias klamrowy.
Linia 12. int otwórz nawias kwadratowy zamknij nawias kwadratowy nominaly znak równości otwórz nawias klamrowy 9 przecinek 8 przecinek 7 przecinek 6 zamknij nawias klamrowy średnik.
Linia 13. int otwórz nawias kwadratowy zamknij nawias kwadratowy resztaDoWydanias znak równości otwórz nawias klamrowy 957 przecinek 9999 przecinek 2436 przecinek 5717 przecinek 13 zamknij nawias klamrowy średnik.
Linia 15. for otwórz nawias okrągły int resztaDoWydania dwukropek resztaDoWydanias zamknij nawias okrągły otwórz nawias klamrowy.
Linia 16. System kropka out kropka print otwórz nawias okrągły cudzysłów Reszta cudzysłów plus resztaDoWydania plus cudzysłów cudzysłów zamknij nawias okrągły średnik.
Linia 18. if otwórz nawias okrągły wykrzyknik zachlanneWydawanieReszty otwórz nawias okrągły resztaDoWydania przecinek nominaly zamknij nawias okrągły zamknij nawias okrągły.
Linia 19. System kropka out kropka print otwórz nawias okrągły cudzysłów nie cudzysłów zamknij nawias okrągły średnik.
Linia 21. System kropka out kropka print otwórz nawias okrągły cudzysłów może zostac wydana nominalami lewy ukośnik t cudzysłów zamknij nawias okrągły średnik.
Linia 23. for otwórz nawias okrągły int nominal dwukropek nominaly zamknij nawias okrągły otwórz nawias klamrowy.
Linia 24. System kropka out kropka print otwórz nawias okrągły nominal plus cudzysłów cudzysłów zamknij nawias okrągły średnik.
Linia 25. zamknij nawias klamrowy.
Linia 27. System kropka out kropka println otwórz nawias okrągły zamknij nawias okrągły średnik.
Linia 28. zamknij nawias klamrowy.
Linia 29. zamknij nawias klamrowy.
Linia 30. zamknij nawias klamrowy.