Hallo, ich möchte einen Taschenrechner in C++ erstellen.
Hierbei soll in der Eingabeaufforderung ein beliebig langer Term stehen, dieser soll dann umgewandelt werden, dass mein Programm auch damit umgehen kann...
mein programm sieht momentan so aus:
Code:
double zahl1, zahl2, ergebnis; // Variablen für Zahlen
char rechenzeichen; // Variable fürs Rechenzeichen
cout << "Geben Sie eine Rechenaufgabe ein: "; // Eingabeaufforderung ausgeben
cin >> zahl1 >> rechenzeichen >> zahl2; // Aufgabe einlesen
switch(rechenzeichen){ // Wert von rechenzeichen ermitteln
case '+': ergebnis = zahl1+zahl2; break; // entsprechend dem
case '-': ergebnis = zahl1-zahl2; break; // Rechenzeichen
case '*': ergebnis = zahl1*zahl2; break; // das Ergebnis
case '/': ergebnis = zahl1/zahl2; break; // berechnen
// Fehlerausgabe und Programm beenden, falls falsches Rechenzeichen eingegeben wurde
default: cout << "unbekanntes Rechenzeichen...\n"; return 1;
}
// Aufgabe noch mal komplett ausgeben
cout << zahl1 << ' ' << rechenzeichen << ' ' << zahl2 << " = " << ergebnis << '\n';
}
jedoch soll das programm auch sachen wie "1+1+1+1+1+1+1++1+1+...+1" ausrechnen können, sprich der benutzer soll einen beliebig langen term verfassen können.
mit meiner methode klappt leider nur bei vorgegebener termlänge.. wie bekomme ich es hin dass nun die ganze zeile vom benutzer .. (später auch komplexe terme wie " 1.57+sin(2.5PI)+-3.239/0.21" ) in brauchbare teile zerlegt und umgewandelt werden.. ??
danke schonmal im vorraus...