Ein allgemeiner Rat:
nutze wenn möglich keine festen Zahlen, sondern Konstanten
Wenn z.B. ein neuer Student dazukommt, musst du das nicht nur oben bei der Arraydefinition ändern, sondern auch bei der Berechnung des Durchschnitts.
Die 42 kriegst du mit studentenPunkte.length
Die 8 mit studentenPunkte[0].length
neuling96
code:
1:
2:
3:
4:
5:
6:
7:
public static double durchschnittsPunktezahl(int aufgabe) {
double sum= 0;
for (int i=0; i<42;i++)
sum += studentenPunkte [i][aufgabe] ;
}
return sum/42 ;
}
und fertig?
eulerscheZahl
Es kommt darauf an, wo du das schreibst.
Für Klassenvariablen ist das zutreffend, wenn die Variable aber lokal in der Funktion erstellt wird, dann musst du sie Initialisieren.
neuling96
int sum = 0; //initialisieren
ich dachte wenn man int sum, hinschreibt wird automatische int sum =0 gesetzt?
neuling96
code:
1:
2:
3:
4:
5:
6:
7:
public static double durchschnittsPunktezahl(int aufgabe) {
double sum;
for (int i=0; i<42;i++)
sum += studentenPunkte [i][aufgabe] ;
}
return sum/42 ;
}
eulerscheZahl
studentenPunkte [student][aufgabe] = punkte gilt so lange, bis man wieder etwas anderes hineinschreibt.
void heißt, dass díe Funktion keinen Rückgabewert hat.
Zur Summenberechnung:
code:
1:
2:
3:
4:
5:
6:
7:
public static int gesamtPunktezahl(int student) {
int sum = 0; //initialisieren
for (int i=0;i<8;i++) {
sum += studentenPunkte [student][i] ;
}
return sum; //nicht vergessen, das Ergebnis zurückzugeben
}
neuling96
Zitat:
Original von eulerscheZahl
Nein, damit überschreibst du den Eintrag ja mit dem, was vorher auch schon drinstand.
code:
1:
2:
3:
public static void setPunkte(int student, int aufgabe, int punkte) {
studentenPunkte [student][aufgabe] = punkte;
}
d.h ab sofort ist studentenPunkte [student][aufgabe] = punkte; fest gelegt ?
void->bedeutet
dass keine Daten übergeben werden oder der Typ der Daten nicht angegeben ist?!
code:
1:
2:
3:
4:
5:
6:
public static int gesamtPunktezahl(int student) {
int sum;
for (int i=0;i<8;i++) {
sum += studentenPunkte [student][i] ;
}
}
eulerscheZahl
Nein, damit überschreibst du den Eintrag ja mit dem, was vorher auch schon drinstand.
code:
1:
2:
3:
public static void setPunkte(int student, int aufgabe, int punkte) {
studentenPunkte [student][aufgabe] = punkte;
}
neuling96
public static void setPunkte(int student, int aufgabe, int punkte) {
studentenPunkte [student][aufgabe]=getPunkte(student, aufgabe);
}
meinst du so?
Es sind weitere Beiträge zu diesem Thema vorhanden. Klicken Sie hier, um sich alle Beiträge anzusehen.