Mathe Term auf Syntax überprüfen?
-
Hallo, ich möchte einen Taschenrechner programmieren, man gibt in eine Textbox einen Term ein wie z.b:
**
5*3-6+(9/2)**Nun soll am Anfang schon geachtet werden ob der Term auch gültig ist, denn folgendes darf nicht verarbeitet werden:
5/-3((5+/4)*
Ich möchte eine Funktion IsValidTerm() erstellen die vorher diesen Term überprüft:
private bool IsValidTerm(string term) { ... return false; }
Soll ich ein string array anlegen mit allen falschen Möglichkeiten:
char[] wrongSyntax = {"*/", "*/", "\\*", "*\\" ....
??
-
Du könntest den String mit Regulären Ausdrücken durchparsen.
-
Hab sowas nie gemacht, kannst du es näher beschreiben bzw. ein kleines Beispiel zeigen
-
Dann wird es Zeit das du es lernst
Lies dich einfach mal hier ein wenig durch.
http://www.google.de/search?hl=de&q=Regex&btnG=Google-Suche&meta=&aq=f&oq=
-
Zu dem Thema gab es schon mehrere Threads hier, bemüh einfach mal die Suchfunktion.
-
Hier gibt es ein sehr gutes Tutorial für den Einstieg in Regex in Verbindung mit .NET.
Hoffe es ist ok wenn man in andere Foren verlinkt, denn das Tutorial lohnt sich.
(Nein das Tutorial ist nicht von mir)
-
Firefighter schrieb:
Du könntest den String mit Regulären Ausdrücken durchparsen.
Wäre es nicht besser wenn er gleich einen Parser nimmt und den Ausdruck in einen Baum darstellt? Ich meine er will ja nicht nur die Syntax prüfen sondern muß ihn auch noch im zweiten Schritt berechnen. Das kann ja der Parser mitmachen.
-
Ja klar wäre es gleich besser da hast du Recht. Mein Gedanke war nur, eine Frage, eine Antwort
Das er später eventuell eh nochmal auf diese Frage des Parsens zurückkommt war ja logisch.Aber du hast Recht, direkt durchparsen macht gleich alles zusammen.