Hi und willkommen in der
DP
Zitat von
Speedi2000:
Wir haben in der Schule grade mit Delphi angefangen, und sollen nun einen Taschenrechner programmieren.
Das sog. "Parsen", also das Umwandeln eines Strings in eine für den Computer lesbare Form und die anschließende Berechnung, ist aber kein Projekt für "Anfänger". Da gehört einiges dazu und man muss einiges beachten. Bist du dir sicher, dass ihr einen Taschenrechner programmieren sollt, der Terme ausflösen kann
Ich würde einfach mal behaupten, dass ein richtiger Parser den schulischen Rahmen sprengt, denn das ist komplexer, als man auf Anhieb vermutet.
Wenn du dich wirklich daran versuchen willst, dann musst du dir
vorher genaue Gedanken machen, wie du das angehen willst. Da gibt es sicherlich mehrere Möglichkeiten, die man verfolgen kann, aber letzendlich musst du alles selber machen, Delphi nimmt dir da im ersten Moment nichts ab.
Alternativ kannst du mal in der
DP nach "Parser" suchen, da sollte sich inzwischen einiges finden lassen.
mfg
Edit: Hab gerade mal bei meinem Parser, den ich vor Kurzem geschrieben habe, nachgeschaut. Die
Unit hat exakt 732 Zeilen (gut, der kann noch etwas mehr, wie z.B. Klammern, Funktionen, ...). Daran sieht man aber doch sehr deutlich, was da für eine Arbeit dahintersteckt.
Edit2: Zu deiner Frage: Mit
Pos kannst du einen Substring innerhalb eines gegebenen Strings suchen. Wenn die Funktion einen Wert, der größer als 0 ist, zurückliefert, dann entspricht der Wert der ersten gefundenen Stelle des Substrings im String. Du könntest versuchen, zuerst alle Multiplikationszeichen zu behandeln. Dazu suchst du einfach in dem String das '*'-Zeichen. Wenn der Wert > 0 ist, dann existiert so ein Zeichen. Anschließend musst du ausgehend von dieser Stelle in beide Richtungen solange den String Zeichen für Zeichen durchgehen, bis du ein Zeichen erreichst, welches keine Zahl ist. Wenn du dazu Fragen haben solltest, dann kannst du sie hier gerne stellen.