Übungsaufgaben
Zehn Übungen zu Tabellen, Indizes und verschachtelten Schleifen — von AFB I bis AFB III. Jede Übung gibt sofort Rückmeldung; wenn Sie nicht weiterkommen, helfen die gestuften Tipps.
Die Tribüne einer Sporthalle hat 6 Reihen mit je 10 Plätzen: int[][] tribuene = new int[6][10]; Geben Sie die passenden Werte und Zugriffe an.
tribuene.length hat den Wert .
tribuene[0].length hat den Wert .
Der Platz ganz hinten rechts (letzte Reihe, letzter Platz) ist .
Insgesamt hat die Reihung Elemente.
new int[6][10] legt 6 Zeilen mit je 10 Spalten an. tribuene.length zählt die Zeilen, tribuene[0].length die Spalten. Der letzte Platz hat in beiden Richtungen den Index Länge − 1, insgesamt gibt es \(6\cdot10=60\) Elemente.new int[6][10] ist die Zeilenzahl.Ein Lagerregal hat 4 Böden mit je 7 Fächern: int[][] regal = new int[4][7]; Ordnen Sie jeden Ausdruck zu.
regal[6][3] vertauscht Zeile und Spalte — 6 ist als Zeilenindex zu groß. Mit nur einem Index erhält man eine ganze Zeile, also eine eindimensionale Reihung mit 7 Plätzen.Eine Lehrkraft speichert die Noten von 25 Schülerinnen und Schülern in 4 Klausuren: double[][] klausur = new double[25][4]; (Zeile = Person, Spalte = Klausur). Nennen Sie zu jeder Aussage, ob sie stimmt.
klausur.length — wie viele Zeilen (Personen); klausur[z].length — wie lang eine Zeile ist (Klausuren).klausur.length — Personen oder Klausuren?Zwei Kassen eines Kiosks zählen in drei Stunden ihre Kunden: int[][] kasse = { {4, 1, 7}, {2, 9, 3} };
for (int s = 0; s < kasse[0].length; s++) {
for (int z = 0; z < kasse.length; z++) {
System.out.print(kasse[z][s] + " ");
}
}
Wenden Sie die Schleifen an: Tragen Sie für jede Ausgabe den Zeilenindex z und den ausgegebenen Wert ein.
| Ausgabe Nr. | 1 | 2 | 3 | 4 | 5 | 6 |
|---|---|---|---|---|---|---|
| s | 0 | 0 | 1 | 1 | 2 | 2 |
| z | ||||||
| Wert |
s, innen z: Die innere Schleife wechselt am schnellsten. Ausgabe: 4 2 1 9 7 3 — erst beide Werte der Spalte 0, dann Spalte 1, dann Spalte 2.z pendelt zwischen 0 und 1, s steigt langsam.Drei Personen kegeln vier Runden: int[][] wurf = { {3, 5, 2, 7}, {6, 1, 0, 2}, {8, 4, 9, 5} }; Bestimmen Sie den Wert jedes Ausdrucks und verbinden Sie.
wurf[1][0] ist Zeile 1, Spalte 0 → 6; wurf[0][1] ist Zeile 0, Spalte 1 → 5. Bei verschachtelten Indizes von innen nach außen: wurf[0][2] = 2, also wurf[2][2] = 9; wurf[1].length - 1 = 3, also wurf[1][3] = 2.In int[][] verkauf steht für jede Filiale (Zeile) der Umsatz an jedem Tag (Spalte). Mia will den Gesamtumsatz jedes Tages berechnen. Analysieren Sie ihren Code — zwei Zeilen sind falsch.
[z][s] heißen. Bei nicht quadratischen Tabellen führen beide Fehler zum Abbruch.verkauf.length oder verkauf[0].length?Drei Klassen wählen zwischen vier Kandidaten (Spalten 0 bis 3): int[][] stimmen = { {12, 8, 5, 9}, {7, 11, 6, 10}, {9, 6, 13, 4} }; Berechnen Sie die Werte.
- Zeilensumme von Zeile 1
- Spaltensumme von Spalte 2
- Gesamtzahl aller Stimmen
- Index des Kandidaten mit den meisten Stimmen
In einem Parkhaus steht boolean[][] besetzt für Ebenen (Zeilen) und Stellplätze (Spalten); true heißt besetzt. Der Code soll die freien Plätze zählen. Überprüfen Sie ihn und korrigieren Sie die beiden fehlerhaften Zeilen.
besetzt[e].length. Gezählt wird wie in 2.1.2: Der Zähler wächst bei jedem Treffer um 1 — frei + p würde die Platznummern addieren.Gegeben ist eine rechteckige Tabelle int[][] feld beliebiger Größe (mindestens eine Zeile). Untersuchen Sie, welche Schleifenpaare jedes Element genau einmal lesen, ohne abzubrechen.
z zur Zeilenzahl, s zur Spaltenzahl. <= Länge − 1 ist gleichwertig zu < Länge. Die beiden falschen Varianten funktionieren nur bei quadratischen Tabellen — bei 2 × 5 brechen sie ab oder lassen Spalten aus.Für ein Turnier mit vier Teams erzeugt ein Programm die Spielpaarungen:
int spiele = 0;
for (int z = 0; z < 4; z++) {
for (int s = z + 1; s < 4; s++) {
spiele++; // Team z gegen Team s
}
}
Ermitteln Sie den Wert von spiele am Ende.
z + 1: Für z = 0 läuft sie 3-mal, dann 2-, 1- und 0-mal — zusammen \(3+2+1+0=6\). Jede Paarung kommt so genau einmal vor, und kein Team spielt gegen sich selbst. Die 16 wäre richtig, wenn die innere Schleife immer bei 0 begänne.