Hallo zusammen,
ich möchte den Mittelwert rationaler Zahlen berechnen. Dieser soll zudem gekürzt werden.
Die Klasse Ratio war schon gegeben und in der Start-Klasse soll eine gesonderte Methode "public static Ratio bildeArithMittelwert(Ratio[] feld) " erstellt werden.
Ich komme jedoch in der Methode nicht weiter, denn es wird folgende Exception geworfen:
Bisher habe ich folgendes:
ich möchte den Mittelwert rationaler Zahlen berechnen. Dieser soll zudem gekürzt werden.
Die Klasse Ratio war schon gegeben und in der Start-Klasse soll eine gesonderte Methode "public static Ratio bildeArithMittelwert(Ratio[] feld) " erstellt werden.
Ich komme jedoch in der Methode nicht weiter, denn es wird folgende Exception geworfen:
Code:
Exception in thread "main" java.lang.Error: Unresolved compilation problems:
The field Ratio.zaehler is not visible
The field Ratio.zaehler is not visible
The field Ratio.nenner is not visible
The field Ratio.nenner is not visible
at ratio.Start.bildeArithMittelwert(Start.java:25)
at ratio.Start.main(Start.java:9)
Bisher habe ich folgendes:
Java:
package ratio;
public class Start {
public static void main(String[] args) {
Ratio[] feld = { new Ratio(1, 2), new Ratio(1, 4), new Ratio(1, 4), new Ratio(2, 4), };
Ratio summe = bildeArithMittelwert(feld);
System.out.println("Mittelwert = " + summe);
} // end main
public static Ratio bildeArithMittelwert(Ratio[] feld) {
Ratio summenErgebnis = new Ratio(0, 1);
Ratio mittelwert = new Ratio(0, 1);
// Summe aller Ratio
for (int i = 0; i < feld.length; i++) {
summenErgebnis = summenErgebnis.addiere(feld[i]);
}
mittelwert.zaehler = summenErgebnis.zaehler;
mittelwert.nenner = summenErgebnis.nenner * feld.length;
return mittelwert.kuerze();
}
}
Java:
package ratio;
public class Ratio {
private int zaehler;
private int nenner;
public Ratio(int zaehler, int nenner) {
this.zaehler = zaehler;
this.nenner = nenner;
}
public String toString() {
return "[" + zaehler + "/" + nenner + "]";
}
public Ratio dividiere(Ratio zahl) {
Ratio ergebnis = new Ratio(0, 1);
ergebnis.zaehler = this.zaehler * zahl.nenner;
ergebnis.nenner = this.nenner * zahl.zaehler;
return ergebnis.kuerze();
}
public Ratio addiere(Ratio zahl) {
Ratio ergebnis = new Ratio(0, 1);
ergebnis.zaehler = this.zaehler * zahl.nenner + this.nenner * zahl.zaehler;
ergebnis.nenner = this.nenner * zahl.nenner;
return ergebnis.kuerze();
}
public Ratio kuerze() {
int i, n = Math.abs(nenner), z = Math.abs(zaehler);
while (z > 0) {
if (z < n) {
i = n;
n = z;
z = i;
}
z = z - n;
}
nenner = nenner / n;
zaehler = zaehler / n;
return this;
}
} // end class
Zuletzt bearbeitet von einem Moderator: