ChristophOtt Blatt8
A
Einführung in die Programmierung
(SS 2008)
Abgabetermin:26.Juni2008
1 Wahlen
ManhmalgehenWahlenjanihtsoauswiesieausgehensollen.WährendinIrlandgeradeder
Jammergroÿist,dassdieMehrheitdesVolkseinfahdenEU-Reformvertragnihtunterstützen
will,gehtmandainanderenLänderngeshikter vor...
StelltEuhalsofürdiesesBlatteinfahvor,derrussishePräsidenthätteEuhumMithilfe
beider Bearbeitung desWahlergebnissesgebeten. Nehmteinfahmalan,Ihr hättetkeine
SkrupeldiesemWunshzu folgenundshreibt einkleinesProgramm,dasübervershiedene
MethodendasWahlergebniseinesWahlbezirkserfasstundentsprehendbearbeitet.
DasErgebnisEuresWahlbezirksistineinemBoolean-Arrayerfasst;truebedeutethierbei
derWählerhatrihtiggewählt,falsebedeutet,derWählermusswohlunkonzentriertgewesen
seinundseinKreuzanderfalshenStellegemahthaben.DasProgrammWahlBsp.javawirdin
denÜbungenentwikeltwerdenundkannalsGrundlagefürdiesesÜbungsblattherangezogen
werden.
1.1 AnzahlabgegebenerStimmen (2P)
ShreibteineMethode,diedenArrayentgegennimmtunddieAnzahlderabgegebenenStimmen
(alsodieAnzahlderElementedesArrayswaehlerstimmen)bestimmt.Fürdenvorgegebenen
ArraysiehtdieProgrammausgabeetwafolgendermaÿenaus:
- Anzahl abgegebener (gueltiger) Stimmen: 130
1.2 Berehnungder Wahlergebnisses(2P)
Nun soll dasWahlergebnis bestimmt werden. Shreibt eine Methode, dieden Array entge-
gennimmt,dessenEinträgedurhläuftunddenAnteilderEinträgemitdemEintragtruezu-
rükliefert.GibtmandiesesErgebnis(indermain-Methode)amBildshirmaus,sosiehtdie
(formatierte)AusgabefürdenvorgegebenenArrayetwafolgendermaÿenaus:
- Anzahl abgegebener (gueltiger) Stimmen: 130
führtwird.
1.3 Ergebnis akzeptabel?(2P)
Shreibt eineMethode,derIhrEuerWahlergebnisdervorigenTeilaufgabeübergebtunddie
bestimmt, ob das Wahlergebnis akzeptabel ist.In unserem Fall sei ein Wahlergebnis dann
akzeptabel,wennmindestens95%derWählerfürdierihtigeParteigestimmthat.Einsinnvoller
RükgabewertdieserMethodewäresomitboolean.Wirdauhdieses Ergebnis(inder main-
Methode) auf demBildshirmausgegeben,so sieht dieProgrammausgabe mittlerweileetwa
folgendermaÿenaus:
- Anzahl abgegebener (gueltiger) Stimmen: 130
- Wahlergebnis: 63.8% 'rihtige' Stimmen
>> Wahlergebnis ist noh niht akzeptabel!
1.4 Einige Stimmen korrigieren(2P)
IndieserTeilaufgabesolltIhreineMethodeshreiben,dieeinigeabgegebeneStimmenkorrigiert
(d.h.vonfalseauftruesetzt).DazusollsiedenArraywaehlerstimmenundzweiInteger-Werte
entgegennehmen.AlleArray-Elementezwishen diesembeidenInteger-Wertensollennunauf
truegesetztwerden.DaArraysautomatishverändertwerden,isteinRükgabewertsomitniht
notwendig.NahdemIhrdieseMethode(bspw.mitdenInteger-Werten20und120)aufgerufen
habt,könntIhrauhwiederdieMethodenausdenvorigenbeidenTeilaufgabenaufrufen.Dann
solltedieProgrammausgabeetwafolgendermaÿenaussehen:
- Anzahl abgegebener (gueltiger) Stimmen: 130
- Wahlergebnis: 63.8% 'rihtige' Stimmen
>> Wahlergebnis ist noh niht akzeptabel!
- Wahlergebnis nah 1.Manipulation: 92.3% 'rihtige' Stimmen
>> Wahlergebnis ist immer noh niht akzeptabel!
1.5 Niht-abgegebeneStimmen verteilen (2P)
ShreibtabshlieÿendeineMethode,diedenArraywaehlerstimmenundeineInteger-Variable
laengeentgegennimmt.DieseMethodesolldenbestehendenArrayumgenausovieleElemente
mitdemWerttrueverlängern,dassderverlängerteArraygenaulaengeElementebesitzt.Da
Arrays nihtsoeinfahverlängertwerdenkönnen, empehltessiheinenzweitenArray der
Gröÿelaengeanzulegen,dieElementevonwaehlerstimmenindiesenzukopierenunddenRest
desneuenArraysmittrueaufzufüllen.Anshlieÿendkannmansihdannwiederdasmodizierte
Wahlergebnisausgeben lassen. RuftmandieMethode beispielsweise mitdemvorgegebenen
Array waehlerstimmenunddemebenfallsvorgegebenenInteger-WertmoegliheStimmen auf,
soergibtsihfolgendeBildshrimausgabe:
- Anzahl abgegebener (gueltiger) Stimmen: 130
- Wahlergebnis: 63.8% 'rihtige' Stimmen
>> Wahlergebnis ist noh niht akzeptabel!
- Wahlergebnis nah 2.Manipulation: 95.0% rihtige Stimmen
>> Wahlergebnis ist jetzt okay!
>> Neue Wahlbeteiligung: 100.0%