Zdjęcie przedstawia rzut z góry na rondo z pięcioma zjazdami.
I_P_W13_M04_Java Algorytmy z warunkami w języku Java
Źródło: Osman Rana, domena publiczna.
Polecenie 1
Napisz program, który wyliczania rabaty dla pewnego sklepu.
x jest dodatnia.
Podany kod:
1. public class Main {
2. public static void main (String [] args) {
3. int x = -3;
4.
5. // Tutaj dodaj kod. Program wypisuje "tak", jeżeli warunek zadania jest spełniony, lub "nie", w przeciwnym razie
6. // Do wypisywania, użyj funkcji: System.out.println();
7.
8. }
9. }Specyfikacja:
Dane:
liczbaSztuk– liczba sztuk produktu; liczba naturalnacenaTowaru– jednostkowa cena towaru; liczba naturalnarabatPowyzejSztuk– od ilu produktów naliczany jest rabat; liczba naturalnawysokoscRabatu– rabat liczony odcenyTowarudla każdej sztuki powyżejrabatPowyzejSztuk; liczba rzeczywista dodatnia
Wynik:
doZaplat– sumaryczny koszt zakupionego towaru; liczba rzeczywista
Polecenie 2
Przeanalizuj prezentację, w której opisano algorytm wyliczania rabatów dla pewnego sklepu. Na jej podstawie spróbuj wytłumaczyć zasadę działania instrukcji warunkowej dowolnej osobie z twojego otoczenia. Zwróć uwagę na posługiwanie się prawidłowym słownictwem.
liczbaSztuk = 10
cenaTowaru = 5
rabatPowyzejSztuk = 8
wysokoscRabatu = 0.10
Krok trzeci
Do obliczenia łącznej ceny zamówienia posłużymy się instrukcją warunkową.
if (liczbaSztuk > 100) {
// Musimy poinformować producenta i uzgodnić cenę towaru
} else if (liczbaSztuk > 8) {
doZaplaty = 8 * cenaTowaru + (liczbaSztuk - rabatPowyzejSztuk) * cenaTowaru * (1 - wysokoscRabatu);
} else {
doZaplaty = liczbaSztuk * cenaTowaru;
}
Krok czwarty
Dla ułatwienia analizy podstawmy zamiast nazw zmiennych konkretne dane:
if (liczbaSztuk > 100) {
// Musimy poinformować producenta i uzgodnić cenę towaru
} else if (10 > 8) {
doZaplaty = 8 * 5 + (10 - 8) * 5 * (1 - 0.10);
} else {
doZaplaty = 10 * 5;
}
Kro piąty
Dokonajmy obliczeń zgodnie z kolejnością wykonywania działań
if (liczbaSztuk > 100) {
// Musimy poinformować producenta i uzgodnić cenę towaru
} else if (10 > 8) {
doZaplaty = 49;
} else {
doZaplaty = 50;
}
Krok szósty
Gdy podstawiliśmy do zmiennych obliczone wartości, szukamy pierwszego warunku, który zwraca wartość true.
if (liczbaSztuk > 100) {
// Musimy poinformować producenta i uzgodnić cenę towaru
} else if (10 > 8) {
doZaplaty = 49;
} else {
doZaplaty = 50;
}
Widzimy, że pierwszym spełnionym warunkiem jest warunek: if (10 > 8).
Oznacza to, że musimy zapłacić 49 zł (czyli udało się nam zaoszczędzić 1 zł).
Krok siódmy
Dostaliśmy informację, że producent zamierza wprowadzić dodatkową zniżkę dla stałych klientów. Nas taka zniżka będzie obowiązywać. Zniżka wynosi 30% niezależnie od liczby zakupionych sztuk.
Krok ósmy
Aby rozwiązać ten problem, warto dodać zmienną staly_klient typu boolean, przechowującą jedynie informację true (prawda) albo false (fałsz):
boolean staly_klient = true;
Krok dziewiązty
Następnie będziemy musieli dodać instrukcję warunkową na samym początku, aby sprawdzić, czy jesteśmy stałymi klientami.
if (staly_klient == true) {
wysokoscRabatu = 0.3;
doZaplaty = (liczbaSztuk * cenaTowaru) * (1 - wysokoscRabatu);
} else {
if (liczbaSztuk > 100) {
// Musimy poinformować producenta i uzgodnić cenę towaru
} else if (liczbaSztuk > 8) {
doZaplaty = 8 * cenaTowaru + (liczbaSztuk - rabatPowyzejSztuk) * cenaTowaru * (1 - wysokoscRabatu);
} else {
doZaplaty = iloscSztuk * cenaTowaru;
}
}
Zastosowaliśmy instrukcje warunkowe wewnątrz instrukcji else (w przeciwnym razie). Oznacza to, że mamy możliwość zagnieżdżania instrukcji logicznych. Źródło: Contentplus.pl Sp. z o.o., licencja: CC BY-SA 3.0.