Rationale Zahlen - Aufgabe

Status
Nicht offen für weitere Antworten.

MrPositive

Mitglied
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
Eingabe: +
Eingabe: 7 / 8
Ausgabe: 3 / 4 + 7 / 8 = 13 / 8
Ausgabe: erneute Berechnung? (j/n)
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

Um die Brüche zu kürzen, können Sie z.B. wie folgt vorgehen (optional):

Code:
void kuerzen (void) // Euklidischer Algorithmus  
{  
   int i, n= abs(nenner), z= abs(zaehler); 
    
   while (z > 0){  
    if( z < n ){ 
       i= n; 
       n= z; 
       z= i; 
     } 
     z= z - n; 
   } 
   nenner= nenner / n; 
   zaehler= zaehler / n; 
}

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:

Code:
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.
 
S

SlaterB

Gast
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

Mitglied
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?
 

André Uhres

Top Contributor
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?".
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Oben