Potenzberechnung über switch case. Taschenrechner mit Eingabe über einen grafischen Dialog

cocosch

Mitglied
Hallo,
ich komme mit dieser Aufgabe nicht weiter. Ich soll einen Taschenrechner Programmieren mit einer zusätzlichen Potenzberechnung. Der Taschenrechner den ich Programmiert habe, kann bis jetzt Addieren, Subtrahieren, Multiplizieren und Dividieren. Jetzt soll zusätzlich noch eine Potenzberechnung dazu.

Aufgabe:
Der erste eingelesene Wert soll dabei die Basis bilden und der zweite eingelesene Wert den Exponenten. Wenn die Zahlen 2 und 3 eingelesen werden, soll der Taschenrechner also 2³ rechnen. Die Potenz soll durch eine Schleife errechnet werden.

Das habe ich bis jetzt programmiert: Wie kann ich zusätzlich die Potenzfunktion hinzufügen???

Java:
//für das Einlesen
import javax.swing.*;

public class EinsendeAufgabe_03_05 {
 
 
        public static void main(String[] args) {
      
           // Variablen festlegen                 
            double zahl1, zahl2;
            double ergebnis;     
            String operator;
                                                                                                                                                     
            
            // Zahl1 Eingabe über den grafischen Dialog
            zahl1 = Double.parseDouble(JOptionPane.showInputDialog("Geben Sie Sie die erste Zahl ein: " ));
            // Operator Eingabe über den grafischen Dialog
            operator = JOptionPane.showInputDialog(" Geben Sie einen Operator ein ( + ) \t ( - ) \t ( * ) \t ( / ) ");
            // Zahl2 Eingabe über den grafischen Dialog
            zahl2 = Double.parseDouble(JOptionPane.showInputDialog("Geben Sie die zweite Zahl ein: "));
                      
            //Operator Auswahl über switch-case
            switch (operator) {
            case "+":
                ergebnis = zahl1 + zahl2;
                //Ausgabe der Rechnung
                System.out.println("Das Ergebnis Ihrer Rechnung ist: "  + ergebnis);
                break;
            case "-":      
                ergebnis = zahl1 - zahl2;
                System.out.println("Das Ergbnis Ihrer Rechnung ist: " + ergebnis);
                break;
            case"*":
                ergebnis = zahl1 * zahl2;
                System.out.println("Das Ergebnis Ihrer Rechnung ist: " + ergebnis);
                break;
            case"/":
                ergebnis = zahl1 / zahl2;
                System.out.println("Das Ergebnis Ihrer Rechnung ist: "  + ergebnis);
                break;
                                                                                       
                default:
                System.out.println("Sie haben keinen gültigen Rechenoperator eingegeben");
                                  
      System.exit(0);          
      
    }
          
        }
        }
 
Zuletzt bearbeitet von einem Moderator:
K

kneitzel

Gast
Wie berechnet du denn die Potenz mit einer Schleife? Und was für Bedingungen müssen ggf. gelten?

Evtl. überlegst du Dir das am Beispiel von 2 hoch 3 - was müsste eine Schleife da machen?
 

cocosch

Mitglied
Wie berechnet du denn die Potenz mit einer Schleife? Und was für Bedingungen müssen ggf. gelten?

Evtl. überlegst du Dir das am Beispiel von 2 hoch 3 - was müsste eine Schleife da machen?

Die Potenz soll über eine Methode berechnet werden und über eine Schleife. Ich weiß das man das mit einer for-Schleife machen kann, aber ich habe Probleme diese in meinem Programm einzufügen. Das Programm war eine Aufgabe, jetzt soll ich zusätzlich noch eine Potenzberechnung hinzufügen
 

Jw456

Top Contributor
Keiner tipp für deine for schleife. Der zweiten Wert (3) minus 1 ist die Anzahl der Durchläufe der Schleife.

Und welchen Wert musst du multiplizieren um 2 hoch 3 zu bekommen?

 
K

kneitzel

Gast
Kannst du denn die Potenz ausdrücken als eine Wiederholung? Für was steht denn 2 hoch 3? Kannst du das erst einmal beschreiben?

Ich weiss, aber wenn ich das in meinem Code einfüge, läuft nichts mehr. Ich habe schon viel ausprobiert.
Was hast du denn eingefügt? Und was für ein Problem hattest du dann? (Mal davon abgesehen, dass du da dann keine Schleife mehr hast.)
 

cocosch

Mitglied
Java:
import javax.swing.*;

public class EinsendeAufgabe_03_05 {
       
    //Methode zum berechnen einer Potenz
    public static int potenz (int basis, int exponent) {
       
        int potenz = 1 ;      
       
        for (int i =1 ; i<=exponent ; ++i)
           
        {
            potenz = potenz * basis ;          
           
    }
        return potenz;
               
    }  
         
        public static void main(String[] args) {
           
            double zahl1, zahl2;
            double ergebnis;          
            String operator;
                                                                                                                                                         
                 
            // Zahl1 Eingabe über den grafischen Dialog
            zahl1 = Double.parseDouble(JOptionPane.showInputDialog("Geben Sie Sie die erste Zahl ein: " ));
            // Operator Eingabe über den grafischen Dialog
            operator = JOptionPane.showInputDialog(" Geben Sie einen Operator ein:( + ) \t ( - ) \t ( * ) \t ( / ) \t ( n ) ");
            // Zahl2 Eingabe über den grafischen Dialog
            zahl2 = Double.parseDouble(JOptionPane.showInputDialog("Geben Sie die zweite Zahl ein: "));
                           
            //Operator Auswahl über switch-case
       
            switch (operator) {
            case "+":
                ergebnis = zahl1 + zahl2;
                //Ausgabe der Rechnung
                System.out.println("Das Ergebnis Ihrer Rechnung ist: "  + ergebnis);
                break;
            case "-":          
                ergebnis = zahl1 - zahl2;
                System.out.println("Das Ergbnis Ihrer Rechnung ist: " + ergebnis);
                break;
            case"*":
                ergebnis = zahl1 * zahl2;
                System.out.println("Das Ergebnis Ihrer Rechnung ist: " + ergebnis);
                break;
            case"/":
                ergebnis = zahl1 / zahl2;
                System.out.println("Das Ergebnis Ihrer Rechnung ist: "  + ergebnis);
                break;
            case"n":                              
                int potenz(int basis, int exponent);  [B] //Hier wird mir ein Syntax Fehelr angezeigt und somit läuft das Programm nicht.[/B]
                System.out.println("Das Ergebnis Ihrer Rechnung ist: " + potenz(basis, exponent));
                break;
                                                                                           
                default:
                System.out.println("Sie haben keinen gültigen Rechenoperator eingegeben");
                                       
      System.exit(0);              
           
    }
               
        }
        }
 
Zuletzt bearbeitet von einem Moderator:
K

kneitzel

Gast
Du hast die Methode ja weiter oben geschrieben. Im switch willst du die Methode doch nun aufrufen. Wie ruft man eine Methode auf?
 

Jw456

Top Contributor
Du hast die Methode ja weiter oben geschrieben. Im switch willst du die Methode doch nun aufrufen. Wie ruft man eine Methode auf?

Der Aufruf der Methode (ohne Klassen Name) sollte passen (ist ja static in der gleichen Klasse) nur die Übergabe Werte und der Rückgabewert nicht.




eines noch deine Zahlen 1 und 2 , Ergebnis sind "double" deine Methode arbeitet mit "int"
auch die Rückgabe ist nur int. solltest du zu double ändern dann wird es auch gehn.
 
Zuletzt bearbeitet:

Jw456

Top Contributor
Eines hätte ich noch dein Code kann keine Exponenten als Kommazahl (3,546) verarbeiten.

Abstürzten wird der Code nicht.

Da das bestimmt nicht gefordert ist würde ich die Eingabe auf eine Ganze Zahl prüfen und vielleicht einen Fehler ausgeben, wenn es eine gebrochene Zahl ist.
 

Jw456

Top Contributor
Hallo ich hoffe du hast nun herausgefunden wie der Aufruf aussehen sollt.
Aber die Datentypen der Methode "potenz" musst du doch zu double ändern oder beim Aufruf Casten.
Der Return DatenTyp sollte auch wieder ein double sein und kein int.


Java:
case"n":       
                ergebnis = potentz(zahl1 , zahl2);
                System.out.println("Das Ergebnis Ihrer Rechnung ist: " + ergebnis);
                break;
 

cocosch

Mitglied
Hallo,
danke für eure Hilfe. Ich hab den Code umgeändert und es hat geklappt, könnte man wahrscheinlich einfacher schreiben, aber ich bin froh das es so erst mal funktioniert. Ich versuche jetzt noch die Null bei der Nachkommastelle weg zu bekommen, wenn es sich um eine ganze Zahl handelt :D Aber erst mal vielen Danke :)


public class EinsendeAufgabe_03_05 {

//Methode zum berechnen einer Potenz
static double potenz ( double basis, double exponent) {

double potenz = 1 ;

for (double n =1 ; n<=exponent ; ++n)

{

potenz = potenz * basis ;

}
return potenz;

}

public static void main(String[] args) {

double zahl1, zahl2;
double ergebnis;
String operator;


// Zahl1 Eingabe über den grafischen Dialog
zahl1 = Double.parseDouble(JOptionPane.showInputDialog("Geben Sie Sie die erste Zahl ein: " ));
// Operator Eingabe über den grafischen Dialog
operator = JOptionPane.showInputDialog(" Geben Sie einen Operator ein:( + ) \t ( - ) \t ( * ) \t ( / ) \t ( n ) ");
// Zahl2 Eingabe über den grafischen Dialog
zahl2 = Double.parseDouble(JOptionPane.showInputDialog("Geben Sie die zweite Zahl ein: "));


//Operator Auswahl über switch-case
switch (operator) {
case "+":
ergebnis = zahl1 + zahl2;
//Ausgabe der Rechnung
System.out.println("Das Ergebnis Ihrer Rechnung ist: " + ergebnis);
break;
case "-":
ergebnis = zahl1 - zahl2;
System.out.println("Das Ergbnis Ihrer Rechnung ist: " + ergebnis);
break;
case"*":
ergebnis = zahl1 * zahl2;
System.out.println("Das Ergebnis Ihrer Rechnung ist: " + ergebnis);
break;
case"/":
ergebnis = zahl1 / zahl2;
System.out.println("Das Ergebnis Ihrer Rechnung ist: " + (double)zahl1/zahl2);
break;
case"n":
potenz(zahl1, zahl2);
System.out.println("Das Ergebnis Ihrer Rechnung ist: " + potenz(zahl1, zahl2));
break;

default:
System.out.println("Sie haben keinen gültigen Rechenoperator eingegeben");

System.exit(0);

}

}
}
 

Jw456

Top Contributor
potenz(zahl1, zahl2);
System.out.println("Das Ergebnis Ihrer Rechnung ist: " + potenz(zahl1, zahl2));

wenn du es bei der Ausgabe berechnest kannst die erste Zeile weg lassen.
 

MrTurner

Mitglied
public class EinsendeAufgabe_03_05 {

//Methode zum berechnen einer Potenz
static double potenz ( double basis, double exponent) {

double potenz = 1 ;

for (double n =1 ; n<=exponent ; ++n)

{

potenz = potenz * basis ;

}
return potenz;

Hallo, kann mir mal einer den Zusammenhang mit dem for double "n" nennen? ich meine, double basis & double exponent erklärt sich ja durch das Auslesen im main unterhalb, aber ich erkenne irgendwie keinen Anhaltspunkt was das "n" darstellen soll. Bin nämlich gerade an der gleichen Aufgabe & schon sehr lange am arbeiten. Saludos
 

Neumi5694

Top Contributor
Hallo, kann mir mal einer den Zusammenhang mit dem for double "n" nennen? ich meine, double basis & double exponent erklärt sich ja durch das Auslesen im main unterhalb, aber ich erkenne irgendwie keinen Anhaltspunkt was das "n" darstellen soll. Bin nämlich gerade an der gleichen Aufgabe & schon sehr lange am arbeiten. Saludos
n ist ein Zähler und dient als Abbruchbedingung für die Schleife. Sobald es den Wert "exponent" überschreitet, wird die Schleife nicht mehr ausgeführt.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
richis-fragen GlassPane über JScrollPane legen Java Basics - Anfänger-Themen 6
A Server - Client Nachrichtenaustausch über Eventbus Java Basics - Anfänger-Themen 12
P Neue Java v8 JRE Version nicht über alte drüber installierbar: Wie sonst? Java Basics - Anfänger-Themen 7
D Downloadfortschritt von Datei über Google Drive API v3 Java Basics - Anfänger-Themen 10
B großzügiges Pixelraster über Bildschirm legen Java Basics - Anfänger-Themen 7
ravenz Schleife mit for über String Array „zahlen“und prüfen ob Wert „a“ oder „b“ oder „c“ entspricht (mittels || ) Java Basics - Anfänger-Themen 4
L Beim Java Programmstart, mehrere Parameter über die Kommandozeile übergeben Java Basics - Anfänger-Themen 9
sserio Iterierung über ein zweidimensionales Array Java Basics - Anfänger-Themen 16
H Eine Methode über Actionlistener beenden Java Basics - Anfänger-Themen 8
S Java über SSH Java Basics - Anfänger-Themen 13
X Wie erreiche ich, dass ein Robot weitere Attribute hat, die nicht materialisiert sind, sondern nur über get/ set-Methoden simuliert sind? Java Basics - Anfänger-Themen 1
M Wie können Klassen nicht-materialisierte Attribute haben, die nur über get/ set-Mehoden simuliert sind? Java Basics - Anfänger-Themen 6
D Best Practice Ausgabe über direkte Ausgabe oder try-catch? Java Basics - Anfänger-Themen 13
R Eigenschaft über Parameter auslesen und ändern Java Basics - Anfänger-Themen 15
P Datei einlesen, nach Begriff filtern und in Datei ausgeben. Problem Standardausgabe über Konsole Java Basics - Anfänger-Themen 19
W Unterschiede bei Zugriff auf Objekt und Klassenvariablen über einen Getter? Java Basics - Anfänger-Themen 2
W char über die Konsole? Java Basics - Anfänger-Themen 7
EchtKeineAhnungManchmal Hallo :) ich bekomme es nicht hin eine Fehlermeldung auszugeben über die GUI Java Basics - Anfänger-Themen 3
S Array über ein Ausgabemethode in main ausgeben Java Basics - Anfänger-Themen 31
J Wert zurückgeben über get Methode Java Basics - Anfänger-Themen 8
J Eintrag Combobox über einen String auswählen Java Basics - Anfänger-Themen 3
A Array Ansprache einer Zelle über Punktnotation? Java Basics - Anfänger-Themen 3
O Java über cmd benutzen ? Java Basics - Anfänger-Themen 5
J Variablenzugriff über string Java Basics - Anfänger-Themen 18
W Objekte über Scanner Input; ToString Probleme... Java Basics - Anfänger-Themen 4
H Methode über String Wert aufrufen Java Basics - Anfänger-Themen 8
M Java Kompilieren über Package grenzen hinaus Java Basics - Anfänger-Themen 4
M Arrays mit mehreren Werten über JOptionPane initialisieren Java Basics - Anfänger-Themen 12
Tino1993 Ellipse über draw Funktion ohne spur wandern lassen Java Basics - Anfänger-Themen 6
M Mehrere Datenbank zugriffe über tomee.xml regeln? Java Basics - Anfänger-Themen 1
N Input/Output Eine Frage über system.out.println. Java Basics - Anfänger-Themen 10
J Array über Getter erlangen Java Basics - Anfänger-Themen 34
S While-Schleife geht in Endlosschleife über, warum? Java Basics - Anfänger-Themen 6
B OOP-Anfänge über CMD + Editor Java Basics - Anfänger-Themen 30
G Variablen Array Länge über den Konstruktor definieren Java Basics - Anfänger-Themen 4
L Addition von Arrays über die Parameterliste Java Basics - Anfänger-Themen 11
C Datei über relative Pfade einlesen Java Basics - Anfänger-Themen 6
1 Erste Schritte Was denkt ihr über eines meiner ersten Javaprogramme? Java Basics - Anfänger-Themen 2
S Allgemeine Frage über Generics und Vererbungen Java Basics - Anfänger-Themen 5
J Button über Pfeiltasten bewegen Java Basics - Anfänger-Themen 8
E Objekt durch Benutzer über Konsole erzeugen - Java Java Basics - Anfänger-Themen 3
N Eingabe Kommazahlen über Scanner Java Basics - Anfänger-Themen 2
T DoWhile Schleife über mehrere Mothoden Java Basics - Anfänger-Themen 5
C Collections List über Interface zugreifen Java Basics - Anfänger-Themen 32
J Gefilterten Stream über die Konsole ausgeben Java Basics - Anfänger-Themen 1
S Variablen Klassenvariable über Objekt aufrufen Java Basics - Anfänger-Themen 16
S Bilder über Socket Senden Java Basics - Anfänger-Themen 1
K Textdatei auslesen und über Mqtt schicken Java Basics - Anfänger-Themen 4
L Iterieren über eine CSV Datei Java Basics - Anfänger-Themen 7
I GUI über Eclipse oder NetBeans Java Basics - Anfänger-Themen 23
S Klassenaufruf über JFrame Button Java Basics - Anfänger-Themen 3
Java The Hutt SetWerte über verschiedene Klassen Java Basics - Anfänger-Themen 16
L Zugriff auf Attribute eins Objekts über ActionListener Java Basics - Anfänger-Themen 4
O Methode über Leerzeichen Java Basics - Anfänger-Themen 13
I OOP Objektnamen über die Konsole richtig einlesen Java Basics - Anfänger-Themen 9
A Variablen Variablenwert über Konstruktor ändern Java Basics - Anfänger-Themen 3
J MySQL Datumsabfrage über ResultSet in Java-Servlet Java Basics - Anfänger-Themen 4
CptK Interface Bilder über Bildschirm bewegen, bis der Abstand zum vorherigen zu groß wird Java Basics - Anfänger-Themen 13
dapzoo Class File Version zu niedrig? Ausführen über Eingabeaufforderung nicht möglich Java Basics - Anfänger-Themen 14
J Punkt auf,über,unter oder zwischen 2 Geraden Java Basics - Anfänger-Themen 14
CptK Interface Bild über Methode ändern funktioniert nicht Java Basics - Anfänger-Themen 4
R Keine Verbindung zu MySql über Netbeans Java Basics - Anfänger-Themen 15
E Best Practice Jar-file mit zwei Klassen und externer Bibliothek über Konsole erzeugen Java Basics - Anfänger-Themen 13
J Aufruf einer Methode über einen String Java Basics - Anfänger-Themen 11
G Arraynamen über eine Schleife ansprechen Java Basics - Anfänger-Themen 4
S Bild über JButton legen Java Basics - Anfänger-Themen 3
temi Druckeransteuerung über ESC-Sequenz Java Basics - Anfänger-Themen 21
M Methodenaufruf über SQL UPDATE Java Basics - Anfänger-Themen 8
B Könnte jemand über dieses jurze Javaprogramm schauen? Irgendwas funktioniert mit der z-Varible nicht Java Basics - Anfänger-Themen 2
M Java Programm über Batch-Datei ausführen Java Basics - Anfänger-Themen 1
E Wie Passwort-Eingabe (ohne Echo!) über Konsole ? Java Basics - Anfänger-Themen 4
C Erste Schritte Fehler beim *.class Aufruf über cmd.exe Java Basics - Anfänger-Themen 9
R Fragen über den Konstruktor Java Basics - Anfänger-Themen 0
X Minimax-Algorithmus über alle Kanten möglich? - Kanten darstellen Java Basics - Anfänger-Themen 1
P Threads Prozess kann nicht über die GUI gestartet werden Java Basics - Anfänger-Themen 8
T CMD über Java-Programm aufrufen Java Basics - Anfänger-Themen 2
X Finde die Files über FTP nicht Java Basics - Anfänger-Themen 4
J Methode über Scanner aufrufen Java Basics - Anfänger-Themen 15
P Programm kann über CMD nicht ausgeführt werden Java Basics - Anfänger-Themen 2
E Frage über Speichern und Ausgabe Java Basics - Anfänger-Themen 7
J Verschieden Fragen über Java Programmierung Java Basics - Anfänger-Themen 3
X Betriebssytem interne Consolen Commands über Java starten Java Basics - Anfänger-Themen 2
J ArrayList über verschiedene Klassen verwenden Java Basics - Anfänger-Themen 7
A .jar über Webbrowser aufrufen Java Basics - Anfänger-Themen 2
D Ausgabe über JLabel Java Basics - Anfänger-Themen 12
L Erste Schritte Arrays über eine for Schleife ansprechen. Java Basics - Anfänger-Themen 6
MiMa Datentyp Short Wert zuweisen über Methode Java Basics - Anfänger-Themen 2
K Objekt soll Anwendung über Änderungen informieren Java Basics - Anfänger-Themen 8
Detox Class Datei erzeugen nicht möglich über cmd Java Basics - Anfänger-Themen 1
F Gewichteter Mittelwert über eine Zeitperiode Java Basics - Anfänger-Themen 3
B Schleife über einen Container Java Basics - Anfänger-Themen 7
Henri Paare Frage über Java Programmierung Java Basics - Anfänger-Themen 10
T jar von stick aus über jre auf stick starten Java Basics - Anfänger-Themen 6
L Iterieren über ArrayList Java Basics - Anfänger-Themen 1
D Java doppelte Zahlen auch über 10 in einem String entfernen Java Basics - Anfänger-Themen 2
M Panel erstellen, welches ein Control erhält. Ausgabe soll über einen Stream erfolgen. Java Basics - Anfänger-Themen 0
F Methoden aus anderer classe über nehmen Java Basics - Anfänger-Themen 10
N .propertiesdatei über Relativen Pfad einlesen lassen Java Basics - Anfänger-Themen 5
G Input/Output CSV-Datei über Java-Programm erstellen, Zeichensalat Java Basics - Anfänger-Themen 3
G Datentypen Tipps, Ratschläge erwünscht bzgl. Datentyp bestimmen über Wertebereich Java Basics - Anfänger-Themen 5

Ähnliche Java Themen

Neue Themen


Oben