Taschenrechner

Status
Nicht offen für weitere Antworten.

tweek

Neues Mitglied
Ich bin Newbie in Java (hab erst vor knapp 1nen Monat angefangen) und habe gestern eine Aufgabe bekommen und komm leider nicht weiter. Ich weiß, dass man es mit dem Tokenizer evtl. lösen könnte, aber wie es gehen sollte, kann ich immernoch nicht verstehen.

Da ist die Aufgabe:
> Das Programm soll folgende Funktionalitäten erfüllen:
> Bei dem Programm handelt es sich um einen Taschenrechner.
> Der Taschenrechner soll als Parameter einen String übergeben bekommen
> und das Ergebnis berechnen. z.B. Eingabe: taschenrechner 1 + 2
> (aufpassen: der Parameter kann auch Leerzeichen enthalten)
> Ausgabe: 3
> Weiterhin soll das Programm erkennen können, ob der übergeben String
> richtig geklammert ist und es sich bei dem Ausdruck um einen korrekten
> Arithmetischen Ausdruck handelt Punkt vor Strich und Klammer-Regel
> beachten (was in der Klammer steht wird zuerst berechnet) Der
> Taschenrechner soll auch folgende Ausdrücke berechnen / benutzen
> können:
> - Die Wurzel sqrt()
> - Die Kreiszahl PI (also den String pi durch 3,14...
> - Sinus und Kosinus sin(), cos()
> - x hoch y (x^y)
>
> Testen kannst du deinen Taschenrechner mit folgenden Ausdrücken:
> sqrt( 2 ^ 2) + 4 *10, sin(pi / 2 )
>
Java:
import java.util.StringTokenizer;
import java.io.*;


public class calc {
public static void main(String[] args) throws Exception{
	BufferedReader eingabe = new BufferedReader(
			   new InputStreamReader(System.in));
	String strTest;
	strTest=eingabe.readLine();
	strTest=strTest.replace(" ", "");
	StringTokenizer text = new StringTokenizer (strTest, "("+")");
	while(text.hasMoreTokens()){
		String feld = (String)text.nextToken();
        }

}
}

Wie soll ich vorgehen????? Hilft mir bitte!!!!! :rtfm::rtfm::bahnhof::bahnhof::bahnhof:
 
Zuletzt bearbeitet:

tweek

Neues Mitglied
[JAVA=12]
StringTokenizer text = new StringTokenizer (strTest, "("+")");
while(text.hasMoreTokens()){
String feld = (String)text.nextToken();
}
[/code]
Das stimmt schon mal nicht.

Wäre es vllt. sinnvoll den gesammten String in ein char [] umzuwandeln???

Oder evtl. wie in MySQL den Inhalt zwischen "(" und ")" durchsuchen?
Code:
"("%")"
und diesen Inhalt dann erneut durchsuchen???
 
Zuletzt bearbeitet:

partsch

Aktives Mitglied
eine andere Möglichkeit wäre auch, dass du den übergebenen in einen char Array umwandelst und dann eine Methode schreibst die den charackter überprüft ob er ein operator bzw operant ist. Diese die den "Test bestehen" steckst du dann in einen Stack rein oder nen zweiten Array und wandelst sie danach um. Dann hast du die zwei Zahlen und den Operator und dann brauchst du nur noch ein switch um den richtigen Operator auszulesen und dann das Ergebnis zurück geben.
 
Status
Nicht offen für weitere Antworten.

Oben