Kann man Platzhalter für Zahlen erstellen?

  • 2 Antworten
  • Letztes Antwortdatum
M

MatthiasKramer

Ambitioniertes Mitglied
3
Moin,
ich möchte im Rechner z.B. 5^2+3 (Also 5 hoch 2 plus 3 = 28) rechnen.
Grundfunktionen wie 5^2 oder 5+3 kann ich natürlich alles. Möchte den Rechner jetzt aber so ausbauen, dass man nicht nur entweder plus, entweder potenzzahlen, entweder minus usw. rechnen kann, sondern wie im Beispiel 5^2+3 = 28 oder 5+3^2 = 16.
Da mir endloses googlen nicht weitergeholfen hat wollte ich dch nochmal hier fragen. (Ich hoffe zu viel Fragen ist kein Grund für eine verwarnung?!:D)
Ich habe mir überlegt, dass ich 2 Muster erstelle, da ja eh nur 2 möglichkeiten möglich sind:
#^#+# und #+#^#, wobei # für irgendwelche Zahlen steht.
Weil, wenn man so ein Muster hätte, könnte man die zwei möglichkeiten spliten, nach ^ und + und könnte dann die tokens zusammenrechnen, oder?!
Ich hoffe ihr versteht, wie ich das meine:D
vielen Dank für Hilfe! :)

Edit: Mir ist da noch ein Beispiel eingefallen:
If (tvaufgabe.getText().toString() == "#^#+#") {
String ergebnis = tvergebnis.getText().toString();
String aufgabe = tvaufgabe.getText().toString();
String delims = "[\\^,+]+"
String [] tokens = aufgabe.split(delims);
String tokens0 = tokens[0];
String tokens1 = tokens[1];
String tokens2 = tokens[2];

double zahl1 = Double.valueOf(tokens0).doubleValue();
double zahl2 = Double.valueOf(tokens1).doubleValue();
double zahl2 = Double.valueOf(tokens2).doubleValue();

Ergebnis = Math.pow(zahl1, zahl2) + zahl3;
tvergebnis.setText(""+Ergebnis);


}

Also so in etwa müsste das halt aussehen, ich weiss eben nur nicht, wie man die Platzhalter erstellt:D
Mfg
 
Zuletzt bearbeitet:
Hi,

wie wäre es mal, wenn du dir grundlegend Gedanken machen würdest, wie ein taschenrechner rechnet bzw. wie du es am besten ausliest?!

Wenn du jede möglichkeit einer Rechenart aufschreiben willst, na dann Prost-Mahlzeit.

Du musst dir die ganze Sache viel Allgemeiner vorstellen. Z.b.:
Lese zahl bis zum ersten /*-+^[Wurzel]? ODER = - lese weiter bis zum nächsten /*-+^[Wurzel]? ODER = - lese weiter bis zum nächsten ...
Daie jeweiligen zahlen mit operatoren kannst du in einer liste speicher.

So kann es dir nämlich egal sein, ob er nun 5*5 eingibt oder 2/2. Er liest erstmal bis zum ersten /*-+^[Wurzel]? ODER = und rechnet. Dann musst du nicht jede mögliche Operation abfragen...

Gruß
 
  • Danke
Reaktionen: MatthiasKramer

Ähnliche Themen

Jennywise
Antworten
2
Aufrufe
681
Jennywise
Jennywise
Zurück
Oben Unten