Csharp Taschenrechner?

3 Antworten

Kann ich denn Theoretisch einfach die Tastatur Eingabe einlesen? Habe mir es so vorgestellt das die Zahlen am anfang in string x gesteckt werden der konvertiert wird. Sind es keine zahlen dann Fehlermeldung. Operator geht ja locker mit switch case und mit zahl2 dann das gleiche wie mit zahl 1. Mein problem ist, ich habe einen plan wie das Programm aussehen soll, weiß aber nicht wie ich es umsetzen kann.

Wenn die Eingabe als String erfolgt, loope einmal durch, bis ein Rechenoperator kommt -> Erste Zahl + Rechenoperator

An dieser Stelle kannst du den String dann splitten, um die Zweite zahl zu erhalten und die Rechnung durchführen.


valvaris  07.07.2016, 20:11

und negative zahlen? -10+5...

0

Das wäre dann ein Formelparser. Die sind relativ aufwändig, aber ein Ansatz, je nachdem, was er leisten soll...

Per regex ([0-9]+)([\+\-\*\÷\/])([0-9]+) abfragen, die ergebnisse in 3 variablen stecken und deine Methoden weiterverwenden.

Kurz zur Regex: In den runden Klammern stehen die Sachen, welche in die 3 Variablen kommen. in den eckigen Klammern Sachen, die dafür okay sind.

Also in der 1. und 3. Eine Ziffer von 0-9 und zwar mindestens 1x, aber beliebig viele zusammen (sagt das + dahinter)

In der mittleren Klammer eins der Zeichen aus der eckigen Klammer (denk dir die \ weg, die sind nur der Hinweis, dass der da nix interpretieren, sondern das einfach als Char hinnehmen soll)

Gültig wäre also beispielsweise 673+174
Und umgesetzt sähe es so aus (673)(+)(174)


valvaris  07.07.2016, 20:04

es gibt in c# die Regex Klasse. Da gibts die Match-Funktion, die auf Übereinstimmung testet und die sollte als 3. Parameter ein Array nehmen, wo es die Werte rein packt.

1
derfragenheini 
Beitragsersteller
 07.07.2016, 12:51

kannst du mir vielleicht sagen wie ich das was in den Klammern steht dann in eine Variable bekomme? Gibt es da etwas womit ich auf die stelle deuten kann? Also z.b. auf die 2. von 3 stellen und das dann in einer char variable speichern.

0