Informatik

Felder verändern

Bisher hast du Felder nur gelesen. Jetzt schreibst du hinein – füllst sie, tauschst Werte, verknüpfst zwei Felder miteinander.

Ein Feld füllen

Ein Feld zu füllen ist dasselbe Muster wie ein Feld zu lesen – nur steht feld[i] jetzt links vom Gleichheitszeichen.

Mit der erweiterten for-Schleife geht das nicht: Sie gibt dir eine Kopie des Wertes, keinen Zugang zum Platz im Feld.

Zwei Werte tauschen

Das brauchst du in Kapitel 7 beim Sortieren ständig.

Der Tausch braucht drei Zeilen und eine Hilfsvariable – genau wie beim Tausch zweier Variablen in Kapitel 2. Ohne den Merker überschreibst du einen der beiden Werte.

Weil man das so oft braucht, lohnt sich eine eigene Methode dafür.

Parallele Felder

Manchmal gehören mehrere Informationen zusammen. Solange du noch keine eigenen Klassen kennst, hilft ein Trick: zwei Felder mit gleicher Länge, bei denen derselbe Index zusammengehörige Daten trifft.

Bei der Suche nach der besten Leistung merkt sich das Programm nicht den Wert, sondern den Index.

a) Erkläre, warum das hier nötig ist.

b) Nenne einen Nachteil paralleler Felder. Was passiert, wenn jemand einen Namen einfügt und die Punkte vergisst?

Auflösung

a) Weil du am Ende sowohl die Punktzahl als auch den Namen brauchst. Nur der Index verbindet beide Felder miteinander.

b) Die Felder geraten aus dem Takt: Ab der eingefügten Stelle passt jeder Name zur falschen Punktzahl. Nichts im Programm verhindert das – die Zusammengehörigkeit steht nirgends geschrieben, sie ist nur eine Absprache im Kopf.

Genau dieses Problem lösen Klassen im nächsten Kapitel: Dann gehören Name und Punktzahl zu einem Objekt und können gar nicht mehr auseinanderlaufen.

Aufgabe 1: Würfelstatistik

Würfle 6000-mal und zähle, wie oft jede Augenzahl vorkommt. Gib die Statistik aus.

Der Trick: Benutze ein Feld mit sechs Plätzen, bei dem der Index die Augenzahl darstellt.

Tipp 1: Warum sieben Plätze?

Damit du den Index 1 bis 6 direkt als Augenzahl benutzen kannst. Der Platz mit dem Index 0 bleibt dann ungenutzt – das ist die Anzahl eines Wertes wert, macht das Programm aber deutlich lesbarer.

Tipp 2: Die Zählung
int wurf = Random.randint(1, 6);
haeufigkeit[wurf]++;

Der gewürfelte Wert wird direkt zum Index. Kein if, kein switch.

Lösung. Erfrage das Passwort bei deiner Lehrkraft.

Aufgabe 2: Getestete Methoden

Ergänze die drei Methoden so, dass alle Tests grün werden.

Tipp: umgekehrt

Lege mit new int[pWerte.length] ein neues Feld an. Beim Kopieren gilt: Was im alten Feld an Position i steht, gehört im neuen an Position pWerte.length - 1 - i.

Lösung. Erfrage das Passwort bei deiner Lehrkraft.

Zusatzaufgabe

Erweitere die Würfelstatistik um eine grafische Darstellung: Zeichne mit Scratch for Java ein Säulendiagramm der sechs Häufigkeiten, samt Beschriftung der Augenzahlen.

Achte darauf, die Säulenhöhen so zu skalieren, dass sie auch bei 60 000 Würfen noch auf die Bühne passen.


Selbsttest

Felder verändern

Teilbare URL erstellen

Abschnitte auswählen