Vorlesung 4 / Aufgabe 5
This commit is contained in:
parent
b1d4deb0e3
commit
7e87a3bec2
@ -1,73 +0,0 @@
|
||||
class Aufgabe {
|
||||
public static void main(String[] args) {
|
||||
final int RECHTS = 1;
|
||||
final int LINKS = 0;
|
||||
final int NUM_FROESCHE = 100000;
|
||||
|
||||
// Neuer Frosch startet bei Feld 1.
|
||||
int position = 1;
|
||||
int position_max = 0;
|
||||
|
||||
// Es gibt zwei Eimer in welchen ein Frosch landen kann.
|
||||
// Eimer bei Index 0 ist der linke Eimer.
|
||||
// Eimer bei Index 1 ist der rechte Eimer.
|
||||
int[] eimer = {0, 0};
|
||||
|
||||
// Auf der Zahlengerade springt der aktuelle Frosch.
|
||||
// Das Feld 0 ist bereits ein Eimer (der rechte Eimer).
|
||||
// Wenn der Frosch den Index auf der linken Seite verlässt springt er in den linken Eimer.
|
||||
int[] zahlengerade = new int[1000];
|
||||
|
||||
// Die Zahlengerade wird initialisiert. Am Anfang zeigen alle Felder nach rechts.
|
||||
// 0 = Frosch springt nach links.
|
||||
// 1 = Frosch springt nach rechts.
|
||||
for(int i = 0; i < zahlengerade.length; i++) {
|
||||
zahlengerade[i] = RECHTS;
|
||||
}
|
||||
|
||||
// Schleife mit welcher alle Frösche durchlaufen werden.
|
||||
// Es ist immer nur ein Frosch auf der Zahlengerade unterwegs.
|
||||
for(int anzahl_froesche = NUM_FROESCHE; anzahl_froesche > 0; anzahl_froesche--) {
|
||||
position = 1;
|
||||
|
||||
// Der Frosch bewegt sich so lange auf der Zahlengerade bis dieser in einen Eimer fällt.
|
||||
// Es steht ein Eimer auf Index 0 und Index -1.
|
||||
while(position > 0) {
|
||||
|
||||
// Wenn der Frosch das Feld berüht ändert sich die Richtung des Felds.
|
||||
zahlengerade[position] = (zahlengerade[position] == RECHTS) ? LINKS : RECHTS;
|
||||
|
||||
// Je nach Richtung muss der Frosch jetzt springen.
|
||||
if (zahlengerade[position] == RECHTS) {
|
||||
position += 1;
|
||||
|
||||
// Die maximale Position soll gespeichert werden.
|
||||
if (position_max < position) {
|
||||
position_max = position;
|
||||
}
|
||||
} else {
|
||||
|
||||
// Der Frosch soll nach links springen.
|
||||
// Er könnte jetzt in einen Eimer springen.
|
||||
if (position == 1) {
|
||||
|
||||
// Der Frosch springt in den linken Eimer.
|
||||
eimer[0]++;
|
||||
} else if (position == 2) {
|
||||
|
||||
// Der Frosch springt in den rechten Eimer.
|
||||
eimer[1]++;
|
||||
}
|
||||
|
||||
// Der Frosch springt nach links (evtl. in einen Eimer).
|
||||
position -= 2;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Ausgabe der wichtigsten Informationen.
|
||||
System.out.printf("Linker Eimer (Index -1): %d Frösche\n", eimer[0]);
|
||||
System.out.printf("Rechter Eimer (Index 0): %d Frösche\n", eimer[1]);
|
||||
System.out.printf("Maximale Position auf der Zahlengerade: %d\n", position_max);
|
||||
}
|
||||
}
|
54
VL04/Aufgabe05/Aufgabe05.java
Normal file
54
VL04/Aufgabe05/Aufgabe05.java
Normal file
@ -0,0 +1,54 @@
|
||||
package VL04.Aufgabe05;
|
||||
|
||||
/**
|
||||
* Vorlesung 4 / Aufgabe 5
|
||||
*
|
||||
* @author Sebastian Brosch
|
||||
*/
|
||||
public class Aufgabe05 {
|
||||
public static void main(String[] args) {
|
||||
final int DIR_LEFT = 0;
|
||||
final int DIR_RIGHT = 1;
|
||||
final int NUM_FROGS = 100;
|
||||
int[] numbersrow = new int[1000];
|
||||
int[] bucket = { 0, 0 };
|
||||
|
||||
int position = 1;
|
||||
int position_max = position;
|
||||
|
||||
for (int i = 0; i < numbersrow.length; i++) {
|
||||
numbersrow[i] = DIR_RIGHT;
|
||||
}
|
||||
|
||||
for (int f = NUM_FROGS; f > 0; f--) {
|
||||
position = 1;
|
||||
|
||||
while (position > 0) {
|
||||
numbersrow[position] = (numbersrow[position] == DIR_RIGHT) ? DIR_LEFT : DIR_RIGHT;
|
||||
|
||||
if (numbersrow[position] == DIR_RIGHT) {
|
||||
position++;
|
||||
|
||||
if (position_max < position) {
|
||||
position_max = position;
|
||||
}
|
||||
} else {
|
||||
switch (position) {
|
||||
case 1:
|
||||
bucket[0]++;
|
||||
break;
|
||||
case 2:
|
||||
bucket[1]++;
|
||||
break;
|
||||
}
|
||||
|
||||
position -= 2;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
System.out.printf("Linker Eimer: %d Frösche\n", bucket[0]);
|
||||
System.out.printf("Rechter Eimer: %d Frösche\n", bucket[1]);
|
||||
System.out.printf("Maximale Position auf der Zahlengerade: %d\n", position_max);
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user