====== 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