Taschenrechner mit Bruchrechnung

Status
Nicht offen für weitere Antworten.
R

rolf.huber

Gast
Hallo Zusammen

Ich muss für eine Prüfungsarbeit am Montag, einen Taschenrechner mit den Grundfunktionen plus Bruchrechnen und Prozentrechnen programmieren.

Die Grundfunktionen habe ich mit Hilfe eines Tutorials erstellt und versteh es soweit auch. Leider komme ich mit dem Bruch- und dem Prozentrechnen überhaupt nicht weiter.

Ich will absolut nicht auf Mitleid oder so machen aber wenn ich die Prüfung nicht schaffe, fall ich aus dem Studium.

Kann mir bitte jemand Helfen? Von mir aus können wir auch über eine entsprechende Bezahlung reden. Ich weiss, dass es für einen Programmierer eine absolut Einfache Sache ist. Ich bin nun mal keiner.

Vielen, Vielen Dank im Voraus.

Rolf



Hier, dass was ich schon habe:

Code:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.awt.Font.*;


public class Calculator
{
   public static void main(String[] args)
   {
      CalculatorFrame frame = new CalculatorFrame();
      frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
      frame.setVisible(true);
   }
}
 
 class CalculatorFrame extends JFrame
{
   /**
	 * 
	 */
	private static final long serialVersionUID = 1L;

public CalculatorFrame()
   {
      setTitle("Calculator");
      CalculatorPanel panel = new CalculatorPanel();
      add(panel);
      pack();
   }
}
 
class CalculatorPanel extends JPanel
{
   /**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	
public CalculatorPanel()
   {
      setLayout(new BorderLayout());
 
      result = 0;
      lastCommand = "=";
      start = true;
 
      display = new JTextArea ("0",0,0);
            
      display.setEnabled(false);
      add(display, BorderLayout.NORTH);
      
      
      ActionListener insert = new InsertAction();
      ActionListener command = new CommandAction();
 
      panel = new JPanel();
      panel.setLayout(new GridLayout(4, 5));
 
      addButton("7", insert);
      addButton("8", insert);
      addButton("9", insert);
      addButton("/", command);
      addButton("%", command);
 
      addButton("4", insert);
      addButton("5", insert);
      addButton("6", insert);
      addButton("x", command);
      addButton("X/Y", command);
 
      addButton("1", insert);
      addButton("2", insert);
      addButton("3", insert);
      addButton("-", command);
      addButton("+/-", command);
 
      addButton("0", insert);
      addButton(".", insert);
      addButton("=", command);
      addButton("+", command);
      addButton("C", command);
      
 
      add(panel, BorderLayout.CENTER);
   }
 
   private void addButton(String label, ActionListener listener)
   {
      JButton button = new JButton(label);
      button.addActionListener(listener);
      panel.add(button);
   }
 
   private class InsertAction implements ActionListener
   {
      public void actionPerformed(ActionEvent event)
      {
         String input = event.getActionCommand();
         if (start)
         {
            display.setText("");
            start = false;
         }
         if (input.equals(".") && display.getText().indexOf(".") != -1)
         {
        	 // do nothing
         }
         else
         {
        	 display.setText(display.getText() + input);
         }
      }
   }
 
   /**
    * Diese Aktion führt den mit der Taste verbundenen
    * Befehl aus. 
    */
   private class CommandAction implements ActionListener
   {
      public void actionPerformed(ActionEvent event)
      {
         String command = event.getActionCommand();
 
         // Füge den Präfix "-" an den String an wenn
         // es sich um den ersten Befehl handelt (negative Zahl)
      
         if (command.equals("C"))
         {
         	display.setText("0");
         	result = 0;
         	lastCommand = "=";
         	start = true;
         }
         else 
         {
        	 
	         if (command.equals("+/-"))
	         {
	        	 if (Double.parseDouble(display.getText()) > 0.0)
	        	 {
	        		 display.setText("-" + display.getText());
	        	 }
	        	 else
	        	 {
	        		 display.setText(display.getText().substring(1));
	        	 }
//	             result = -result;
	          }
	         else
	         {

		         if (start)
		         {
		             lastCommand = command;
		             result = Double.parseDouble(display.getText());
		         }
		         else
		         {
		        	// Berechnung ausführen
		            calculate(Double.parseDouble(display.getText()));
		            lastCommand = command;
		            start = true;
		         }
	         }
         }
      }
   }
 
   /**
    * Führt die anstehenden Berechnungen aus.
    * @param x der mit dem vorherigen Ergebnis zu berechnende Wert
    */


   public void calculate(double x)
   
   
   {
	
	   
	  if (lastCommand.equals("+")) result += x;
      
	  else if (lastCommand.equals("-")) result -= x;
    	
      else if (lastCommand.equals("x")) result *= x;
   
	  else if (lastCommand.equals("/")) result /= x;
   
      else if (lastCommand.equals("%")) result = (result * x) /100;
   
      else if (lastCommand.equals("=")) result = x;
    
	  display.setText("" + result);
	  
	  
   }
	    
	  
	  
	  
      
   
 
   private JTextArea display;
   private JPanel panel;
   private double result;
   private String lastCommand;
   private boolean start;
 
 	
}
 

Noar

Bekanntes Mitglied
Hi,

was genau ist denn dein Problem?
Was genau verstehst du nicht/kannst du nicht umsetzen?

Gruß,
Noar
 

Ariol

Top Contributor
Ich versteh dein Problem nicht...

Bruch- und Prozent geht doch.

Allerdings solltest du noch eine Prüfung eintragen, damit du nicht durch 0 teilst.
EDIT: Kommt Infinity raus, ist also doch korrekt :oops:
 
G

Guest

Gast
Hallo

Vielen Dank für die rasche Antwort:

Villeicht muss ich mich ein bisschen genauer ausdrücken :)

Bruchrechnen sollte folgendermassen funktionieren:

1/2 + 2/3 =? -> Am Schluss sollte folgendes Resultat rauskommen: 3/6 + 4/6 = 1 1/6


Prozentrechnen sollte eigentlich gehen aber wenn ich eingebe: 20 + 10% (das wären ja 2) dann bekomme ich 30 und nicht 22.

Ich habe keine Ahnung wie man so was programmiert. Könnt Ih mir da helfen?

Merci im Voraus.


Rolf
 

Ariol

Top Contributor
Das Bruchrechnen ist etwas komplizierter, aber gib für Prozentrechnen mal 20%10 ein, dann bekommst du 2 raus
 

HLX

Top Contributor
Beim Addieren und Subtrahieren von Brüchen brauchst du das KGV des Nenners. Dividiere das KGV durch den jeweiligen Nenner und du hast den Faktor für den entsprechenden Zähler. Anschließend kannst du die Rechenoperation durchführen.
 

0x7F800000

Top Contributor
Wildcard hat gesagt.:
x/0 ist aber nicht Infinite, sondern not defined
wirklich?
ich meine dass es in der IEEE 754 eher so stehen würde:
[sei x>0]
x/(+0)=+∞
x/(-0)=-∞
x*(+∞)=+∞
x*(-∞)=-∞
x/(+∞)=+0
usw. solche sachen sind alle ganz gut definiert, aber:
∞/∞=NaN
0/0=NaN
∞*0=NaN
und ähnliche sachen, die sind alle undefiniert. Aber das ist doch egal, schreibt halt der Taschenrechner "NaN" hin, dann ist doch klar was gemeint ist... :wink:


Für die addition, subtraktion, multiplikation usw. von rationalen zahlen solltest du dir gleich eine ganze klasse zusammenbasteln, die das alles beherrescht, und ordentlich kGV und ggT ausrechnen kann usw, das kann evtl schon etwas aufwendiger werden, aber ist eine gute übung :toll: hast ja noch ewig zeit bis montag...
 

Quaxli

Top Contributor
Wildcard hat folgendes geschrieben::

x/0 ist aber nicht Infinite, sondern not defined

wirklich?
ich meine dass es in der IEEE 754 eher so stehen würde:
[sei x>0]
x/(+0)=+∞
x/(-0)=-∞
x*(+∞)=+∞
x*(-∞)=-∞
x/(+∞)=+0
usw. solche sachen sind alle ganz gut definiert, aber:
∞/∞=NaN
0/0=NaN
∞*0=NaN
und ähnliche sachen, die sind alle undefiniert. Aber das ist doch egal, schreibt halt der Taschenrechner "NaN" hin, dann ist doch klar was gemeint ist... icon_wink.gif

Aber schön, daß Ihr sonst keine Probleme habt ;)
 

Wildcard

Top Contributor
Die IEEE ist aber ein keine mathematische Instanz. Die dahinterliegende Technik interessiert den Anwender des Taschenrechners eher wenig und eine +0 will er auch nicht sehen müssen :wink:
 

0x7F800000

Top Contributor
Der Anwender des Taschenrechners wird sich nicht einmal für den taschenrechner selbst interessieren^^ Höchstens wird man da versuchen ein paar brüche zu multiplizieren und schauen ob die addition halbwegs funktioniert... kein Mensch wird da stundenlang rumsitzen, und diesen taschenrechner auf alle möglichen bugs überprüfen... Das gesamte Ding wird doch eh nur zu übungszwecken geschrieben => da drückt man drei mal auf 'ne taste und vergisst es für immer und ewig... :bae:
 
G

Gast

Gast
KGV wird beim Bruchrechnen eigentlich nicht benötigt.
Ein GV (Gemeinsames Vielfaches) reicht aus.

Addition zb.
(a/b)+(c/d) = ((a*d)+(c*b))/(b*d)

Ergebnis dann kürzen lassen.
 
G

Gast

Gast
@maki

Das Posting von HLX behauptet es werde beim Bruchrechnen der KGV benötigt. Dem ist nicht so.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
N Java Taschenrechner hat Jemand vlt einen Tipp dafür wie ich jetzt die buttons verbinden kann und das Ergebnis auf dem textfield anzeigen lassen kann Java Basics - Anfänger-Themen 13
L Taschenrechner Problem Java Basics - Anfänger-Themen 4
J Frage zu einem "Taschenrechner" code Java Basics - Anfänger-Themen 9
R Operatoren Rechenoperation verwenden für Taschenrechner. Java Basics - Anfänger-Themen 32
S while Schleife Taschenrechner Java Basics - Anfänger-Themen 1
J Taschenrechner mit mehr als 2 Zahlen. Java Basics - Anfänger-Themen 18
R Einfacher Taschenrechner mit Eclipse Java Basics - Anfänger-Themen 3
M Einfacher Taschenrechner Java Basics - Anfänger-Themen 2
Fiedelbambu Prüfen von Komma stelle beim Taschenrechner Java Basics - Anfänger-Themen 5
JordenJost Taschenrechner problem Java Basics - Anfänger-Themen 5
Y Taschenrechner programmieren Java Basics - Anfänger-Themen 3
G Taschenrechner ergibt Fehler in if-Abfrage Java Basics - Anfänger-Themen 6
K Erste Schritte "Taschenrechner" zeigt keine Komma Zahlen an. Java Basics - Anfänger-Themen 8
C Potenzberechnung über switch case. Taschenrechner mit Eingabe über einen grafischen Dialog Java Basics - Anfänger-Themen 22
E JavaFX Taschenrechner Eingabe im Textfield beschränken Java Basics - Anfänger-Themen 2
E Taschenrechner GUI Problem mit Fehlerhandling Java Basics - Anfänger-Themen 6
C Taschenrechner (switch) in Taschenrechner mit Methoden umwandeln Java Basics - Anfänger-Themen 115
W Taschenrechner mit Switch case Java Basics - Anfänger-Themen 4
W Taschenrechner Java Basics - Anfänger-Themen 11
A Taschenrechner mit Gui erstellen Java Basics - Anfänger-Themen 9
2 Taschenrechner mit GUI Problem bei der Berechnung Java Basics - Anfänger-Themen 8
P Taschenrechner mit unendlich vielen Eingabemöglichkeiten Java Basics - Anfänger-Themen 1
V Erste Schritte Taschenrechner mit beliebig vielen Zahlen Java Basics - Anfänger-Themen 5
S Taschenrechner Java Basics - Anfänger-Themen 13
P Taschenrechner Text übertragung Java Basics - Anfänger-Themen 3
S Compiler-Fehler Basic- Taschenrechner/ Fehler Java Basics - Anfänger-Themen 8
S Basic- Taschenrechner? Java Basics - Anfänger-Themen 7
P Hilfe bei Java Taschenrechner Java Basics - Anfänger-Themen 25
F Erste Schritte Frage zu simplem Taschenrechner(switch) Java Basics - Anfänger-Themen 16
L Mein Taschenrechner lässt sich plötzlich nicht mehr öffnen Java Basics - Anfänger-Themen 5
S Taschenrechner hilfe! Java Basics - Anfänger-Themen 17
H Java Taschenrechner Java Basics - Anfänger-Themen 4
R Variablen Taschenrechner mit Komfortfunktionen Java Basics - Anfänger-Themen 2
J RPN Taschenrechner - keine Lösung!! Java Basics - Anfänger-Themen 84
M Java Taschenrechner (if-else) Java Basics - Anfänger-Themen 11
L Taschenrechner mit switch und while funktioniert noch nicht richtig Java Basics - Anfänger-Themen 22
Q simpler Taschenrechner Java Basics - Anfänger-Themen 34
R Taschenrechner NullPointerException Java Basics - Anfänger-Themen 1
R Variablen Weitergehenderr Taschenrechner Java Basics - Anfänger-Themen 4
F Taschenrechner "Error loading class..." Java Basics - Anfänger-Themen 5
M Java Taschenrechner Programmieren Java Basics - Anfänger-Themen 12
P Erste Schritte Taschenrechner mit if-else Anweisung Java Basics - Anfänger-Themen 6
G Taschenrechner gibt nur 0.0 aus Java Basics - Anfänger-Themen 8
A Taschenrechner programmieren Java Basics - Anfänger-Themen 21
Z Java Taschenrechner Java Basics - Anfänger-Themen 6
J Kleiner Taschenrechner! Anfänger braucht Hilfe :( Java Basics - Anfänger-Themen 2
C Taschenrechner in Java Java Basics - Anfänger-Themen 6
J Erste Schritte Java CMD Taschenrechner mit Parametern! Java Basics - Anfänger-Themen 16
J Taschenrechner: Probleme Java Basics - Anfänger-Themen 5
E Taschenrechner problem! Ich komme nicht voran Java Basics - Anfänger-Themen 18
R Erste Schritte Taschenrechner mit Schleife Java Basics - Anfänger-Themen 24
Lord.Djerun (Taschenrechner Netbeans) Komma nur einmal schreiben & 0 ersetzen Java Basics - Anfänger-Themen 1
Z Taschenrechner - Additions/Substraktions/Multiplikations/Divionsketten! Java Basics - Anfänger-Themen 4
D Taschenrechner Frage Java Basics - Anfänger-Themen 12
Z Sehr simpler Taschenrechner - Hilfe! Java Basics - Anfänger-Themen 10
Z Taschenrechner - Wie addiere,multipliziere und subtrahiere ich? Java Basics - Anfänger-Themen 6
D kleiner Taschenrechner mit switch fehlerhaft Java Basics - Anfänger-Themen 1
K Taschenrechner im GUI Java Basics - Anfänger-Themen 2
P Taschenrechner, operatoren Java Basics - Anfänger-Themen 4
D Simpler Taschenrechner Java Basics - Anfänger-Themen 6
A Anfänger Taschenrechner Frage Java Basics - Anfänger-Themen 14
R Erste Schritte Taschenrechner - Punkt-vor-Strich Rechnung Java Basics - Anfänger-Themen 1
S Operatoren Taschenrechner Ergebnis ausgeben Java Basics - Anfänger-Themen 7
A Taschenrechner zeigt Error Java Basics - Anfänger-Themen 7
J Taschenrechner Funktion Java Basics - Anfänger-Themen 18
M Taschenrechner fertigstellung Java Basics - Anfänger-Themen 1
N Methoden Taschenrechner Java Basics - Anfänger-Themen 2
F z = input.nextChar(); PROBLEM Taschenrechner Java Basics - Anfänger-Themen 7
J Scanner Taschenrechner? Java Basics - Anfänger-Themen 7
J Variablen Rechenzeichen und Zahlen verknüpfen für einen Taschenrechner Java Basics - Anfänger-Themen 17
B Klassen Java Taschenrechner mit Klassen und Methoden Java Basics - Anfänger-Themen 12
B Erste Schritte Brauche Hilfe bei einem Java-Taschenrechner Java Basics - Anfänger-Themen 11
R Methoden Taschenrechner Java Basics - Anfänger-Themen 4
P Taschenrechner , IF-Abfrage Java Basics - Anfänger-Themen 12
I Taschenrechner - Methoden implementieren Java Basics - Anfänger-Themen 5
I Java Starthilfe (Taschenrechner) Java Basics - Anfänger-Themen 7
J Taschenrechner Problemchen Java Basics - Anfänger-Themen 3
D Erste Schritte Taschenrechner Java Basics - Anfänger-Themen 11
K taschenrechner - Fehler beim Kürzen eines Bruches finden Java Basics - Anfänger-Themen 20
J Taschenrechner Punkt vor Strich Java Basics - Anfänger-Themen 9
A Taschenrechner programmieren Java Basics - Anfänger-Themen 5
M Ausklappbares Fenster bei grafischem Taschenrechner Java Basics - Anfänger-Themen 2
M Dividieren bei Grafischem Taschenrechner klappt nicht Java Basics - Anfänger-Themen 2
N Taschenrechner mit Unterprogra Java Basics - Anfänger-Themen 6
C Taschenrechner Java Basics - Anfänger-Themen 12
Z Taschenrechner programmieren Java Basics - Anfänger-Themen 5
E Erste Schritte Taschenrechner Java Basics - Anfänger-Themen 8
K Taschenrechner Java Basics - Anfänger-Themen 25
J Textfeld für Taschenrechner Java Basics - Anfänger-Themen 3
D Taschenrechner Java Basics - Anfänger-Themen 28
A Taschenrechner-GUI mit BorderLayout? Java Basics - Anfänger-Themen 6
W [PROJEKT] Simpler grafischer Taschenrechner Java Basics - Anfänger-Themen 8
M Taschenrechner mit JApplet Java Basics - Anfänger-Themen 26
J Grafischen Taschenrechner programmieren - Frage dazu Java Basics - Anfänger-Themen 12
W Taschenrechner Java Basics - Anfänger-Themen 2
T Tasten vom Taschenrechner? Java Basics - Anfänger-Themen 3
S Datentypen Taschenrechner Java Basics - Anfänger-Themen 13
J Taschenrechner Java Basics - Anfänger-Themen 5
J Taschenrechner Java Basics - Anfänger-Themen 9
M While bei einem Taschenrechner Java Basics - Anfänger-Themen 5

Ähnliche Java Themen

Neue Themen


Oben