Einzelnen Beitrag anzeigen

Benutzerbild von patti
patti

Registriert seit: 20. Okt 2004
Ort: Mittelfranken
665 Beiträge
 
Turbo Delphi für Win32
 
#6

Re: Taschenrechner - String durchsuchen

  Alt 28. Feb 2010, 14:48
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 Delphi-Referenz durchsuchenPos 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.
Patrick Kreutzer
[Informatik-Student im 4. Semester]
http://www.patti-k.de/
  Mit Zitat antworten Zitat