» Bruch kürzen Programm funktioniert nicht Teilen durch 0 Exeception

Java "lernen" mit BüchernNeuen Thread eröffnenNeue Antwort erstellenSortierverfahren
AutorNachricht
Beobachter 
Anmeldedatum: 06.05.2019
Beiträge: 2
06.05.2019, 15:25
zitieren

Freunde ich steck in der Klemme und zwar sollte ich ein Programm schreiben mit 2 Klassen wo der Nutzer 2 Zahlen reingibt und einen gekürzten Bruch bekommt. Dieses Programm läuft nicht.
Code für die Klasse Bruch (diese enthält den größten Teil der Logik des ganzen)


/**
 * Beschreiben Sie hier die Klasse Bruch.
 *
 * @author (Ihr Name)
 * @version (eine Versionsnummer oder ein Datum)
 */
public class Bruch
{
    // Instanzvariablen - ersetzen Sie das folgende Beispiel mit Ihren Variablen
    private int x=0;
    private int y=0;
    private int ergebnis=0;

    /**
     * Konstruktor für Objekte der Klasse Bruch
     */
    public int getZählerx()
    {
       return x;
    }
 public int getNennery()
    {
       return y;
    }
    public void setZählerx(int zähler)
    {
        x=zähler;
    }
   
 public void setNennery(int nenner)
    {
       y=nenner;
    }
    public int ggt(  int a,int z)
   
    {
       
     
        if(z<=a)
        {
            if(z==0)
            {
                return a;
            }
            else
            { return ggt(z,a%z);
            }

        }
        else
        {return 0;
        }
    }

    private void verarbeitung ()
    {
        ergebnis=ggt(x,y);
    }
   public void kürzen()
   { x=x/ergebnis;
       y=y/ergebnis;
    }
}
Code für die andere Klasse EVA welche die Eingaben aufnimmt und dann alles ausführt (Die KLasse Bruch ist eingebunden)


import java.util.*;
/**
 * Beschreiben Sie hier die Klasse Eva.
 *
 * @author (Ihr Name)
 * @version (eine Versionsnummer oder ein Datum)
 */
public class Eva
{
    // Instanzvariablen - ersetzen Sie das folgende Beispiel mit Ihren Variablen
    private int zähler=0;
    private int nenner=0;
    private Bruch bruch=new Bruch();
    private Scanner scanner=new Scanner(System.in);
    /**
     * Konstruktor für Objekte der Klasse Eva
     */
    public Eva()
    {
       
    }
    public void eva()
    {eingabe(); verarbeitung(); ausgabe();}
    private void eingabe(){
        System.out.println("Gebe 2 Zahlen ein (Zähler & Nenner). Dir wird der gekürzte Bruch angezeigt. Hinweis: Ganze Zahlen so eingeben: Beispiel: 1.0 . Kommazahlen sind ebenfalls möglich");
        zähler=scanner.nextInt();
        nenner=scanner.nextInt();
    }
    private void verarbeitung()
    { bruch.setNennery(nenner);
        bruch.setZählerx(zähler);
        bruch.kürzen();
        bruch.getNennery();
        bruch.getZählerx();
       
       
    }
    private void ausgabe()
    { System.out.println("Dein gekürzter Bruch:" +zähler/+nenner);
   
    }
}


Der beigefügte Screenshot zeigt den Fehler.

Wenn der Fehler von der Bedeutung her klar ist, liegt es an der Variable ergebnis . Allerdings weiß ich nicht, wie ich das beheben kann, denn ergebnis muss ja zwangsläufig den wert des ggt bekommen sonst kann man ja nicht kürzen ;) oder hat wer eine Ahnung wie ich das programm sonst zum laufen bekomme ;) danke schon mal ;)


 
java.PNG
java.PNG - [Bild vergrößern]


pn
Administrator 

Name: Marc
Geschlecht:
Anmeldedatum: 28.08.2004
Beiträge: 52423
Wohnort: Lohmar


Meine eBay-Auktionen:
06.05.2019, 15:53
zitieren

Geh doch einfach mal zeilenweise durch und lass dir in den entsprechenden Funktionen den Inhalt von
ergebnis
ausgeben. Also mit
System.out.println(ergebnis);
.

Natürlich kannst du dir auch so die anderen Variablen bzw die Ergebnisse deiner Formeln ausgeben lassen. So kommst du sicher darauf warum
ergebnis
Null ist. Denn das ist ja der Fehler. Durch Null (Zero) kann man nun mal nicht teilen.

Außerdem überarbeite mal deine Formatierung, so dass jede Zeile, die auf ein Semikolon endet auch in einer neuen Zeile steht und dazu auch korrekt mit Leerzeichen eingerückt ist. Das macht den Code lesbarer. Nutz einen Editor wie PSPad, damit du die Leerzeichen sehen kannst.


 5x  bearbeitet
pn email
Beobachter 
Anmeldedatum: 06.05.2019
Beiträge: 2
06.05.2019, 15:59
zitieren

mguttGeh doch einfach mal zeilenweise durch und lass dir überall den Inhalt von
ergebnis
ausgeben. Also mit
System.out.println(ergebnis);
. Außerdem überarbeite mal deine Formatierung, so dass jede Zeile, die auf ein Semikolon endet auch in einer neuen Zeile steht und dazu auch korrekt mit Leerzeichen eingerückt ist. Das macht den Code lesbarer.
Moin, das habe ich bereits getan also Testausgaben einsetzt. Und bei der 2. Stoppt er.
Klasse Bruch

import java.util.*;
/**
 * Beschreiben Sie hier die Klasse Eva.
 *
 * @author (Ihr Name)
 * @version (eine Versionsnummer oder ein Datum)
 */
public class Eva
{
    // Instanzvariablen - ersetzen Sie das folgende Beispiel mit Ihren Variablen
    private int zähler=0;
    private int nenner=0;
    private Bruch bruch=new Bruch();
    private Scanner scanner=new Scanner(System.in);
    /**
     * Konstruktor für Objekte der Klasse Eva
     */
    public Eva()
    {

    }

    public void eva()
    {eingabe(); verarbeitung(); ausgabe();}

    private void eingabe(){
        System.out.println("Gebe 2 Zahlen ein (Zähler & Nenner). Dir wird der gekürzte Bruch angezeigt. Hinweis: Ganze Zahlen so eingeben: Beispiel: 1.0 . Kommazahlen sind ebenfalls möglich");
        zähler=scanner.nextInt();
        nenner=scanner.nextInt();
    }

    private void verarbeitung()
    { bruch.setNennery(nenner);
        bruch.setZählerx(zähler);
        bruch.kürzen();
        bruch.getNennery();
        bruch.getZählerx();

    }

    private void ausgabe()
    { System.out.println("Dein gekürzter Bruch:" +zähler/+nenner);}   
}

Klasse Bruch


/**
 * Beschreiben Sie hier die Klasse Bruch.
 *
 * @author (Ihr Name)
 * @version (eine Versionsnummer oder ein Datum)
 */
public class Bruch
{
    // Instanzvariablen - ersetzen Sie das folgende Beispiel mit Ihren Variablen
    private int x=0;
    private int y=0;
    private int ergebnis;

    /**
     * Konstruktor für Objekte der Klasse Bruch
     */
    public int getZählerx()
    {
        return x;
    }

    public int getNennery()
    {
        return y;

    }

    public void setZählerx(int zähler)
    {
        x=zähler; //x= zähler
        System.out.println(" Ausgabe 2 Wert x" +x);
    }

    public void setNennery(int nenner)
    {
        y=nenner;
        System.out.println(" Ausgabe 2 Wert y" +y);
    }

    public int ggt(  int a,int z)

    {
        System.out.println(" Ausgabe 3 Wert a" +a);
        System.out.println(" Ausgabe 3 Wert z" +z);

        if(a<=z)
        {
            if(a==0)
            {
                return z;
            }
            else
            { return ggt(a,a%z);
            }

        }
        else
        {return 0;
        }
    }

    private void verarbeitung ()
    {
        ergebnis=ggt(x,y); //x = kleiner
        System.out.println("Dein ggt"+ergebnis);
    }

    public void kürzen()
    { x=x/ergebnis;
        y=y/ergebnis;
    }
}
vielleicht findest du jetzt was? ;)[img] https://1drv.ms/f/s!AqG-gOm1Ov7VkHwjZH35UT41YiyT [/img]


 1x  bearbeitet
pn
Gast 
06.05.2019, 15:59
zitieren

Mach mit!

Wenn Dir die Beiträge zum Thread "Bruch kürzen Programm funktioniert nicht Teilen durch 0 Exeception" gefallen haben oder Du noch Fragen hast oder Ergänzungen machen möchtest, solltest Du Dich gleich bei uns anmelden:



Registrierte Mitglieder genießen die folgenden Vorteile:
✔ kostenlose Mitgliedschaft
keine Werbung
✔ direkter Austausch mit Gleichgesinnten
✔ neue Fragen stellen oder Diskussionen starten
✔ schnelle Hilfe bei Problemen
✔ Bilder und Videos hochladen
✔ und vieles mehr...


Neuen Thread eröffnenNeue Antwort erstellen
Ähnliche BeiträgeRe:
Letzter Beitrag
Programm zur Berechnung algebraischer Ausdrücke durch rekursive Auswertung
Hallo Leute! Habt Ihr euch schon mal gefragt, wie ein Programm arbeitet, das algebraische Ausdrücke wie (((105+46)*mpi())/2)+(2*140*sin(155.672 / 2))+(((105-46)*12.164*mpi())/180) verarbeiten kann? Nun, erst kürzlich habe ich meine CD-Sammlunig...
[C]von Guiseppe
0
539
26.01.2020, 18:08
Guiseppe
Wie funktioniert das mit dem Kapitalaufbau durch Aktien?
Hi, wie ist das bei einer Aktiengesellschaft, wenn die Aktien ausgibt. Also sagen wir mal eine Firma geht an die Börse und vergibt 1 Millionen Aktien zu je 1,- EUR. Die eine Millionen Euro bekommt ja dann die Aktiengesellschaft richtig? Und was ist...
von mgutt
0
201
02.11.2011, 15:39
mgutt
Irgendwas stimmt da nicht: elFH Beifahrer funktioniert nicht
So hab den Tuning guide vom Zaitochi benutzt und mir Fensterheber und Spiegel nachgerüstet.... Jetzt hab ich ein Problem...Ich kann von der Fahrerseite aus, beide Fenster steuern, aber von der Beifahrerseite aus nicht.. Den Schalter rechts hab ich...
von freac
4
572
26.03.2006, 20:00
freac
Erstes C Programm wird nicht ausgeführt
Hallo Leute nach HTML CSS und Python habe ich mich entschieden die maschinennahe Sprache C zu erlenen. Ich informierte mich viel zur Konfiguration des ersten hello world programmes. Jedoch Funtioniert es nicht. Ich habe mit gcc das programm kompiliert....
[C]von johann1976
9
389
14.03.2022, 12:09
johann1976
EJ9 ABS funktioniert nicht
Hallo liebe Community, ich hab einen EJ9 Facelift BJ2000. Vor längerem ist mir aufgefallen, das das ABS nix macht. Es leuchtet aber weder die ABS Lampe (ich gehe davon aus die wurde vom Vorbesitzer manipuliert...), noch kann man am OBD Stecker...
von SilverEJ9
3
201
25.08.2023, 18:02
JP_Razor
Abs funktioniert nicht
Hallo Leute, bin neu hier und habe ein Problem. Habe nix genaueres gefunden obwohl das Thema schon mehrfach diskutiert wurde, also bitte nicht böse sein :no: Fahre einen Honda Accord CC7 bj.94 Das Abs funktioniert nicht, die Lampe leuchtet! Habe...
von theman88
7
998
27.07.2010, 20:44
felline
<ref> tag funktioniert nicht
Hallo zusammen Ich arbeite erst seit ca. 3 Wochen intensiv mit Media Wiki. Alles hat wunderbar funktioniert. Jetzt habe ich ein Problem. Wenn ich eine Fussnote erzeugen will gebe ich folgenden Text ein: Dieser Text soll vor der Fussnote stehen....
von Jumpinthewater
7
383
10.06.2013, 09:05
Jumpinthewater
Zentral funktioniert nicht
Hallo Leute, meine ZV geht nicht. Kann mir Jemand sagen wo das Relai oder eine Sicherug...
von Mr.Schraubergott
3
265
07.10.2012, 14:30
Emmy93
Multiplayermodus funktioniert nicht
Hi, ich habe jetzt zum ersten Mal eine PS. Eine PS3. Nun haben wir uns zwei Spiele ausgeliehen, um erstmal zu "üben". Dazu sind wir gar nicht gekommen, denn es ist einfach nicht möglich, mehr als ein Profil zu erstellen, obwohl auf den...
von Ellen
2
245
13.12.2009, 15:35
Ellen
BMW F30 Verstärker funktioniert nicht
Hallo alle zusammen, ich habe bei meinem BMW F30 mit Standard Sound Ausstattung eine Verstärker samt neuen Kabelbaum nachgerüstet. Also mit einem Ende des Kabelbaumes das audio-Signal bei den Untersitzwoofern auf Fahrer und Beifahrer Seite abgegriffen...
von DavF30
0
163
07.08.2024, 13:47
DavF30
© 2004 - 2025 www.programmierer-forum.de | Communities | Impressum |