Guten Abend,
diese Woche ging es in meinem Programmiermodul um Arrays. Dabei kamen mir gleich zwei Aufgaben unter, die bei mir Unverständnis ausgelöst haben.
1.
Es existieren die Arrays
int a[] = {1,2,3,4,5};
int b[] = {2,3,5,7,-1};
aus diesen resultierend sollte hier die Ergebnisse der Ausdrücke berechnet werden:
Das habe ich dann soweit verstanden.
"Bei der Auswertung der Ausdrücke ergaben sich insgesamt drei Zugriffsfehler. Geben Sie an, auf welches der Felder es im Verlauf der Auswertungen einen Lesezugriff gab, bevor es zum Zugriffsfehler kam (nur die Ausdrücke mit Zugriffsfehler)."
Und hier verstehe ich nicht wirklich, was gemeint ist (das sind schon die Lösungen in den beiden Spalten. Hier sollte eigentlich Zugriff/kein Zugriff ausgewählt werden)
2. Kann ich nicht in vollem Umfang stellen, da es sich auf eine Aufgabe bezieht, die ich abgeben muss. Prüfungsbetrug und so... So sehr ich dieses Java-Modul mittlerweile nicht mehr ausstehen kann, so weit bin ich noch nicht, betrügen zu wollen.
Dennoch soviel: ist
CD[] cds;
eine gültige Initialisierung für ein Array cds[] (wobei CD eine Klasse ist), wenn am Ende des Programms eine Methode steht, die das Array mittels
cds[nextFreePos].setTitle(title);
füllt, wobei setTitle eine Methode der Klasse CD ist?
Und was könnten sehr wahrscheinliche Ursachen sein, dass (in einer solchen Konstellation) dieses Array nicht gefüllt wird, d.h. das Programm aufgrund eines NPE abgebrochen wird? (die Gesamtaufgabe ist, 2 Fehlerstellen im Programmcode zu finden. Bisher konnte ich es schon auf dises Array eingrenzen. Allerdings verstehe ich nicht, wieso das Array angeblich keinen Inhalt haben soll.)
diese Woche ging es in meinem Programmiermodul um Arrays. Dabei kamen mir gleich zwei Aufgaben unter, die bei mir Unverständnis ausgelöst haben.
1.
Es existieren die Arrays
int a[] = {1,2,3,4,5};
int b[] = {2,3,5,7,-1};
aus diesen resultierend sollte hier die Ergebnisse der Ausdrücke berechnet werden:
Java:
a[1]
a[a[1]]
b[b[b[0]]]
a[a[a[0]]]
a[b[a[3] % 3]]
a[b[a[3]] % 3]
b[b[a[4] % b.length]]
a[b[b.length * 11 % 3]]
a[b[b[0] * b[0]]]
a[(a.length * b[a[b[0]]]) % a.length]
Das habe ich dann soweit verstanden.
"Bei der Auswertung der Ausdrücke ergaben sich insgesamt drei Zugriffsfehler. Geben Sie an, auf welches der Felder es im Verlauf der Auswertungen einen Lesezugriff gab, bevor es zum Zugriffsfehler kam (nur die Ausdrücke mit Zugriffsfehler)."
Und hier verstehe ich nicht wirklich, was gemeint ist (das sind schon die Lösungen in den beiden Spalten. Hier sollte eigentlich Zugriff/kein Zugriff ausgewählt werden)
Index\Array | a | b |
0 | kein Zugriff | Zugriff |
1 | kein Zugriff | kein Zugriff |
2 | kein Zugriff | Zugriff |
3 | Zugriff | kein Zugriff |
4 | kein Zugriff | Zugriff |
2. Kann ich nicht in vollem Umfang stellen, da es sich auf eine Aufgabe bezieht, die ich abgeben muss. Prüfungsbetrug und so... So sehr ich dieses Java-Modul mittlerweile nicht mehr ausstehen kann, so weit bin ich noch nicht, betrügen zu wollen.
Dennoch soviel: ist
CD[] cds;
eine gültige Initialisierung für ein Array cds[] (wobei CD eine Klasse ist), wenn am Ende des Programms eine Methode steht, die das Array mittels
cds[nextFreePos].setTitle(title);
füllt, wobei setTitle eine Methode der Klasse CD ist?
Und was könnten sehr wahrscheinliche Ursachen sein, dass (in einer solchen Konstellation) dieses Array nicht gefüllt wird, d.h. das Programm aufgrund eines NPE abgebrochen wird? (die Gesamtaufgabe ist, 2 Fehlerstellen im Programmcode zu finden. Bisher konnte ich es schon auf dises Array eingrenzen. Allerdings verstehe ich nicht, wieso das Array angeblich keinen Inhalt haben soll.)
Zuletzt bearbeitet von einem Moderator: