Prof. Dr. Franz Schweiggert Institut für Angewandte Informationsverarbeitung 23. Juni 2008
Christoph Ott Blatt 8
Einführung in die Programmierung
(SS 2008)
Abgabetermin: 26. Juni 2008
Manchmal gehen Wahlen ja nicht so aus wie sie ausgehen sollen. Während in Irland
gerade der Jammer groß ist, dass die Mehrheit des Volks einfach den
EU-Reformvertrag nicht unterstützen will, geht man da in anderen Ländern
''geschickter'' vor...
Stellt Euch also für dieses Blatt einfach vor, der russische Präsident hätte Euch
um Mithilfe bei der ''Bearbeitung'' des Wahlergebnisses gebeten. Nehmt einfach
mal an, Ihr hättet keine Skrupel diesem Wunsch zu folgen und schreibt ein kleines
Programm, das über verschiedene Methoden das Wahlergebnis eines Wahlbezirks
erfasst und entsprechend ''bearbeitet''.
Das Ergebnis ''Eures'' Wahlbezirks ist in einem Boolean-Array erfasst;
true bedeutet hierbei der Wähler hat richtig gewählt, false
bedeutet, der Wähler muss wohl unkonzentriert gewesen sein und sein Kreuz an der
falschen Stelle gemacht haben. Das Programm WahlBsp.java
wird in den
Übungen entwickelt werden und kann als Grundlage für dieses Übungsblatt herangezogen werden.
Schreibt eine Methode, die den Array entgegennimmt und die Anzahl der
abgegebenen Stimmen (also die Anzahl
der Elemente des Arrays waehlerstimmen) bestimmt. Für den vorgegebenen Array sieht
die Programmausgabe etwa folgendermaßen aus:
- Anzahl abgegebener (gueltiger) Stimmen: 130
Nun soll das Wahlergebnis bestimmt werden. Schreibt eine Methode, die den Array
entgegennimmt, dessen Einträge durchläuft und den Anteil der Einträge mit dem
Eintrag true zurückliefert. Gibt man dieses Ergebnis (in der
main-Methode) am Bildschirm aus, so sieht die (formatierte) Ausgabe für den
vorgegebenen Array etwa folgendermaßen aus:
- Anzahl abgegebener (gueltiger) Stimmen: 130
- Wahlergebnis: 63.8% 'richtige' Stimmen
Tipp: Denkt daran, dass bei der Division zweier Integer-Zahlen eine
Integer-Division durchgeführt wird.
Schreibt eine Methode, der Ihr Euer Wahlergebnis der vorigen Teilaufgabe
übergebt und die bestimmt, ob das Wahlergebnis akzeptabel ist. In unserem Fall
sei ein Wahlergebnis dann akzeptabel, wenn mindestens 95% der Wähler für die
richtige Partei gestimmt hat. Ein sinnvoller Rückgabewert dieser Methode wäre
somit boolean. Wird auch dieses Ergebnis (in der
main-Methode) auf dem Bildschirm ausgegeben, so sieht die Programmausgabe
mittlerweile etwa folgendermaßen aus:
- Anzahl abgegebener (gueltiger) Stimmen: 130
- Wahlergebnis: 63.8% 'richtige' Stimmen
>> Wahlergebnis ist noch nicht akzeptabel!
In dieser Teilaufgabe sollt Ihr eine Methode schreiben, die einige abgegebene
Stimmen korrigiert (d.h. von false auf true setzt). Dazu soll
sie den Array waehlerstimmen und zwei Integer-Werte entgegennehmen. Alle
Array-Elemente zwischen diesem beiden Integer-Werten sollen nun auf true
gesetzt werden. Da Arrays automatisch verändert werden, ist ein Rückgabewert
somit nicht notwendig. Nachdem Ihr diese Methode (bspw. mit den Integer-Werten 20 und 120)
aufgerufen habt, könnt Ihr auch
wieder die Methoden aus den vorigen beiden Teilaufgaben aufrufen. Dann sollte
die Programmausgabe etwa folgendermaßen aussehen:
- Anzahl abgegebener (gueltiger) Stimmen: 130
- Wahlergebnis: 63.8% 'richtige' Stimmen
>> Wahlergebnis ist noch nicht akzeptabel!
- Wahlergebnis nach 1.Manipulation: 92.3% 'richtige' Stimmen
>> Wahlergebnis ist immer noch nicht akzeptabel!
Schreibt abschließend eine Methode, die den Array waehlerstimmen und eine
Integer-Variable laenge entgegennimmt. Diese Methode soll den bestehenden
Array um genau so viele Elemente mit dem Wert true verlängern, dass der
verlängerte Array genau laenge Elemente besitzt.
Da Arrays nicht so einfach verlängert werden können,
empfiehlt es sich einen zweiten Array der Größe laenge anzulegen,
die Elemente von waehlerstimmen in diesen zu kopieren und den Rest des
neuen Arrays mit true aufzufüllen. Anschließend kann man sich dann wieder
das modifizierte Wahlergebnis ausgeben lassen.
Ruft man die Methode beispielsweise mit dem vorgegebenen Array
waehlerstimmen und dem ebenfalls vorgegebenen
Integer-Wert moeglicheStimmen auf, so ergibt sich folgende
Bildschrimausgabe:
- Anzahl abgegebener (gueltiger) Stimmen: 130
- Wahlergebnis: 63.8% 'richtige' Stimmen
>> Wahlergebnis ist noch nicht akzeptabel!
- Wahlergebnis nach 1.Manipulation: 92.3% 'richtige' Stimmen
>> Wahlergebnis ist immer noch nicht akzeptabel!
- Wahlergebnis nach 2.Manipulation: 95.0% richtige Stimmen
>> Wahlergebnis ist jetzt okay!
>> Neue Wahlbeteiligung: 100.0%
Viel Erfolg!
Christoph Ott
2008-06-23