Einen schönen Sonntag,
ich habe das Glück dieses Semester zum ersten Mal in meinen Leben Java zu erlernen. Bisher ist auch alles gut, nun kommt mein erstes Problem - und zwar beim Runden.
Die Aufgabenstellung ist folgende:
public static double computeGrade(int score, int excellent, int pass)
Sie soll zu einer gegebenen Punktzahl die entsprechende Klausurnote errechnen, abh¨angig von einer Mindestpunktzahl
zum Bestehen (pass) und der Punktzahl ab der die Bestnote vergeben wird (excellent).
Die Noten sollen im deutschen Stufen-System angegeben werden:
nicht bestanden: 5.0
bestanden 4.0
Bestnote 1.0
Werte dazwischen 1.3, 1.7, 2.0 ... 3.7
Die Verteilung der Punkte zu den Noten soll durch lineare Interpolation errechnet werden. Die Notenskala
ist dabei oben durch die 1.0 und unten durch die 4.0 begrenzt (Alle Punktzahlen kleiner als pass ergeben
immer eine 5.0). Mathematische Hilfsfunktionen (z.B. round, max, min aus der Klasse Math) k¨onnen
genutzt werden.
Achtung: Es handelt sich um Notenstufen (insgesamt 11), nicht um gerundete Noten-Werte!
Das ist mein Lösungansatz. Bis dahin sollte alles stimmen - Nun sollen wir mit math.round richtig runden.
Mein Problem hierbei, wie runde ich richtig, da ja nur auf x.0/x.3 oder x.7 gerundet werden soll
ich habe das Glück dieses Semester zum ersten Mal in meinen Leben Java zu erlernen. Bisher ist auch alles gut, nun kommt mein erstes Problem - und zwar beim Runden.
Die Aufgabenstellung ist folgende:
public static double computeGrade(int score, int excellent, int pass)
Sie soll zu einer gegebenen Punktzahl die entsprechende Klausurnote errechnen, abh¨angig von einer Mindestpunktzahl
zum Bestehen (pass) und der Punktzahl ab der die Bestnote vergeben wird (excellent).
Die Noten sollen im deutschen Stufen-System angegeben werden:
nicht bestanden: 5.0
bestanden 4.0
Bestnote 1.0
Werte dazwischen 1.3, 1.7, 2.0 ... 3.7
Die Verteilung der Punkte zu den Noten soll durch lineare Interpolation errechnet werden. Die Notenskala
ist dabei oben durch die 1.0 und unten durch die 4.0 begrenzt (Alle Punktzahlen kleiner als pass ergeben
immer eine 5.0). Mathematische Hilfsfunktionen (z.B. round, max, min aus der Klasse Math) k¨onnen
genutzt werden.
Achtung: Es handelt sich um Notenstufen (insgesamt 11), nicht um gerundete Noten-Werte!
Java:
public static double computeGrade(int score, int excellent, int pass){
if (score >= excellent) {
return 1.0;
}
else if (score < excellent && score > pass){
int mark = ((score-excellent)*(4-1))/(pass-excellent))+1
}
else (score < pass){
return 5.0;
}
if (score == pass){
return 4.0;
}}
Das ist mein Lösungansatz. Bis dahin sollte alles stimmen - Nun sollen wir mit math.round richtig runden.
Mein Problem hierbei, wie runde ich richtig, da ja nur auf x.0/x.3 oder x.7 gerundet werden soll