# Rationale Zahlen - Aufgabe



## MrPositive (16. Jan 2009)

Hallo @ alle Java-Fans und die, die es werden wollen 

Ich habe folgende Uni-1.Semester-Aufgabe:



> Schreiben Sie ein Programm, um mit rationalen Zahlen zu rechnen. Der Benutzer soll beliebig oft rationale
> Zahlen und deren mathematische Operation eingeben können, so lange bis er das Programm beenden will.
> Der Ablauf könnte beispielsweise folgendermaßen aussehen:
> Eingabe: 3 / 4
> ...



Ich hab angefangen, diese Aufgabe zuerst mit Integer-Zahlen zu machen, bis alles wie gewollt, funktioniert wird.
Ich stosse hier aber sowieso an meine Granzen.

Das, was ich geschafft habe: 2 Zahlen eingeben und ausgeben

Was mir fehlt:
1) Das mathematische Zeichen so eingeben, damit es entsprechend als solches erkennt wird und am Ende gerechnet werden kann.
2) Boolean - Anfrage.
3) Die Darstellung der rationalen Zahlen selbst, natürlich.

Das ist mein Code hier:


```
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

// Rationale-Zahlen-Aufgabe 

public class Aufgabe4 {


	public static void main(String[] args)  {
		
		
		double Zahl = 0;
		
		BufferedReader eingabe = new BufferedReader 
		(new InputStreamReader (System.in));
		
		try { 
			System.out.println("Bitte die erste Zahl eingeben: ");
			Zahl = Double.parseDouble(eingabe.readLine());
         
		}
		
		catch (IOException e) { }
		catch (NumberFormatException nfe) { System.out.println("Falsche Eingabe"); }
		System.out.println("Ihre Eingabe war: " + Zahl);

		///////////////////////
		
		System.out.println("Zeichen angeben: ");
		String op = eingabe.readLine();
		
		
		/////////////////////
		
		double Zahl1 = 0;
		
		BufferedReader eingabe1 = new BufferedReader 
		(new InputStreamReader (System.in));
		
		try { 
			System.out.println("Bitte die zweite Zahl eingeben: ");
			Zahl1 = Integer.parseInt(eingabe1.readLine());

		}
		
		catch (IOException e) { }
		catch (NumberFormatException nfe) { System.out.println("Falsche Eingabe"); }
		System.out.println("Ihre Eingabe war: " + Zahl1);
		
		
		// Beispiel bei einer Division
		System.out.println(Zahl+ " durch " + Zahl1 + " ergibt " + (Zahl / Zahl1));
		
		
				

	}

}
```

Also ich würde mich freuen über jede Art von Hilfe, da ich wirklich, keine Ahnung weiter habe.

Danke an alle im voraus.


----------



## SlaterB (16. Jan 2009)

den Operator liest du doch schon ein,
eine einfache Verarbeitung wäre später

if (op.equals("+")) {
// addieren
} else if ..
..
} else {
// Fehlermeldung unbekannter Operator
}

----

die Abfrage führt zu j/n, kannst du genauso mit if/else prüfen wie den Operator

-----

wenn 3/4 eingegeben wird, dann kannst du das nicht auf Double parsen,
als String einlesen und dann ducharbeiten, je nachdem, was ihr so kennt,
die Methoden split() und trim() von String können hilfreich sein,
mach dich zu denen schlau


----------



## MrPositive (17. Jan 2009)

Oh, danke, das war wirklich sehr hilfreich.
Nun habe ich nur noch eine Frage und zwar diese:



> Beendet der Benutzer das Programm, werden alle im *Array *abgespeicherten rationalen Zahlen mitsamt
> ihren mathematischen Operationen noch einmal ausgegeben:
> Ausgabe: Berechnet wurden:
> Ausgabe: 3 / 4 + 7 / 8 Ergebnis: 13 / 8
> Ausgabe: 2 / 3 - 3 / 2 Ergebnis: -5 / 6



Ich verstehe nicht wirklich, wie ich alle meine Werte in einem Array speichern kann und das nicht nur ein Mal zum Beispiel.
Hat jemand hier eine Idee vielleicht?


----------



## Ebenius (17. Jan 2009)

Das ist bis jetzt eine Aussage. Wie lautet denn die Frage?


----------



## André Uhres (17. Jan 2009)

Ebenius hat gesagt.:
			
		

> Das ist bis jetzt eine Aussage. Wie lautet denn die Frage?


Ich denke so: "Wie kann ich alle meine Werte in einem Array speichern?"


----------



## MrPositive (17. Jan 2009)

Die Frage steht doch im Kästchen. 
Aber danke. Das habe ich schon mal gelöst. 
Auch mit fremder Hilfe


----------



## André Uhres (17. Jan 2009)

Da muss wohl ein Crashkurs in Deutsch her.
Im Kästchen steht die Aufgabe. Kann man eine Aufgabe auch als Frage betrachten? 
Das wäre dann eine Frage allgemeinster Art, etwa: "Wie kann ich diese Aufgabe lösen?". 
Besser ist es aber, eine konkrete Frage zu der Aufgabe zu stellen, etwa so: 
"Mit welchem Datenstruktur kann ich rationalen Zahlen mitsamt ihren mathematischen Operationen speichern?".


----------

