G
Gast123
Gast
Bilde von der Klasse Bruch (siehe unten) eine Unterklasse Bruchgekuerzt, welche die gleichen
Operationen wie Bruch aufweist, aber nach jeder Operation die entstehende Bruchzahl kürzt.
Überschreibe die Methoden in Bruchgekuerzt und rufe zu ihrer Implementierung die geerbten
Methoden aus Bruch auf.
Irgendwie will das nicht funktionieren. Habt ihr Vorschläge für mich? Danke für eine schnelle Antwort
Operationen wie Bruch aufweist, aber nach jeder Operation die entstehende Bruchzahl kürzt.
Überschreibe die Methoden in Bruchgekuerzt und rufe zu ihrer Implementierung die geerbten
Methoden aus Bruch auf.
Code:
public class TestBruch{
public static void main (String [] args){
Bruch br = new Bruch(4, 5);
Bruch br1= new Bruch(6, 5);
Out.println("Addition: " +br.add(br1)+);
Out.println("Subtraktion: " +br.sub(br1)+);
Out.println("Multiplikation: "+br.mult(br1)+);
Out.println("Division: "+br.div(br1)+);
}
}
public class Bruch{
protected int n, z;
Bruch(int z, int n) {
this.n = n;
this.z = z;
}
void add(Bruch br) {
n = n*br.z + br.n*z;
z = z*br.z;
}
void sub(Bruch br) {
n = n*br.z - br.n*z;
z = z*br.z;
}
void mult(Bruch br) {
n = n*br.n - br.n*z;
z = z*br.z;
}
void div(Bruch br) {
int n0 = n*br.z;
z = z*br.n;
n = n0;
}
public String toString() {
return n + "/" + z;
}
}
public class Bruchgekuerzt extends Bruch{
Bruechegekuerzt(int z, int n){
super(z, n);
}
void add(Bruch br){
super.add();
kuerze(z, n);
}
void sub(Bruch br){
super.sub();
kuerze(z, n);
}
void mult(Bruch br){
super.mult();
kurze(z, n);
}
void div(Bruch br){
super.mult();
kuerze(z, n);
}
int ggT(int z, int n){
int rest;
rest = z%n;
while(rest != 0){
z = n;
n = rest;
rest = z%n;
}
return n;
}
int kuerze(){
int ggT = ggT(z, n);
z = z/ggT;
n = n/ggT;
}
}
Irgendwie will das nicht funktionieren. Habt ihr Vorschläge für mich? Danke für eine schnelle Antwort