Commit 04563ce6 by Patryk Czarnik

Przykład Bagaż

parent b8862734
package p04_if;
import java.util.Scanner;
/* Program czyta od użytkownika 3 liczby: wymiary walizki w cm
* i sprawdza czy walizka mieści się w limitach wymiaru.
* Warunki:
* - żaden wymiar nie może przekraczać 50 cm
* - objętość nie może przekraczać 50_000 cm³
*
* W tej wersji:
* - wszystkie warunki sprawdza są w jednym if, program nie informuje konkretnie dlaczego odrzucił
* - sprawdzamy warunek "pozytywny", czyli piszemy kiedy jest dobrze; spójnikiem jest &&
*/
public class Bagaz1 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("Podaj trzy liczby - wymiary walizki w cm:");
double a = scanner.nextDouble();
double b = scanner.nextDouble();
double c = scanner.nextDouble();
if(a <= 50 && b <= 50 && c <= 50 && a*b*c <= 50_000) {
System.out.println("Bagaż mieści się w wymaganiach");
} else {
System.out.println("Bagaż za duży");
}
}
}
package p04_if;
import java.util.Scanner;
/* W tej wersji:
* - wszystkie warunki sprawdza są w jednym if, program nie informuje konkretnie dlaczego odrzucił
* - sprawdzamy warunek "negatywny", czyli piszemy kiedy jest źle; spójnikiem jest ||
*/
public class Bagaz2 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("Podaj trzy liczby - wymiary walizki w cm:");
double a = scanner.nextDouble();
double b = scanner.nextDouble();
double c = scanner.nextDouble();
if(a > 50 || b > 50 || c > 50 || a*b*c > 50_000) {
System.out.println("Bagaż za duży");
} else {
System.out.println("Bagaż mieści się w wymaganiach");
}
}
}
package p04_if;
import java.util.Scanner;
/* W tej wersji:
* - rozbijamy warunki do oddzielnych if-ów, aby program napisał dlaczego bagaż został odrzucony
* - ważne jednak, aby program ostatecznie potwierdził akceptację bagażu, lub napisał jednoznacznie, że odrzuca
* - program wypisuje tylko pierwszą przyczynę odrzucenia
* - sprawdzanie warunków pozytywnych prowadzi tutaj do powstania kodu wielokrotnie zagnieżdżonego
* (if w ifie i kolejnym ifie...)
* "else jest daleko od swojego if-a"
*/
public class Bagaz3 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("Podaj trzy liczby - wymiary walizki w cm:");
double a = scanner.nextDouble();
double b = scanner.nextDouble();
double c = scanner.nextDouble();
double obj = a * b * c;
if(a <= 50) {
if(b <= 50) {
if(c <= 50) {
if(obj <= 50_000) {
System.out.println("Bagaż mieści się w wymaganiach");
} else {
System.out.println("Zbyt duża objętość");
}
} else {
System.out.println("Zbyt duża wysokość");
}
} else {
System.out.println("Zbyt duża szerokość");
}
} else {
System.out.println("Zbyt duża długość");
}
}
}
package p04_if;
import java.util.Scanner;
/* W tej wersji:
* - rozbijamy warunki do oddzielnych if-ów, aby program napisał dlaczego bagaż został odrzucony
* - program wypisuje tylko pierwszą przyczynę odrzucenia
* - dzięki sprawdzaniu warunków negatywnych, możemy zastosować schemat else-if
* i napisać to na zasadzie: sprawdź czy jest źle z 1. powodu, czy z 2. powodu itd.
* a jeśli nie było żadnego problemu, to na samym końcu jest wykonana operacja w przypadku braku błędów
*/
public class Bagaz4 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("Podaj trzy liczby - wymiary walizki w cm:");
double a = scanner.nextDouble();
double b = scanner.nextDouble();
double c = scanner.nextDouble();
double obj = a * b * c;
if(a > 50) {
System.out.println("Zbyt duża długość");
} else if(b > 50) {
System.out.println("Zbyt duża szerokość");
} else if(c > 50) {
System.out.println("Zbyt duża wysokość");
} else if(obj > 50_000) {
System.out.println("Zbyt duża objętość");
} else {
System.out.println("Bagaż mieści się w wymaganiach");
}
}
}
package p04_if;
import java.util.Scanner;
/* W tej wersji:
* - jeśli wystepuje kilka błędów, to wypiszemy info o każdym z nich
* - dzięki zmiennej logicznej `bylyBledy` na końcu będziemy wiedzieć czy wystapił jakikolwiek błąd
*/
public class Bagaz5 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("Podaj trzy liczby - wymiary walizki w cm:");
double a = scanner.nextDouble();
double b = scanner.nextDouble();
double c = scanner.nextDouble();
double obj = a * b * c;
boolean bylyBledy = false;
if(a > 50) {
System.out.println("Zbyt duża długość");
bylyBledy = true;
}
if(b > 50) {
System.out.println("Zbyt duża szerokość");
bylyBledy = true;
}
if(c > 50) {
System.out.println("Zbyt duża wysokość");
bylyBledy = true;
}
if(obj > 50_000) {
System.out.println("Zbyt duża objętość");
bylyBledy = true;
}
if(bylyBledy) {
System.out.println("Bagaż odrzucony");
} else {
System.out.println("Bagaż mieści się w wymaganiach");
}
}
}
package p04_if;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
/* W tej wersji:
* - do listy zbieramy wszystkie informacje o napotkanych problemach
* - na końcu sprawdzamy czy w ogóle były błędy i jeśli tak, wypisujemy je na ekran
* Ten schemat przypomina technikę stosowaną w testach automatycznych o nazwie "error log".
*/
public class Bagaz6 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("Podaj trzy liczby - wymiary walizki w cm:");
double a = scanner.nextDouble();
double b = scanner.nextDouble();
double c = scanner.nextDouble();
double obj = a * b * c;
List<String> listaBledow = new ArrayList<>();
if(a > 50) {
listaBledow.add("Zbyt duża długość");
}
if(b > 50) {
listaBledow.add("Zbyt duża szerokość");
}
if(c > 50) {
listaBledow.add("Zbyt duża wysokość");
}
if(obj > 50_000) {
listaBledow.add("Zbyt duża objętość");
}
if(listaBledow.isEmpty()) {
System.out.println("Bagaż mieści się w wymaganiach");
} else {
System.out.println("Bagaż odrzucony. Błędy:");
for(String blad : listaBledow) {
System.out.println(" * " + blad);
}
}
}
}
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