Commit 87e30fba by Patryk Czarnik

Zadania if

parent 59be7d4f
package p04_if;
import java.util.Scanner;
/* Program ma odczytać 3 liczby: wymiary bagażu w cm
* a następnie ocenić, czy bagaż spełnia normę co do rozmiaru.
*
* Żaden wymiar nie może przekraczać 50 cm , a objętość nie może przekracać 50 tys cm³
*/
// W tej wersji:
// - wszystkie warunki sprawdzamy na raz - nie informujemy konkretnie dlaczego bagaż odrzucony
// - sprawdzamy warunek pozytywny - "czy jest dobrze?"
public class Bagaz1 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("Podaj wymiary bagażu.");
System.out.print("długość: ");
double a = scanner.nextDouble();
System.out.print("szerokość: ");
double b = scanner.nextDouble();
System.out.print("wysokość: ");
double c = scanner.nextDouble();
double objetosc = a*b*c;
if(a <= 50 && b <= 50 && c <= 50 && objetosc <= 50_000) {
System.out.println("Bagaż spełnia normę");
} else {
System.out.println("Bagaż jest zbyt duży");
}
}
}
package p04_if;
import java.util.Scanner;
// W tej wersji:
// - próbuję rozróżnić przyczyny odrzucenia bagażu i wypisać odp. informację,
// - ale robię to w oparciu o warunek pozytywny
// → wynikiem jest program o "schodkowej" strukturze - zagnieżdżone ify
// "else jest daleko od swojego ifa" co zmienjsza czytelność
public class Bagaz2 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("Podaj wymiary bagażu.");
System.out.print("długość: ");
double a = scanner.nextDouble();
System.out.print("szerokość: ");
double b = scanner.nextDouble();
System.out.print("wysokość: ");
double c = scanner.nextDouble();
double objetosc = a*b*c;
if(a <= 50) {
if (b <= 50) {
if (c <= 50) {
if (objetosc <= 50_000) {
System.out.println("Bagaż spełnia normę");
} else {
System.out.println("Objętość jest zbyt duża");
}
} else {
System.out.println("Wysokość jest zbyt duża");
}
} else {
System.out.println("Szerokość jest zbyt duża");
}
} else {
System.out.println("Długość jest zbyt duża");
}
}
}
package p04_if;
import java.util.Scanner;
// W tej wersji:
// - sprawdzam warunek negatywny - "czy jest źle"
// - oddzielnie sprawdzam warunek długości bokóœ, a oddzielnie warunek objętości - taki kompromis...
public class Bagaz3 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("Podaj wymiary bagażu.");
System.out.print("długość: ");
double a = scanner.nextDouble();
System.out.print("szerokość: ");
double b = scanner.nextDouble();
System.out.print("wysokość: ");
double c = scanner.nextDouble();
double objetosc = a*b*c;
if(a > 50 || b > 50 || c > 50) {
System.out.println("Bagaż odrzucony z powodu zbyt długiego boku");
} else if (objetosc > 50_000) {
System.out.println("Bagaż odrzucony z powodu zbyt dużej objętości");
} else {
System.out.println("Bagaż spełnia normę");
}
}
}
package p04_if;
import java.util.Scanner;
// W tej wersji:
// - sprawdzam warunek negatywny - "czy jest źle"
// - oddzielnie sprawdzam każdy warunek, ale w tej wersji wyjdzie t oznacznie lepiej niż w nr 2
// dzięki temu, że warunki są negatywne i gdy zobaczę pierwszy problem, to razu wiem, że jest źle
// - wyświetlana jest informacja tylko o pierwszym znalezionym problemie, nawet jeśli jest ich kilka
public class Bagaz4 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("Podaj wymiary bagażu.");
System.out.print("długość: ");
double a = scanner.nextDouble();
System.out.print("szerokość: ");
double b = scanner.nextDouble();
System.out.print("wysokość: ");
double c = scanner.nextDouble();
double objetosc = a*b*c;
if(a > 50) {
System.out.println("Bagaż odrzucony z powodu długości");
} else if (b > 50) {
System.out.println("Bagaż odrzucony z powodu szerokości");
} else if (c > 50) {
System.out.println("Bagaż odrzucony z powodu wysokości");
} else if (objetosc > 50_000) {
System.out.println("Bagaż odrzucony z powodu zbyt dużej objętości");
} else {
System.out.println("Bagaż spełnia normę");
}
}
}
package p04_if;
import java.util.Scanner;
// W tej wersji:
// - wypisujemy wszystkie informacje o błędach, jakie są znajdowane
// - ale uzyskujemy też jednoznaczną informację czy bagaż jest zaakceptowany
// - wykorzystujemy zmienną logiczną
public class Bagaz5 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("Podaj wymiary bagażu.");
System.out.print("długość: ");
double a = scanner.nextDouble();
System.out.print("szerokość: ");
double b = scanner.nextDouble();
System.out.print("wysokość: ");
double c = scanner.nextDouble();
double objetosc = a*b*c;
boolean bylyBledy = false;
if(a > 50) {
System.out.println("Bagaż odrzucony z powodu długości");
bylyBledy = true;
}
if(b > 50) {
System.out.println("Bagaż odrzucony z powodu szerokości");
bylyBledy = true;
}
if(c > 50) {
System.out.println("Bagaż odrzucony z powodu wysokości");
bylyBledy = true;
}
if(objetosc > 50_000) {
System.out.println("Bagaż odrzucony z powodu zbyt dużej objętości");
bylyBledy = true;
}
if(!bylyBledy) {
System.out.println("Bagaż spełnia normę");
}
}
}
package p04_if;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
// W tej wersji:
// - wypisujemy wszystkie informacje o błędach, jakie są znajdowane
// - ale uzyskujemy też jednoznaczną informację czy bagaż jest zaakceptowany
// - robimy to budując listę błędów
public class Bagaz6 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("Podaj wymiary bagażu.");
System.out.print("długość: ");
double a = scanner.nextDouble();
System.out.print("szerokość: ");
double b = scanner.nextDouble();
System.out.print("wysokość: ");
double c = scanner.nextDouble();
double objetosc = a*b*c;
List<String> bledy = new ArrayList<>();
if(a > 50) {
bledy.add("Zbyt duża długość");
}
if(b > 50) {
bledy.add("Zbyt duża szerokość");
}
if(c > 50) {
bledy.add("Zbyt duża wysokość");
}
if(objetosc > 50_000) {
bledy.add("Zbyt duża objętość");
}
if(bledy.isEmpty()) {
System.out.println("Bagaż spełnia normę");
} else {
System.out.println("Bagaż odrzucony. Zidentyfikowane problemy:");
for(String blad : bledy) {
System.out.println(" * " + blad);
}
}
}
}
package p04_if;
import java.util.Scanner;
public class SprawdzWiek0 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("Podaj wiek: ");
int wiek = scanner.nextInt();
// zerowe ;) podejście - w każdym ifie opisujemy cały warunek (z obu stron):
if(wiek >= 0 && wiek <= 3) {
System.out.println("niemowlak");
}
if(wiek >= 4 && wiek <= 6) {
System.out.println("przedszkole");
}
if(wiek >= 7 && wiek <= 18) {
System.out.println("szkoła");
}
if(wiek >= 18 && wiek <= 64) {
System.out.println("dorosły");
}
if(wiek >= 65) {
System.out.println("emeryt");
}
}
}
package p04_if;
import java.util.Scanner;
public class SprawdzWiek1 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("Podaj wiek: ");
int wiek = scanner.nextInt();
// pierwsze podejście - warunek pisany obustronnie, ale powiazanie za pomocą else-if
if(wiek >= 0 && wiek < 4) {
System.out.println("niemowlak");
} else if(wiek >= 4 && wiek < 7) {
System.out.println("przedszkole");
} else if(wiek >= 7 && wiek < 18) {
System.out.println("szkoła");
} else if(wiek >= 18 && wiek < 65) {
System.out.println("dorosły");
} else if(wiek >= 65) {
System.out.println("emeryt");
}
}
}
package p04_if;
import java.util.Scanner;
public class SprawdzWiek2 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("Podaj wiek: ");
int wiek = scanner.nextInt();
// drugie podejście - nie sprawdzamy ponownie warunków, które zostały już sprawdzone w poprzednich ifach
if(wiek < 0) {
System.out.println("Nie możesz mieć mniej niz zero!");
} else if(wiek < 4) {
System.out.println("niemowlak");
} else if(wiek < 7) {
System.out.println("przedszkole");
} else if(wiek < 18) {
System.out.println("szkoła");
} else if(wiek < 65) {
System.out.println("dorosły");
} else {
System.out.println("emeryt");
}
}
}
package p04_if;
import java.util.Random;
import java.util.Scanner;
public class WynikMnozenia_v0 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
Random random = new Random();
int x = random.nextInt(20) + 1; // liczba z zakresu od 1 do 20 włącznie
int y = random.nextInt(20) + 1;
int wynik = x*y;
System.out.println("Ile to jest " + x + " razy " + y + " ? ");
int odp = scanner.nextInt();
if(odp == wynik) {
System.out.println("Poprawna odpowiedź");
} else {
System.out.println("Błędna odpowiedź");
System.out.println("Poprawną odpwoiedzią jest: " + wynik);
}
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment