Hallo zusammen,
ich brauche Hilfe beim Umsetzung einer neuen Funktion in meinem Taschenrechner.
Und zwar habe ich bisher ein Konsolen-Programm geschrieben, dass aus zwei eingegeben Strings eine dritte Zahl berechnet mit nur einem Operator. Nun will ich jedoch die Eingabe und Ausgabe der Daten erweitern, indem ich die Eingabe auf einen einzigen String reduziere und dann entsprechend parse. Dabei sollen auch mehrere Operatoren (+, -, *, / ) vorkommen können. Ich habe mir bereits den Rangierbahnhof-Algorithmus angeschaut, allerdings nur Wurstsalat verstanden.
Über die gängigen Suchmaschinen habe ich bisher nur viel zu komplexe Code-Beispiele gefunden, die mit Sinus / Konsinus, regulären Ausdrücken, etc. gearbeitet haben. Ich suche jedoch eine relativ simple und leicht nachvollziehbare Lösung dafür.
Das habe ich bisher verbrochen:
Würde mich über Hilfe freuen.
Grüße
ich brauche Hilfe beim Umsetzung einer neuen Funktion in meinem Taschenrechner.
Und zwar habe ich bisher ein Konsolen-Programm geschrieben, dass aus zwei eingegeben Strings eine dritte Zahl berechnet mit nur einem Operator. Nun will ich jedoch die Eingabe und Ausgabe der Daten erweitern, indem ich die Eingabe auf einen einzigen String reduziere und dann entsprechend parse. Dabei sollen auch mehrere Operatoren (+, -, *, / ) vorkommen können. Ich habe mir bereits den Rangierbahnhof-Algorithmus angeschaut, allerdings nur Wurstsalat verstanden.
Über die gängigen Suchmaschinen habe ich bisher nur viel zu komplexe Code-Beispiele gefunden, die mit Sinus / Konsinus, regulären Ausdrücken, etc. gearbeitet haben. Ich suche jedoch eine relativ simple und leicht nachvollziehbare Lösung dafür.
Das habe ich bisher verbrochen:
Code:
static void Main()
{
double eingabe01 = 0;
double eingabe02 = 0;
char pOperator = '0';
bool success = true;
string hinweisExit = "\n\nHinweis: Das Programm wird nun beendet.";
string hinweisExitUser = "\n\nHinweis: Das Programm kann nun mit Enter beendet werden.";
//
Console.WriteLine("Bitte geben Sie nun Ihre erste Zahl ein!");
try
{
eingabeZahl01 = Convert.ToDouble(Console.ReadLine());
}//try
catch (Exception e)
{
Console.WriteLine(e.Message);
success = false;
//System.exit(0); -> wurde ersetzt durch if-else Abfragen
}//catch
if (success != false)
{
Console.WriteLine("\nWas für einen Operator möchten Sie benutzen?");
Console.WriteLine("* = multiplizieren | + = addieren | - = subtrahieren | / = dividieren");
try
{
mOperator = Convert.ToChar(Console.ReadLine());
//success = false;
}//try
catch (Exception e)
{
Console.WriteLine(e.Message);
success = false;
//System.exit(0); -> wurde ersetzt durch if-else Abfragen
}//catch
if (success != false)
{
switch (mOperator)
{
case '*': Console.WriteLine("\nErgebnis: " + (eingabeZahl01) + " * " + (eingabeZahl02) + " ist: " + (eingabeZahl01 * eingabeZahl02) + hinweisExitUser); break;
case '+': Console.WriteLine("\nErgebnis: " + (eingabeZahl01) + " + " + (eingabeZahl02) + " ist: " + (eingabeZahl01 + eingabeZahl02) + hinweisExitUser); break;
case '-': Console.WriteLine("\nErgebnis: " + (eingabeZahl01) + " - " + (eingabeZahl02) + " ist: " + (eingabeZahl01 - eingabeZahl02) + hinweisExitUser); break;
case '/':
if (eingabeZahl02 != 0)
{
Console.WriteLine("\nErgebnis: " + (eingabeZahl01) + " / " + (eingabeZahl02) + " ist: " + (eingabeZahl01 / eingabeZahl02) + hinweisExit);
}//if
else
{
Console.WriteLine("\nSie haben soeben versucht durch 0 zu teilen." + hinweisExit);
}//else
break;
default: Console.WriteLine("\nError: Sie dürfen nur die oben genannten Operatoren eingeben.\n\nHinweis: " + hinweisExit); break;
}//switch
Console.ReadLine();
}//if success false
else
{
Console.WriteLine(hinweisExit);
System.Threading.Thread.Sleep(5000); //ersetzt: Console.ReadLine();
}//else
}//if success false
else
{
Console.WriteLine(hinweisExit);
System.Threading.Thread.Sleep(5000); //ersetzt: Console.ReadLine();
}//else
}//static void Main
Würde mich über Hilfe freuen.
Grüße