Anfänger Frage

Gast #3884829
Lesenswert?

Das ist klar.Ich versuche Programm zu schreiben:
1
import java.io.*;
2

3
public class Bruchfunktion {
4
  
5
  public static void main(String[] args) throws IOException
6
  {
7
    Bruch a =new Bruch ();
8
    Bruch b =new Bruch ();
9
    
10
    
11
    
12
  InputStreamReader isr = new InputStreamReader(System.in);  
13
      BufferedReader br = new BufferedReader(isr);
14
      System.out.print("Geben Sie Zaehler fur bruch a : ");
15
      String eingabe = br.readLine();
16
      a.zaler = Integer.parseInt(eingabe);
17
      
18
      
19
      
20
      do  // do schleife ,weil Nenner von Bruch a  darf nicht 0 sein
21
      {
22
        /*   Testatureingabe von Nenner für bruch a       */
23

24
      InputStreamReader isr1 = new InputStreamReader(System.in);  
25
      BufferedReader br1 = new BufferedReader(isr1);
26
      System.out.print("Geben Sie Nenner fur bruch a : ");
27
      String eingabe1 = br1.readLine();
28
      a.nenner = Integer.parseInt(eingabe1);
29
      }
30
      while(a.nenner==0);
31
      
32
        /*funktion ausgeben bruch a */
33
        
34
      a.ausgeben(a);
35
     
36
    
37
     /*  Testatureingabe von Zähler fur bruch b       */
38

39
      InputStreamReader isr2 = new InputStreamReader(System.in);  
40
      BufferedReader br2 = new BufferedReader(isr2);
41
      System.out.print("Geben Sie Zaehler fur bruch b : ");
42
      String eingabe2 = br2.readLine();
43
      b.zaler = Integer.parseInt(eingabe2);
44
      
45
      do// do schleife ,weil Nenner von Bruch b  darf nicht 0 sein
46
      {
47
        /*   Testatureingabe von Nenner für bruch b       */
48

49
      InputStreamReader isr3 = new InputStreamReader(System.in);  
50
      BufferedReader br3 = new BufferedReader(isr3);
51
      System.out.print("Geben Sie Nenner fur bruch b : ");
52
      String eingabe3 = br3.readLine();
53
      b.nenner = Integer.parseInt(eingabe3);
54
      }
55
      while(b.nenner==0);
56
      
57
      a.multiplizieren(a, b);
58
      
59
      
60
    a.ausrechnen( a);
61
      /*  Ausgabe mit dem Ergebnis ausrechnen(Bruch a)            */
62
    System.out.println("Bruch a  in double ist:"  +a.zaler+"/"+a.nenner+"=" +a.ausrechnen( a));
63

64
    }
65

66
}
67

68
public class Bruch {
69
  public long zaler;
70
  public long nenner;
71
  
72
  
73
  public static void ausgeben(Bruch a)
74
  {
75
    System.out.println("Bruch a ist:"+a.zaler+"/"+a.nenner);
76
  }
77
  
78
  public static Bruch   multiplizieren(Bruch a,Bruch b)
79
  {
80
    /* Ausgabe  als Bruche               */
81
    
82
   ?????????????Was soll ich zum Beispiel hier schreiben?
83
    
84
      return (?????); und hier? Ich will bruch zurückgeben
85

86
  }
87
  public String Ergebnis() 
88
  {
89
    return zaler+"/"+nenner;
90
  }
91
  public static double ausrechnen(Bruch a)
92
  {
93
    
94
     double bruch_a=(double) a.zaler/(double)a.nenner;
95
     return(bruch_a);
96
  }
97
}
Gast #3884849
Lesenswert?

public static Bruch   multiplizieren(Bruch a,Bruch b)
  {
    /* Ausgabe  als Bruche               */

   ?????????????Was soll ich zum Beispiel hier schreiben?

      return (Bruch); So ?

  }

Bruch soll so aussehen 3/5 wenn ich Bruch darein schreibe kommt bei mir 
folgende Fehlermeldung:  Bruch cannot be resolved to a variable
Gast #3884901
Lesenswert?

Ich empfehle das Studium einem Mathe Buch und einem Java Buch.
1
public static Bruch   multiplizieren(const Bruch a,const Bruch b)
2
  {
3
     Bruch ergebnis = new Bruch();
4

5
      ergebnis.zaler = unheimlich komplizierte berechnung; // siehe Mathe Buch
6
      ergebnis.nenner = unheimlich komplizierte berechnung; // siehe Mathe Buch
7

8
      return (ergebnis);
9
  }
Gast #3884921
Lesenswert?

Mathe schrieb:
> Ich empfehle das Studium einem Mathe Buch und einem Java Buch.
> public static Bruch   multiplizieren(const Bruch a,const Bruch b)
>   {
>      Bruch ergebnis = new Bruch();
>
>       ergebnis.zaler = unheimlich komplizierte berechnung; // siehe
> Mathe Buch
>       ergebnis.nenner = unheimlich komplizierte berechnung; // siehe
> Mathe Buch
>
>       return (ergebnis);
>   }

So was könnte ich selber machen du genie.Diefrage ist wie man dass 
Ausgibt damit wie ein Bruch aussieht.

System.out.println(a.multiplizieren(a, b));

Ergebnis:Bruch@1186fab
Gast #3884971
Lesenswert?

Irgendwie komme ich mir verarscht vor!

DU SOLLST DIE METHODE "ausgeben" AUFRUFEN!!!!!!!!!!!!!

Versuch es mal so:

System.out.println(Bruch.ausgeben(Bruch.multiplizieren(a, b)));

Kauf dir ein Java Buch und lese es auch.
#3885487
Lesenswert?

Erik Werner schrieb:
> Mathe schrieb:
>> Dann ruf doch einfach DEINE Methode "ausgeben" auf, du Genie!
>
> Danke habe ich schon kommt so was:
> System.out.println(a.multiplizieren(a, b));
>
> Ergebnis:Bruch@1186fab

Ist klar. println erwartet als Parameter einen String. Was passiert, 
wenn du deine Bruchklasse übergibst? Diese wird automatisch in einen 
String umgewandelt. Dafür gibt es die Methode toString, die in eigenen 
Klassen überschrieben werden kann. toString wird aufgerufen, wenn das 
Objekt in einen String umgewandelt werden muss und muss einen passenden 
String zurückliefern. Wie überschreibt man diese Methode? So:
1
class Bruch {
2
//...
3
@Override
4
public String toString() {
5
    return "Bruch a ist:" + this.zaler + "/" +this.nenner;
6
//...
7
}

Allerdings hast du ein ganz anderes Problem. Du verwendet ziellos 
statische Methoden (static). In einer Klasse wie deiner Bruchklasse 
ergibt dies keinen Sinn. Lasse also innerhalb dieser Klasse alle 
static-Angaben weg, und mach dir klar, was das bedeutet.

So sehe das ganze etwas besser aus:
1
public class Bruch {
2
    public int zaehler,nenner;
3
    
4
    public Bruch multiplizieren(Bruch multiplyWith) {
5
        Bruch Ergebnis = new Bruch();
6
        Ergebnis.nenner = this.zaehler * multiplyWith.zaehler;
7
        Ergebnis.nenner = this.nenner * multiplyWith.nenner;
8
        return Ergebnis;
9
    }
10
    
11
    public double toDouble() {
12
        return this.zaehler / this.nenner;
13
    }
14
    
15
    @Override
16
    public String toString() {
17
        return this.zaehler + "/" + this.nenner;
18
    }
19
}

Betonung liegt auf "etwas". Das die Variablen zahler und nenner public 
sind, ist nicht schön. Außerdem habe ich mir dir Freiheit genommen, 
deine Methode ausrechnen umzubenennen. Denn sie rechnet nicht einfach 
etwas aus, sondern konvertiert den Inhalt der Klasse in ein double.

Und wenn du ernsthaft Java lernen willst, besorg dir ein vernünftiges 
Buch. Ich persönlich würde dir das Javabuch von Guido Krüger empfehlen. 
Didaktisch recht gut, allerdings habe ich keine Ahnung, ob du mit deinem 
Kentnisstand daraus Nutzen ziehen wirst.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren