Brüche kürzen

j0k3r87

Mitglied
Hallo liebe Community,

ich habe folgendes Problem: Ich habe ein Programm geschrieben mit dem man Brüche multiplizieren und addieren kann. Nun würde ich gerne noch eine Methode implementieren die mir automatisch die eingegebenen Brüche so weit wie möglich kürzt und dann ausgeben wird.

So weit bin ich bisher:

Code:
 class Bruch {
    // Deklaration der Attribute
    private int Zaehler;
    private int Nenner;

    // Konstruktor
    Bruch (int z, int n)
    {   Zaehler = z;
        Nenner = n;
    }

    // Methoden zum Zugriff
    public void setZaehler (int z)
    {   Zaehler = z; }

    public void setNenner (int n)
    {   Nenner = n; }

    public int getZaehler ()
    {   return Zaehler; }

    public int getNenner ()
    {   return Nenner; }

    // Methoden zur Berechnung
    public Bruch Multiplikation (Bruch bruch2)
    {
        Bruch ergebnis = new Bruch(0,0);
 
        ergebnis.setZaehler(Zaehler * bruch2.getZaehler());
        ergebnis.setNenner(Nenner * bruch2.getNenner());

         return ergebnis;
    }

    public Bruch Addition (Bruch bruch2)
    {
       int zaehler_neu;
       zaehler_neu =  Zaehler * bruch2.getNenner() + Nenner * bruch2.getZaehler();
      
       int nenner_neu;
       nenner_neu = Nenner * bruch2.getNenner();
 
       Bruch ergebnis = new Bruch (0,1);
       ergebnis.setZaehler(zaehler_neu);
       ergebnis.setNenner (nenner_neu);
   
       return ergebnis;
    }
}

// Hauptprogramm
class Programm {

   public static void main (String[] args)
   {    Bruch B1 = new Bruch (3,2);
        Bruch B2 = new Bruch (2,4);
        Bruch B3, B4;
        
        while (zaehler)
        
        B3 = B1.Multiplikation(B2);

        System.out.print(" 3/2 * 2/4 = ");
        System.out.println(B3.getZaehler() + "/" + B3.getNenner());

        B4 = B1.Addition(B2);

        System.out.print(" 3/2 + 2/4 = ");
        System.out.println(B4.getZaehler() + "/" + B4.getNenner());

   }
}

hoffe ihr könnt mir helfen :)
 

Landei

Top Contributor
Soweit ich weiß, funktioniert der Euklidische Algorithmus seit über zweitausend Jahren tadellos, es muss wohl an deinem Code liegen. Den wir nicht korrigieren können, wenn wir ihn nicht sehen.
 

j0k3r87

Mitglied
also wie gesagt habe die methode schon geschrieben, das war auch nicht das problem. nur weiss ich nicht so recht wie ich die mit den anderen methoden verknüpfe :(

HTML:
			private void kuerzen(){
			//Berechnung des ggT
			int z=Zaehler;
			int n=Nenner;
			int r=Zaehler%Nenner;
			 
			while(r>0){
			z=n;
			n=r;
			r=z%n;
			}
			 
			//Kürzen des Bruches
			Zaehler /= n;
			Nenner /= n;
 

Landei

Top Contributor
Dafür gibt es mehrere Lösungsmöglichkeiten. Ich würde die beiden setter komplett entfernen, dann reicht es, kuerzen() als letztes im Konstruktor aufzurufen. Deine Addition und Multiplikation musst du dann natürlich ein wenig umschreiben, in dem du den Bruch auch wirklich im Konstruktor initialisierst (was ja sein Job ist), etwa:

Java:
public Bruch mal(Bruch bruch2) {
    return new Bruch(
        getZaehler() * bruch2.getZaehler(),
        getNenner() * bruch2.getNenner()
    );
}

Übrigens Variablen- und Methodennamen bitte klein schreiben.
 
S

SlaterB

Gast
was soll man auf so eine oder-Frage antworten?

am Ende des Konstruktors kuerzen() aufzurufen, kann doch nur den Sinn haben, 'Ergebnisse', also den Zustand des eigenen Objektes zu kürzen,
wenn nicht, dann kann man sich den Aufruf gleich sparen..
 

j0k3r87

Mitglied
erstmal danke für eure antworten. java programmierung fällt mir momentan noch schwer, bin kompletter anfänger

könnte mir jemand bitte folgende fragen beantworten:

1. ist meine methode kuerzen() aus post #6 richtig?
2. wie implementiere ich diese in den Konstruktor?
3. inwieweit muss ich dann meine Rechnungen modifizieren?

Velen Dank
 

Landei

Top Contributor
Du "implementierst" sie nicht im Konstruktor, du packst sie in die Klasse und rufst sie im Konstruktor auf, einfach [c]kuerzen();[/c] als letzte Zeile.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
thefastandcurious Brüche kürzen Java Basics - Anfänger-Themen 70
Kirby.exe Brüche kürzen Java Basics - Anfänger-Themen 12
B Brüche kürzen Java Basics - Anfänger-Themen 7
S [HILFE] Brüche addieren, multiplizieren, kürzen Java Basics - Anfänger-Themen 17
M OOP Brüche nicht richtig berechnen Java Basics - Anfänger-Themen 3
L Brüche in java Java Basics - Anfänger-Themen 7
G OOP- Brüche addieren Java Basics - Anfänger-Themen 3
O Methoden implementieren, Sichtbarkeiten, Brüche Java Basics - Anfänger-Themen 104
S Zahlenformat für unendliche Brüche? Java Basics - Anfänger-Themen 7
Eileen Brüche addieren in Zwei Klassen mit JOptionPane Java Basics - Anfänger-Themen 4
kb interface / Brüche in java übergeben Java Basics - Anfänger-Themen 3
S Brüche, Fließkommazahlen Java Basics - Anfänger-Themen 3
H Zahlen kürzen Java Basics - Anfänger-Themen 2
Zeppi OOP Bruch kürzen im Konstruktor Java Basics - Anfänger-Themen 2
J Dezimalzahl in Bruch Umwandeln und Kürzen Java Basics - Anfänger-Themen 8
G Code kürzen Java Basics - Anfänger-Themen 5
G code kürzen Java Basics - Anfänger-Themen 16
F String auf E-Mail kürzen Java Basics - Anfänger-Themen 11
F Code kürzen Java Basics - Anfänger-Themen 9
E Methoden Math.Random() kürzen ? Java Basics - Anfänger-Themen 2
J Code kürzen Java Basics - Anfänger-Themen 11
E Arrayeintrag nach Index löschen und Array kürzen Java Basics - Anfänger-Themen 3
E String komprimieren - Kürzen ohne Informationsverlust? Java Basics - Anfänger-Themen 13
A String kürzen Java Basics - Anfänger-Themen 12
K taschenrechner - Fehler beim Kürzen eines Bruches finden Java Basics - Anfänger-Themen 20
J kürzen von brüchen Java Basics - Anfänger-Themen 9
N Datentypen Double nach 2 stellen kürzen Java Basics - Anfänger-Themen 4
D String kürzen, nich abschneiden Java Basics - Anfänger-Themen 9
M Text kürzen Java Basics - Anfänger-Themen 7
M Quelltext kürzen Java Basics - Anfänger-Themen 8
E Interface einfügen und Code kürzen Java Basics - Anfänger-Themen 15
M Programmierung kürzen??? Java Basics - Anfänger-Themen 5
E Kürzen des Quelltextextes Java Basics - Anfänger-Themen 16
U Code kürzen Java Basics - Anfänger-Themen 4
G bruch soweit es geht kürzen Java Basics - Anfänger-Themen 12
A String um 1 Zeichen kürzen ? Java Basics - Anfänger-Themen 6
S String kürzen auf bestimmte Länge Java Basics - Anfänger-Themen 5

Ähnliche Java Themen

Neue Themen


Oben