Csharp Taschenrechner?

... komplette Frage anzeigen

3 Antworten

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)

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von derfragenheini
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
Kommentar von 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

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.

Antwort bewerten Vielen Dank für Deine Bewertung

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.

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von valvaris
07.07.2016, 20:11

und negative zahlen? -10+5...

0

Was möchtest Du wissen?