====== Lösungsvorschlag: Hasen und Hühner ====== ===== Variablen und Konstanten ===== ==== Konstanten ==== ^ Wert ^ Beschreibung ^ Datentyp ^ | 1 | Addieren/Subtrahieren eines Tiers | Ganzzahl | | 2 | Anzahl Beine eines Huhns | Ganzzahl | | 4 | Anzahl Beine eines Hasen | Ganzzahl | ==== Variablen ==== ^ Bezeichner ^ Datentyp ^ | animals | int | | legs | int | | rabbit | int | | chicken | int | | calculated | int | ===== Programmablaufplan ===== {{:modul:m319:learningunits:lu02:loesungen:pap_hasenhuehner_loesung.png?400|}} ===== Realisierung ===== import java.util.Scanner; /** * calculate the number of rabbits and chickens * * @author Marcel Suter * @since 2017-10-02 * @version 1.0 */ public class Animals { Scanner scanner; /** * constructor */ public Animals() { scanner = new Scanner(System.in); } /** * starts the execution * * @param args * command line arguments */ public static void main(String[] args) { Animals program = new Animals(); System.out.println("Willkommen"); program.calculate(); System.out.println("Bye Bye"); } /** * calculates the numbers */ private void calculate() { int animals; int legs; int rabbit; int chicken; System.out.print("Anzahl Tiere >"); animals = scanner.nextInt(); scanner.nextLine(); // Scanner leeren System.out.print("Anzahl Beine >"); legs = scanner.nextInt(); scanner.nextLine(); // Scanner leeren rabbit = animals; chicken = 0; while ((rabbit * 4 + chicken * 2) > legs) { rabbit = rabbit - 1; chicken = chicken + 1; } System.out.println("Es sind " + rabbit + " Hasen und " + chicken + " Huehner"); } } ===== Realisierung Erweitert ===== import java.util.Scanner; /** * calculate the number of rabbits and chickens * * @author Kevin Maurizi * @since 2021-11-11 * @version 1.0 */ public class Animals { Scanner scanner; /** * constructor */ public Animals() { scanner = new Scanner(System.in); } /** * starts the execution * * @param args * command line arguments */ public static void main(String[] args) { Animals program = new Animals(); System.out.println("Willkommen"); program.calculate(); System.out.println("Bye Bye"); } /** * calculates the numbers */ private void calculate() { int animals; int legs; int rabbit; int chicken; int maxLegs; int minLegs; System.out.print("Anzahl Tiere >"); animals = scanner.nextInt(); scanner.nextLine(); // Scanner leeren maxLegs = animals * 4; minLegs = animals *2; System.out.print("Anzahl Beine >"); legs = scanner.nextInt(); scanner.nextLine(); // Scanner leeren if(legs > maxLegs || legs < minLegs){ System.out.print("Anzahl Beine ungültig, bitte erneut eingeben (Min: "+minLegs +" Max: " + maxLegs +") >"); legs = scanner.nextInt(); scanner.nextLine(); // Scanner leeren } rabbit = animals; chicken = 0; while ((rabbit * 4 + chicken * 2) > legs) { rabbit = rabbit - 1; chicken = chicken + 1; } System.out.println("Es sind " + rabbit + " Hasen und " + chicken + " Huehner"); } } ===== Realisierung Erweiterung der Erweiterung ===== import java.util.Scanner; /** * calculate the number of rabbits and chickens * * @author Kevin Maurizi * @since 2021-11-11 * @version 1.0 */ public class Animals { Scanner scanner; /** * constructor */ public Animals() { scanner = new Scanner(System.in); } /** * starts the execution * * @param args * command line arguments */ public static void main(String[] args) { Animals program = new Animals(); System.out.println("Willkommen"); program.calculate(); System.out.println("Bye Bye"); } /** * calculates the numbers */ private void calculate() { int animals; int legs; int rabbit; int chicken; int maxLegs; int minLegs; System.out.print("Anzahl Tiere >"); while(!scanner.hasNextInt()){ // Überprüfen ob der User eine Zahl (int) eingegeben hat. System.out.print("Bitte eine Zahl eingeben. Anzahl Tiere >"); scanner.nextLine(); // Scanner leeren, damit der User erneut eine Zahl eingeben muss. } animals = scanner.nextInt(); // Überprüfte Zahl, bei der wir jetzt wissen, dass es ein "int" ist einlesen. scanner.nextLine(); // Scanner leeren maxLegs = animals * 4; minLegs = animals *2; System.out.print("Anzahl Beine >"); while(!scanner.hasNextInt()){ System.out.print("Bitte eine Zahl eingeben. Anzahl Beine >"); scanner.nextLine(); } legs = scanner.nextInt(); scanner.nextLine(); // Scanner leeren while(legs > maxLegs || legs < minLegs){ System.out.print("Anzahl Beine ungültig, bitte erneut eingeben (Min: "+minLegs +" Max: " + maxLegs +") >"); while(!scanner.hasNextInt()){ System.out.print("Bitte eine Zahl eingeben. Anzahl Beine >"); scanner.nextLine(); } legs = scanner.nextInt(); scanner.nextLine(); // Scanner leeren } rabbit = animals; chicken = 0; while ((rabbit * 4 + chicken * 2) > legs) { rabbit = rabbit - 1; chicken = chicken + 1; } System.out.println("Es sind " + rabbit + " Hasen und " + chicken + " Huehner"); } } ---- [[https://creativecommons.org/licenses/by-nc-sa/4.0/|{{https://i.creativecommons.org/l/by-nc-sa/4.0/88x31.png}}]] (c) Marcel Suter