Prof. Dr. Franz Schweiggert Institut für Angewandte Informationsverarbeitung 5. Juni 2008
Christoph Ott Blatt 6
Einführung in die Programmierung
(SS 2008)
Abgabetermin: 12. Juni 2008
Am Samstag startet die Fußball-Europameisterschaft 2008. Auf dem aktuellen Blatt
sollt Ihr Euch deshalb schon mal ausgiebig mit den teilnehmenden Mannschaften und
ihren Vorrunden-Ergebnissen beschäftigen.
Findet erst einmal heraus, welche Mannschaften in der Deutschland-Gruppe spielen.
Dann legt Ihr einen Array von Strings an. Den jeweiligen Array-Elementen weist
Ihr die entsprechenden Mannschaften als String zu.
Habt Ihr das alles geschafft, so gebt in einer for-Schleife alle im Array (also in
der Deutschland-Gruppe) enthaltenen Strings (also Nationen) aus.
Auf dem Bildschirm kann das etwa folgendermaßen aussehen:
Folgende Teams spielen in der Deutschland-Gruppe:
- Oesterreich
- Kroatien
- Deutschland
- Polen
Vorige Teilaufgabe soll nun dahingehend erweitert werden, dass der Benutzer
eine beliebige Gruppe (A, B, C oder D) auswählen kann, deren Nationen dann
am Bildschirm ausgegeben werden. Hierzu empfiehlt es sich analog zu voriger
Teilaufgabe einen Array von Strings anzulegen, dann die gewünschte Gruppe
abzufragen und über eine switch-Anweisung den Array abhängig von der gewählten
Gruppe zu füllen. Auf dem Bildschirm kann das etwa folgendermaßen aussehen:
Waehlen Sie eine Vorrunden-Gruppe aus (A,B,C,D)!
A
Folgende Teams spielen in der Gruppe A:
- Schweiz
- Tschechien
- Portugal
- Tuerkei
Nun soll natürlich auch gespielt werden. In den Übungen bekommt Ihr gezeigt, wie
über zwei for-Schleifen alle Spiele (wenn auch nicht in der richtigen
Reihenfolge) durchlaufen werden können. Nun muss also lediglich noch für jedes
Spiel ein zufälliges Ergebnis bestimmt werden. Fügt Ihr die Zeile import
java.lang.Math; direkt nach dem import IOulm.*; in Euer Programm ein, so
könnt Ihr mit dem Aufruf Math.random(); eine reelle Zufallszahl zwischen
0 und 1 erhalten. Wie Ihr nun zufällige Spielergebnisse erzeugt, bleibt Euch
überlassen. Eine Möglichkeit ist, die mittels Math.random(); erhaltene
Zahl mit 4 zu multiplizieren (somit erhält man eine reelle Zufallszahl zwischen
0 und 4) und diese dann auf int zu casten (somit erhält man genau eine
der Zahlen 0, 1, 2, 3, jeweils mit der selben Wahrscheinlichkeit). Dies kann man
für beide Mannschaften machen und erhält somit ein halbwegs realistisches
Ergebnis. Auf dem Bildschirm kann das dann etwa folgendermaßen aussehen:
Waehlen Sie eine Vorrunden-Gruppe aus (A,B,C,D)!C
Frankreich - Rumaenien 0 : 0
Frankreich - Italien 2 : 2
Frankreich - Niederlande 0 : 0
Rumaenien - Italien 1 : 0
Rumaenien - Niederlande 3 : 2
Italien - Niederlande 0 : 2
Um bestimmen zu können, welche Mannschaften die Vorrunde überstehen, müssen nun
natürlich die Punkte jeder Mannschaft aufaddiert werden. Dabei könnt Ihr
prinzipiell genauso vorgehen wie in
PunkterundeFor.java
auf Blatt 3.
Der Unterschied besteht jedoch darin, dass diesmal die Punktesumme nicht nur für
eine Mannschaft gebildet werden muss, sondern für alle vier Mannschaften. Es
empfiehlt sich also einen Array punkte der Größe 4 anzulegen, für den in
jedem Element die Punktesumme einer Mannschaft gebildet wird. Gebt die Punkte
jeder Mannschaft abschließend am Bildschirm aus. Das kann etwa folgendermaßen
aussehen:
Waehlen Sie eine Vorrunden-Gruppe aus (A,B,C,D)!D
In Gruppe D gab es folgende Ergebnisse:
Russland - Spanien 3 : 1
Russland - Schweden 2 : 3
Russland - Griechenland 2 : 0
Spanien - Schweden 3 : 0
Spanien - Griechenland 2 : 2
Schweden - Griechenland 2 : 3
Mannschaft Punkte
----------------------
Russland 6
Spanien 4
Schweden 3
Griechenland 4
In obiger Gruppe ist allein auf Grund der gesammelten Punkte nicht klar, ob
Spanien oder Griechenland das Viertelfinale erreichen werden. Deshalb sollte Eure
Auswertung auf jeden Fall auch noch das Torverhältnis berücksichtigen. Auch dies
kann analog zur Aufgabe
PunkterundeFor.java
auf
Blatt 3 geschehen, jedoch muss auch hier die dortige Lösung auf vier Team
übertragen werden. Dazu empfiehlt sich das Anlegen zweier Array tore und
gegentore, in denen die Tore und Gegentore aller Mannschaften verwaltet
werden. Vorige Teilaufgabe, um das Torverhältnis erweitert, sieht auf dem
Bildschirm etwa folgendermaßen aus:
Waehlen Sie eine Vorrunden-Gruppe aus (A,B,C,D)!D
In Gruppe D gab es folgende Ergebnisse:
Russland - Spanien 3 : 1
Russland - Schweden 2 : 3
Russland - Griechenland 2 : 0
Spanien - Schweden 3 : 0
Spanien - Griechenland 2 : 2
Schweden - Griechenland 2 : 3
Mannschaft Punkte Tore
----------------------------
Russland 6 7:4
Spanien 4 6:5
Schweden 3 5:8
Griechenland 4 5:6
Somit hätte also Spanien das Viertelfinale erreicht.
Optisch schöner wäre vorige Teilaufgabe natürlich, wenn die Teams in der
Reihenfolge Ihres Tabellenplatzes aufgelistet würden. Das heißt, abhängig von
den gesammelten Punkten und (gegebenenfalls) dem Torverhältnis muss die
Reihenfolge der Teams verändert werden. Wenn Ihr hierfür eine Lösung findet,
könnt Ihr von Eurem Tutor bis zu 3 Zusatzpunkte bekommen. Außerdem erhält
derjenige von Euch, der mir bis nächsten Donnerstag 12:00 Uhr die beste Lösung
zumailt einen kleinen Preis.
Viel Erfolg!
Christoph Ott
2008-06-05