Ergebnis 1 bis 2 von 2

Thema: Java Hilfe bei Bruch

  1. #1
    HTML Newbie
    Registriert seit
    04.11.2006
    Beiträge
    5
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard Java Hilfe bei Bruch

    So ich gebe 2 Brüche ein und lasse diese Addieren/Subtrahieren. Ausgegeben werden soll eine rationale Zahl. Hab damit nur ein Problem, wenn der erste Bruch kleiner ist als der zweite spinnt meine Subtraktion und ich erhalte kein Ergebnis.

    Code:
    public class Rational {
    	private double zaehler;
    
    	private double nenner;
    
    	// Konstruktor
    
    	void rational(double z, double n) {
    		zaehler = z;
    		nenner = n;
    		}
    	// Addition
    	
    	public Rational addition(Rational bruch2) {
    		Rational ergebnis = new Rational();
    		ergebnis.zaehler = zaehler * bruch2.nenner + bruch2.zaehler * nenner;
    		ergebnis.nenner = nenner * bruch2.nenner;
    		return ergebnis.kuerzen();
    	}
    
    	// Subtraktion
    
    	public Rational subtraktion(Rational bruch2) {
    		Rational ergebnis = new Rational();
    		ergebnis.zaehler = zaehler * bruch2.nenner - bruch2.zaehler * nenner;
    		ergebnis.nenner = nenner * bruch2.nenner;
    		return ergebnis.kuerzen();
    	}
    
    	// Ausgabe
    	
    	public String toString() {
    		String Ausgabe = new String();
    		Ausgabe = zaehler + "/" + nenner;
    		return Ausgabe;
    	}
    
    	// Kürzen
    
    	private Rational kuerzen() {
    		double iGrößer, iKleiner, iErgebnis = 0;
    		boolean bStart = true;
    
    		Rational ergebniss = new Rational();
    
    		iGrößer = &#40;nenner < zaehler ? zaehler &#58; nenner&#41;;
    		if &#40;iGrößer == nenner&#41; &#123;
    			iKleiner = zaehler;
    		&#125; else &#123;
    			iKleiner = nenner;
    		&#125;
    		while &#40;iErgebnis != iKleiner&#41; &#123;
    			if &#40;!bStart&#41; &#123;
    				if &#40;iKleiner < iErgebnis&#41; &#123;
    					iGrößer = iErgebnis;
    				&#125; else &#123;
    					iGrößer = iKleiner;
    					iKleiner = iErgebnis;
    				&#125;
    			&#125; else &#123;
    				bStart = false;
    			&#125;
    			iErgebnis = iGrößer - iKleiner;
    		&#125;
    
    		ergebniss.zaehler = zaehler / iErgebnis;
    		ergebniss.nenner = nenner / iErgebnis;
    
    		return ergebniss;
    	&#125;
    
    	public static void main&#40;String&#91;&#93; args&#41; &#123;
    		Rational bruch1 = new Rational&#40;&#41;;
    		Rational bruch2 = new Rational&#40;&#41;;
    		bruch1.rational&#40;14, 3&#41;;
    		bruch2.rational&#40;4, 5&#41;;
    		
    		System.out.println&#40;"Ergebnis der Addition beträgt&#58; "
    				+ bruch1.addition&#40;bruch2&#41;&#41;;
    		System.out.println&#40;"Ergebnis der Subtraktion beträgt&#58; "
    				+ bruch1.subtraktion&#40;bruch2&#41;&#41;;
    		
    	&#125;
    &#125;
    Ich denke mal das liegt daran das ein negatives Ergebnis nicht ausgegeben werden kann. Wie kann ich das am leichtesten beheben?
    Achtung: Dies ist ein alter Thread im HTML und Webmaster Forum
    Diese Diskussion ist älter als 90 Tage. Die darin enthaltenen Informationen sind möglicherweise nicht mehr aktuell. Erstelle bitte zu deiner Frage ein neues Thema im Forum !!!!!

  2. #2
    Teeny
    Registriert seit
    14.11.2006
    Beiträge
    30
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard

    Hi.

    So sollte es klappen. Du musst das negative Vorzeichen zunächst entfernen und dann die Berechnung vornehmen. Danach erst das Vorzeichen wieder hinzufügen.

    Gruß
    Ken

    Code:
    public class Rational &#123;
       private double zaehler;
    
       private double nenner;
       private boolean negative = false;
       // Konstruktor
    
       void rational&#40;double z, double n&#41; &#123;
          zaehler = z;
          nenner = n;
          
          &#125;
       // Addition
       
       public Rational addition&#40;Rational bruch2&#41; &#123;
          Rational ergebnis = new Rational&#40;&#41;;
          ergebnis.zaehler = zaehler * bruch2.nenner + bruch2.zaehler * nenner;
          ergebnis.nenner = nenner * bruch2.nenner;
          return ergebnis.kuerzen&#40;&#41;;
       &#125;
    
       // Subtraktion
    
       public Rational subtraktion&#40;Rational bruch2&#41; &#123;
          Rational ergebnis = new Rational&#40;&#41;;
         ergebnis.zaehler = zaehler * bruch2.nenner - bruch2.zaehler * nenner;
          ergebnis.nenner = nenner * bruch2.nenner;
          if &#40;ergebnis.zaehler<0&#41; &#123;
        	  ergebnis.negative = true;
        	  ergebnis.zaehler = ergebnis.zaehler-ergebnis.zaehler*2;
          &#125;
          return ergebnis;
       &#125;
    
       // Ausgabe
       
       public String toString&#40;&#41; &#123;
          String Ausgabe = new String&#40;&#41;;
          Ausgabe = zaehler + "/" + nenner;
          return Ausgabe;
       &#125;
    
       // Kürzen
    
       private Rational kuerzen&#40;&#41; &#123;
          double iGrößer, iKleiner, iErgebnis = 0;
          boolean bStart = true;
    
          Rational ergebniss = new Rational&#40;&#41;;
    
          iGrößer = &#40;nenner < zaehler ? zaehler &#58; nenner&#41;;
          if &#40;iGrößer == nenner&#41; &#123;
             iKleiner = zaehler;
          &#125; else &#123;
             iKleiner = nenner;
          &#125;
          while &#40;iErgebnis != iKleiner&#41; &#123;
             if &#40;!bStart&#41; &#123;
                if &#40;iKleiner < iErgebnis&#41; &#123;
                   iGrößer = iErgebnis;
                &#125; else &#123;
                   iGrößer = iKleiner;
                   iKleiner = iErgebnis;
                &#125;
             &#125; else &#123;
                bStart = false;
             &#125;
             iErgebnis = iGrößer - iKleiner;
             
          
          &#125;
    
          ergebniss.zaehler = zaehler / iErgebnis;
          ergebniss.nenner = nenner / iErgebnis;
    
          return ergebniss;
       &#125;
    
       public static void main&#40;String&#91;&#93; args&#41; &#123;
          Rational bruch1 = new Rational&#40;&#41;;
          Rational bruch2 = new Rational&#40;&#41;;
          bruch1.rational&#40;1, 3&#41;;
          bruch2.rational&#40;4, 5&#41;;
          
          System.out.println&#40;"Ergebnis der Addition beträgt&#58; "
                + bruch1.addition&#40;bruch2&#41;&#41;;
          Rational ergebnis = bruch1.subtraktion&#40;bruch2&#41;;
          System.out.print&#40;"Ergebnis der Subtraktion beträgt&#58; "&#41;;
          if &#40;ergebnis.negative&#41; 
        	  System.out.print&#40;"-"&#41;;
            System.out.println&#40;ergebnis&#41;;
          
       &#125;
    &#125;
    ähhh...... Whatever........

Ähnliche Themen

  1. Java Applet...HILFE!!!
    Von Nemesis im Forum HTML & CSS Forum
    Antworten: 11
    Letzter Beitrag: 14.05.2007, 18:24
  2. Hilfe mit Java Funktion
    Von Soerren im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 0
    Letzter Beitrag: 07.05.2007, 10:48
  3. Java anfängerin braucht Hilfe
    Von Java anfängerin im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 2
    Letzter Beitrag: 29.10.2006, 10:58
  4. Java Hilfe (sound einfügen)
    Von BendOr im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 1
    Letzter Beitrag: 05.09.2006, 13:42
  5. Bein Bruch
    Von Gastilein Sandra im Forum Off Topic und Quasselbox
    Antworten: 7
    Letzter Beitrag: 20.04.2005, 18:07

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •