einfache Frage zu Klassen

Status
Nicht offen für weitere Antworten.

Spin

Top Contributor
Hallo Leute:

Code:
 static int berechne(int x,int y)
    {
        
       int summe = x+y;
        return summe;
    }



Habe ich die Möglichkeit den Code so zu schreiben , das ich alle einfachen berechnungen ( Addition, Subtr., Multipl., Div.)
in eine Klasse unterbringen kann?

bsp.:

static int berechne(int x,int y)
{

int summe = x+y;
int summe2 = x-y;

return summe;
}[/code]




Oder muss ich für jede berechnung eine neue Klasse eröffnen? Dann habe ich zumindest keine Probleme mit der Namensvergebung.

Bin auch am überlegen, wie x und y hier einlesen lasse. Und ob man hier schon mit switch und case arbeiten kann.
Kann mir da mal einer nen Tipp geben?


danke




Code:
import java.math.*;
import java.io.*;
public class Taschenrechernallinall {
    
    // PI , Die Kreiszahl Pi=3,14...
    // E, Die Eulersche Zahl e=2,71...
      


    
    static int addition(int x,int y)
    {
        
       int summe = x+y;
        return summe;
    }
     static int subtraktion(int x,int y)
    {
        
       int summe = x-y;
        return summe;
    }
     static int multiplikation(int x,int y)
    {
        
       int summe = x*y;
        return summe;
    }
     static int division(int x,int y)
     {
         if(x%y !=0)
         {
          int summe = x/y;
          int rest =x%y;
         
     
        
         }    return summe;
     }
     
    
     
     
     void print()
     {
     System.out.println("Herzlich Willkommen");
     }
     
     
     
     
     void print1()
     {
         System.out.println ("Wählen Sie die gewünschte Rechenoperation:" +
                            "\t" + "1:Addieren" +
                            "\t" + "2:Subtrahieren" +
                            "\t" + "3:Multiplizieren" +
                            "\t" + "4:Dividieren" +
                            "\n" + "5:Quadratwurzel" +
                            "\t" + "6: Logarithmus" +
                            "\t" + "7: e hoch zahl1" +
                            "\t" + "8: Cosinus (Bogenmaß angeben)" +
                            "\t" + "9: zahl1 hoch zahl2" +
                            "\t" + "10: Sinus (Bogenmaß angeben");
     }
        
      
       static int switchen(int auswahl)
       {
            switch (auswahl){
              
                case 1: int summe = addition(3,4);
                System.out.println("Ergebnis:" + (summe));
                
                break;
               
                case 2:  summe = subtraktion(3,4);
                System.out.println("Ergebnis:" + (summe));
                
                break;
               
               case 3:summe = multiplikation(3,4);
               System.out.println("Ergebnis:" + (summe));
                
                break;
              
               case 4: System.out.println("Bitte bei Division ganze Zahlen eingeben:");
               summe = division(3,4);
               System.out.println("Ergebnis:" + (summe));
                
                break;
            }
       return summe;
       }
       
    
    public static void main(String[] args) throws IOException {
        // TODO code application logic here
   
   //Einlesemethode     
   BufferedReader eingabe = new BufferedReader(new InputStreamReader(System.in));
    int x = Integer.parseInt(eingabe.readLine());
    int y = Integer.parseInt(eingabe.readLine());
   
    
     
    Taschenrechernallinall a = new Taschenrechernallinall();

      a.print();

      
   }

}


Ich habe mich mal wieder ein wenig weiter versucht, doch sind einige Fehler enthalten.

Bei "switchen" und "division", sagt mir meine Umgebung: Missing return statement.
Doch wenn ich mein return in den Klammer setze, dann wird summe nicht mehr erkannt :(


Weiter: Wie kann ich die Zahlen einlesen lassen. Das Programm macht Probleme , wenn ich anstat den festen werten ( hier 3,4) x und y einsetze.


Es wäre toll wenn mir hier jemand paar tipps gibt :)
Dann kann ich weiter machen.

Der Rechner soll sehr groß werden.


Noch alle mathematischen Formeln, Bubble sort und eine Uhrzeit ausgabe, bei eingabe von Datum oder so.
Das kann ich ja dann später mit equals machen.

Danke für eure Hilfe.
 

Murray

Top Contributor
Eine Methoden hat nur einen Return-Wert; wenn Du jetzt in der Methode verschiedene Berechnungen machst, dann gint es ja mehrere Ergebnisse, so dass Du mit einem int nicht mehr auskommst.

Eine neue Klasse muss es für jede Berechnung ja nicht sein; eine neue Methode reicht doch.
 

Murray

Top Contributor
War der Code eben auch schon da? Na, egal.

Bei der Division musst in jedem syntaktisch möglichen Ausführungszweig ein return-Statement stehen.

Was versuchst Du mit der Bedingung überhaupt zu erreichen? Lass die doch einfach weg; der Rest wird dann einfach 0. Allerdings solltest Du Dir noch überlegen, was Du mit dem Rest anfangen willst; zurückgegeben wird momentan ja nur das ganzzahlige Ergebnis (was man nicht "summe" nennen sollte, sondern besser "quotient").
 

Spin

Top Contributor
OK, dann schreibe ich das bei subtraktion und multiplikation und division um.

Also Produkt und Quotient.


Ich versuch auch mal was um die Zahlen einlesen zu lassen !
Und wo wie ich es bisher gemacht habe, habe ich nur eine Klassen und klassenmethoden delariert.
Den Code habe ich vorhin dazu editiert um euch zu zeigen , was ich meine und wie ich meine Aufgabe angehe.

wenn ich :

public static int berechne(int a, int b, int c, int d )

{

int summe = a-b;
int produkt= c*d;

return summe;
return produkt;
}


geht das?

Ich denke das ich da Probleme haben werde mit dem aufrufen.

Naja bei der Division, will ich erreichen, das man nicht durch Null teilen darf !
 

Ark

Top Contributor
Was auch immer das für ein Code ist: Er erinnert stark an BASIC-Versuche und hat mit Objektorientierung Null am Hut.

--> Vergiss den Ansatz. Lies ein Buch über OO.

Ark
 

Spin

Top Contributor
Ich erhoffe mir hier natürlich hilfe und ansätze ...doch es wird mir immer bewusster, dass anfänger hier nicht willkommen sind.


Vergisst das Thema und ich werde mein Account hier löschen. Mir bringt es nichts, wenn mir leute schreiben: "Lese ein Buch".

Schon mal gehört, das man anhand von Problemstellungen lernt ?
Wenn ich so arrogant, wie einige User hier im Forum , durch die Welt stolzieren würde.....
 

Murray

Top Contributor
Spin hat gesagt.:
Den Code habe ich vorhin dazu editiert um euch zu zeigen , was ich meine und wie ich meine Aufgabe angehe.

Mach dazu lieber einen neuen Post, wenn schon Antworten da sind, sonst verwirrt das.
 

Murray

Top Contributor
Spin hat gesagt.:
public static int berechne(int a, int b, int c, int d )

{

int summe = a-b;
int produkt= c*d;

return summe;
return produkt;
}


geht das?

Das geht nicht, weil - wie vorhin schon geschrieben - Methoden nur einen Wert zurückliefern dürfen. Die return-Anweisung beendet die Methode, danach passiert nichts mehr. Und deshalb wird in Deinem Fall schon der Compiler dieses Konstrukt nicht zulassen.
 

Murray

Top Contributor
Spin hat gesagt.:
Naja bei der Division, will ich erreichen, das man nicht durch Null teilen darf !
Aber mit
Code:
if(x%y !=0)
wird geprüft, ob der ganzzahlige Rest der Divsion von x durch y von 0 verschieden ist. Wenn jetzt y = 0 ist, fliegt genau so eine Exception, als wenn Du x / y schreibst. Wenn Du das schon abfangen willst, dann müsste es
Code:
if (y != 0)
heißen.
 

Murray

Top Contributor
Spin hat gesagt.:
Ich erhoffe mir hier natürlich hilfe und ansätze ...doch es wird mir immer bewusster, dass anfänger hier nicht willkommen sind.


Vergisst das Thema und ich werde mein Account hier löschen. Mir bringt es nichts, wenn mir leute schreiben: "Lese ein Buch".

Schon mal gehört, das man anhand von Problemstellungen lernt ?
Wenn ich so arrogant, wie einige User hier im Forum , durch die Welt stolzieren würde.....

Schaff Dir mal ein etwas dickeres Fell an, dann wirst Du hier schon weiter kommen. :wink:
 

ARadauer

Top Contributor
Code:
int summe = a-b;
nein summe.. da muss man + rechnen ;-)

du willst einen großen taschenrechner mit vielen operationen machen? schau dir das command pattern an
 

Spin

Top Contributor
huhu ,


ich darf leider keinen Taschenrechner bauen, der mit Feldern zu tun hat.
Das soll alles im Laufzeitfenster passieren.


ich habe meinen Programmcode nun geändert.

Code:
import java.util.*;
import java.lang.*;
import java.io.*;
public class Taschenrechernallinall {
    
    // PI , Die Kreiszahl Pi=3,14...
    // E, Die Eulersche Zahl e=2,71...
 

 BufferedReader eingabe = new BufferedReader(new InputStreamReader(System.in));
   float zahl1;
   float zahl2;
   double ergebnis;
   String Eingabe2;

   public Taschenrechernallinall() {
     BufferedReader eingabe = new BufferedReader(new InputStreamReader(System.in));
   }

   public void run() {
      System.out.println("Die Zahlen mit 'echtem' (--> , )Komma eingeben!!!");
      System.out.println(" ");
try{
      do {
         System.out.print("1. Zahl eingeben: ");
         zahl1 = Float.parseFloat(eingabe.readLine());
         System.out.print("Operator eingeben: ");
         char operator;
         Eingabe2 =eingabe.readLine();
         operator = Eingabe2.charAt(0);
         System.out.print("2. Zahl eingeben: ");
         zahl2 = Float.parseFloat(eingabe.readLine());

         switch (operator) {
            case '+': ergebnis = zahl1 + zahl2;
                 break;
            case '*': ergebnis = zahl1 * zahl2;
                 break;
            case '-': ergebnis = zahl1 - zahl2;
                 break;
            case '/': ergebnis = zahl1 / zahl2;
                 break;
         } // switch
               
         System.out.println(ergebnis);
      }
      while (true); // endlosschleife!!!
}
catch (IOException e)

{}

        // Hier wäre es sicher schön, wenn man gezielt z. B. durch
      // drücken von 'q' (für Quit) das Programm verlassen könnte.
      // Sind nur 3 Zeilen! Die Methode dafür wurde auch schon benutzt. :-)

   } // run

   public static void main(String[] args) throws IOException{
      Taschenrechernallinall calcu = new Taschenrechernallinall();
      calcu.run();
   } // main

} // Calculator




Ich baue den später noch weiter aus. Mach aber nun digitaltechnik ;)
Danke an die lieben User, die mir helfen und nicht nur auf bücher verweisen.

Ich denke das ich das Thema wieder aufrufen werde.

Die Übung ist prüfungsleistung und soll aufjeden fall return noch enthalten und Math, funktionen.


Ganz nett wäre auch noch , wenn ich ein Bubblesort integriere , der ergebnisse sortiert.
gruß spin.
 

Spin

Top Contributor
Code:
import java.lang.*;
import java.io.*;
public class Taschenrechernallinall {
    
    // PI , Die Kreiszahl Pi=3,14...
    // E, Die Eulersche Zahl e=2,71...
 

   BufferedReader eingabe = new BufferedReader(new InputStreamReader(System.in));
   float zahl1;
   float zahl2;
   double ergebnis;
   String Eingabe2;
   int zahl3;
   int zahl4;
   int ergebnis1;
   int ergebnis2;


   public Taschenrechernallinall() {
     BufferedReader eingabe = new BufferedReader(new InputStreamReader(System.in));
   }

 public static float addieren(float x, float y)
 {
     float summe = x+y;
     
     return summe;
 }

public static float subtrahieren(float x, float y)
{
    float differenz = x-y;
    
    return differenz;
}

public static float multiplizieren(float x, float y)
{
    float produkt = x*y;
    
    return produkt;
}
public static float dividieren(float x, float y)
{
    float quotient = x/y;
    
    return quotient;
}

public static int dividieren3(int x, int y)
{
    int quotient = x/y;
    
    return quotient;
}

public static int dividieren2(int x, int y)
{
    
  int rest = x%y;
  return rest;
   
}


   public void run() {
      System.out.println("Die Zahlen mit 'echtem' (--> . )Punkt eingeben!!!");
      System.out.println(" ");
try{
      do {
         System.out.print("1. Zahl eingeben: ");
         zahl1 = Float.parseFloat(eingabe.readLine());
         System.out.print("Operator eingeben: ");
         char operator;
         Eingabe2 =eingabe.readLine();
         operator = Eingabe2.charAt(0);
         System.out.print("2. Zahl eingeben: ");
         zahl2 = Float.parseFloat(eingabe.readLine());

         switch (operator) {
            case '+': ergebnis = addieren(zahl1,zahl2);
                 break;
            case '*': ergebnis = multiplizieren(zahl1,zahl2);
                 break;
            case '-': ergebnis = subtrahieren(zahl1,zahl2);
                 break;
            case '/': System.out.println("Bitte wählen Sie bei der Division zwischen 1(Floatdivision) oder 2(Integerdivision +Rest)");
                      int auswahl = Integer.parseInt(eingabe.readLine());
                      
                      if(auswahl == 1)
                      {   ergebnis = dividieren(zahl1,zahl2); // Division float
                      }
                      else if(auswahl==2)
                      { System.out.println("Bitte überprüfen Sie ihre Eingabe!" + "Ganze Zahlen werden erwartet!");
                        System.out.println("Zahl 1 eingeben: ");
                        zahl3 = Integer.parseInt(eingabe.readLine());
                         System.out.println("Zahl 2 eingeben: ");
                         zahl4 = Integer.parseInt(eingabe.readLine());
                         ergebnis2= dividieren3(zahl3,zahl4);// Division Integer
                         ergebnis1 = dividieren2((zahl3),(zahl4)); // Rest
                         System.out.println("Ergebnis:  " + ergebnis2 +" "+"mal teilbar" + ", "+"Rest " + ergebnis1);}
                      else
                          System.out.println("Sie haben keine  1  oder 2 eingegeben");

                     break;
            // case '%':  ergebnis = dividieren2(((int)zahl1),((int)zahl2));
         } // switch
               
         System.out.println(ergebnis);
      }
      while (true); // endlosschleife!!!
}
catch (IOException e)

{}

        // Hier wäre es sicher schön, wenn man gezielt z. B. durch
      // drücken von 'q' (für Quit) das Programm verlassen könnte.
      // Sind nur 3 Zeilen! Die Methode dafür wurde auch schon benutzt. :-)

   } // run

   public static void main(String[] args) throws IOException{
      Taschenrechernallinall calcu = new Taschenrechernallinall();
      calcu.run();
   } // main

} // Calculator





Hallo Leute, ich habe meinen Taschenrechner ein wenig verändert. Und die Funktionen ausgelagert.
Ich habe jedoch ein Problem mit dem casten.



Die Division funktioniert nun sehr gut , ist doch wahnsinnig lang.
Ich würde gerne das man den Floatwert in einen Integer umwandelt , um die Modulo funktion auf zahl1 und zahl 2 anwenden zu können.

Ich habe nun extra integer werte : zahl 3 und zahl 4 erstellen müssen.

Weiterhin, wenn ihr mir sagt wie man das casten kann, brauch ich auch einen tip in der methode division 2 und 3.
Denn ich muss ja extra die division als Integer deklarieren ! Damit er es akzeptiert.



Ah da fällt mir ein , bei der Division innerhalb der division methode , wollte ich noch eine if bedingung schreiben, doch hat er probleme mit der return anweisung :(


gruß spin
[/quote]
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
H Einfache Frage zur Punktnotation objektname.methode(wert) Java Basics - Anfänger-Themen 2
B Threads Thread sleep() Method einfache Frage Java Basics - Anfänger-Themen 8
O Ganz einfache Frage - Array Java Basics - Anfänger-Themen 5
J Einfache Frage zu "null" Java Basics - Anfänger-Themen 2
X Einfache Frage; wie soll ich die spezielle float var speichern? Java Basics - Anfänger-Themen 2
Z Super einfache Frage For-Schleife im Detail Java Basics - Anfänger-Themen 3
E einfache Frage zu private Java Basics - Anfänger-Themen 26
Spin Einfache Anfänger Frage setVisible von Panels Java Basics - Anfänger-Themen 5
E Einfache Frage zur Parameterübergabe in Methoden Java Basics - Anfänger-Themen 8
D Wohl eine einfache Frage... Java Basics - Anfänger-Themen 2
F Vererbung (einfache Frage) Java Basics - Anfänger-Themen 5
M einfache frage zum Jdk-Compiler Java Basics - Anfänger-Themen 3
A Einfache Frage zur Mehrfachvererbung Java Basics - Anfänger-Themen 3
L MVC-einfache frage Java Basics - Anfänger-Themen 13
monsterherz einfache Methode mit Fehler den ich nicht finde Java Basics - Anfänger-Themen 21
I Erste Schritte Einfache Datenbank-Webseite erstellen als Nicht-IT-lerin Java Basics - Anfänger-Themen 24
B Einfache OCR zur Zahlenerkennung? Java Basics - Anfänger-Themen 6
M Einfache Datenfilterung Java Basics - Anfänger-Themen 15
D Beim Programmieren auf die Logisch einfache Lösung kommen. Java Basics - Anfänger-Themen 17
B Einfache HSQLDB? (lock acquisition failure) Java Basics - Anfänger-Themen 2
E Einfache Java Verschlüsselung Java Basics - Anfänger-Themen 4
J Einfache pub/sub Lösung mit ausführlicher Doku Java Basics - Anfänger-Themen 5
R Gibt es Eine einfache Programierung dieser Methoden Java Basics - Anfänger-Themen 8
K einfache Kombinatorik Java Basics - Anfänger-Themen 4
M Erste Schritte Einfache Aufzugssteuerung programmieren - Anfänger Java Basics - Anfänger-Themen 2
D Eine einfache Verschlüsselung schreiben Java Basics - Anfänger-Themen 3
B in einem abstrakten Set ,Elemente einer einfache verkettete List epeichern Java Basics - Anfänger-Themen 13
J Einfache einbindung eines Bildes in ein Applet Java Basics - Anfänger-Themen 4
D Klassen Gesucht: Einfache Beispiel-Klasse für einen Datentyp Java Basics - Anfänger-Themen 7
K Möglichkeiten um eine einfache Animation darzustellen Java Basics - Anfänger-Themen 7
L Einfache Lineare Suche Java Basics - Anfänger-Themen 7
P Erste Schritte Einfache For Schleife Java Basics - Anfänger-Themen 10
M Einfache Java Operation, cheggs net Java Basics - Anfänger-Themen 2
V Erste Schritte Einfache Rechnung mit Exponenten Java Basics - Anfänger-Themen 3
G einfache Leet-Übersetzung implementieren und benutzen Java Basics - Anfänger-Themen 14
M Einfache und Doppelte Operatoren Java Basics - Anfänger-Themen 3
E Einfache For-Schleife macht nicht was sie soll Java Basics - Anfänger-Themen 2
shiroX OOP Türme von Hanoi - einfache grafische Ausgabe Java Basics - Anfänger-Themen 2
C Extrem einfache Aufgabe falsch beantwortet :$ Java Basics - Anfänger-Themen 6
N Potenzierung durch einfache Operatoren Java Basics - Anfänger-Themen 13
H Einfacher Editor, Einfache Handelsanweisungen Java Basics - Anfänger-Themen 2
H Sehr einfache Java-Programme Java Basics - Anfänger-Themen 24
H Einfache Client/Server-Kommunikation Java Basics - Anfänger-Themen 16
-horn- Einfache graphische Darstellung von 3D Koordinaten für Flugbahnen? Java Basics - Anfänger-Themen 4
B Einfache jsp Seite darstellen Java Basics - Anfänger-Themen 9
G Einfache if-Abfrage der Main-Argumente Java Basics - Anfänger-Themen 3
J Einfache Designfrage Java Basics - Anfänger-Themen 4
R Methoden Einfache Loops? Java Basics - Anfänger-Themen 8
R Sehr einfache möglichkeit ArrayList oder Array zu initialisieren? Java Basics - Anfänger-Themen 8
F Einfache Klassen für Datum und Zeit Java Basics - Anfänger-Themen 3
E OOP einfache Array Aufgabe mit jUnit Java Basics - Anfänger-Themen 5
D einfache Quizfrage programmieren Java Basics - Anfänger-Themen 11
B Einfache Applets für Webseite Java Basics - Anfänger-Themen 10
K Einfache Rekursion - Wert wird nicht in Variable gespeichert Java Basics - Anfänger-Themen 7
U Einfache Aufgabe Java Basics - Anfänger-Themen 5
M einfache Übungsaufgaben gesucht Java Basics - Anfänger-Themen 7
M Einfache Rechnung(R=U/I) Java Basics - Anfänger-Themen 12
W Einfache Passwortabfrage funktioniert nicht Java Basics - Anfänger-Themen 3
P einfache GUI-Elemente Java Basics - Anfänger-Themen 10
S 2 Einfache Fragen (Exception Breakpoint, Konstruktor) Java Basics - Anfänger-Themen 4
L einfache Klasse erstellen Java Basics - Anfänger-Themen 16
M kleine und einfache Verständnisfrage Java Basics - Anfänger-Themen 3
P Einfache Bedingung (?) in Java Java Basics - Anfänger-Themen 3
W Einfache Rekursion Java Basics - Anfänger-Themen 14
T Einfache Textausgabe .java unter OS X Java Basics - Anfänger-Themen 13
B einfache Rekursion Java Basics - Anfänger-Themen 9
A [Hilfe] einfache Aufgabe Java Basics - Anfänger-Themen 26
A Einfache java Verschlüsselung HILFE Java Basics - Anfänger-Themen 3
M einfache java application Java Basics - Anfänger-Themen 4
S Kann einfache Texteingabe nicht auswerten! Java Basics - Anfänger-Themen 3
J einfache Tastendrücke in einem JFrame abfragen Java Basics - Anfänger-Themen 2
C "einfache" If-Abfrage Java Basics - Anfänger-Themen 15
H Einfache Ausgabe eines Arrays in einen File Java Basics - Anfänger-Themen 8
F Einfache Liste hinten was einfügen Java Basics - Anfänger-Themen 3
L Einfache Umrechnung Java Basics - Anfänger-Themen 2
D Einfache Funktion zum kaufmännischen runden Java Basics - Anfänger-Themen 8
K einfache Multiplikation Java Basics - Anfänger-Themen 6
S Einfache Rechnung mit Schleife Java Basics - Anfänger-Themen 10
G einfache Swing-GUI Java Basics - Anfänger-Themen 3
F Einfache Tastatureingabe Java Basics - Anfänger-Themen 2
L [gelöst] Einfache Aufgabe, läuft aber nicht. Java Basics - Anfänger-Themen 8
S "einfache Klassengeschichten" keine Fehler, läuft Java Basics - Anfänger-Themen 2
R Einfache MVC-Uhr. MVC richtig umgesetzt? [Überarbeitet] Java Basics - Anfänger-Themen 5
G Einfache Berechnung liefert falsches Ergebnis Java Basics - Anfänger-Themen 2
J eine einfache liste Java Basics - Anfänger-Themen 17
D Suche einfache Übungsaufgaben für den JavaCreator! Java Basics - Anfänger-Themen 5
R Einfache Messagebox Java Basics - Anfänger-Themen 9
N einfache Adressdatenbank in Textdatei Java Basics - Anfänger-Themen 8
I einfache Wiedergabe Java Basics - Anfänger-Themen 2
B Warum hat dieser einfache Algorithmus lineare Laufzeit? Java Basics - Anfänger-Themen 3
U "Einfache Verschlüsselung" Java Basics - Anfänger-Themen 17
K einfache Umfang und Flächenberechnung mit interfaces Java Basics - Anfänger-Themen 3
M Einfache HTML Mail versenden , suche Beispiel Java Basics - Anfänger-Themen 5
M einfache schleife Java Basics - Anfänger-Themen 7
M Einfache Schleife Java Basics - Anfänger-Themen 4
Zrebna Frage zu Test-Driven Development (TDD) Java Basics - Anfänger-Themen 3
I Frage Thymeleaf -> Fehler ignorieren und mit "" ersetzen? Java Basics - Anfänger-Themen 15
I Frage Thymeleaf -> Prefix / Suffix ändern? Java Basics - Anfänger-Themen 11
D Rekursions Probleme / frage Java Basics - Anfänger-Themen 4
T Frage zu Parse Java Basics - Anfänger-Themen 2

Ähnliche Java Themen

Neue Themen


Oben