Sitzung: Jeden Freitag in der Vorlesungszeit ab 16 Uhr c. t. im MAR 0.005. In der vorlesungsfreien Zeit unregelmäßig (Jemensch da?). Macht mit!

Javakurs/Übungsaufgaben/Abzaehlspiel/Musterloesung

< Javakurs‎ | Übungsaufgaben‎ | Abzaehlspiel
Version vom 24. März 2010, 19:53 Uhr von Andre (Diskussion | Beiträge) (Die Seite wurde neu angelegt: „= Abzählspiel - Musterlösung = <nowiki> package abzaehlspiel; public class Abzaehlspiel { public static void main(String[] args) { int[] personen = new i...“)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)

Abzählspiel - Musterlösung

package abzaehlspiel;

public class Abzaehlspiel
{
	public static void main(String[] args)
	{
		int[] personen = new int[10000];// Array fuer die Personen
		int i;// Zaehlvariable

		// allen Personen eine Nummer zuweisen
		for (i = 0; i < 10000; i++)
		{
			// den Personen eine Nummer geben
			personen[i] = i + 1;
		}

		int stelle = 0;// Stelle der Person, welche man gerade betrachtet
		int zaehler = 0;// Variable, mit der man bis zum 3. zaehlt
		int letzter = -1;// Stelle, an der der Letzte ertfernt wurde

		// die eigentliche Abzaehlung
		do
		{
			// ueberpruefen ob die person noch da ist...
			if (personen[stelle] != 0)
			{
				// ... wenn ja, dann weiterzaehlen
				zaehler++;

				// ueberpruefen ob man beim 3. angekommen ist...
				if (zaehler == 3)
				{
					// ... diese Person etfernen (seine Numer auf Null setzen)
					personen[stelle] = 0;
					zaehler = 0;// wieder von vorne anfangen zu zaehlen
					letzter = stelle;// merken, wo als letztes entfernt wurde
				}// if
			}// if

			// zum naechsten gehen
			stelle++;

			// ueberpruefen ob man am Ende ist...
			if (stelle == personen.length)
			{
				// ... dann am Anfang fortsetzen
				stelle = 0;
			}

			// die Schleife so lange wiederholen, bis man an der Stelle
			// angekommen ist, an der man als Letztes jemanden entfernt hat,
			// dann ist man einmal duch alle Personen durchgelaufen
			// und hat dabei keinen entfernt => Ende
		} while (stelle != letzter);

		System.out.println("Uebrig bleiben:");

		// Alle Personen durchgehen...
		for (i = 0; i < 10000; i++)
		{
			// ... und wenn eine Person noch da ist...
			if (personen[i] != 0)
			{
				// ...ausgeben
				System.out.println(personen[i]);
			}
		}// for

	}// main
}// class