Einzelnen Beitrag anzeigen

Benutzerbild von sirius
sirius

Registriert seit: 3. Jan 2007
Ort: Dresden
3.443 Beiträge
 
Delphi 7 Enterprise
 
#13

Re: Erste Versuche zu Parsen um mit String zu rechnen

  Alt 10. Jun 2007, 18:32
Du rufst also "calculate('2*2+22')" auf:

Die Funktion zerlegt den Term in 2*2 und in 22 ,addirt die beiden Terme (4+22) und ist fertig. Und woher kommt die 4?
Er ruft ja mit beiden Teilstrings ('2*2' und '22') erneut die Funktion calculate auf, also quasi sich selber. Das ist rekursiver Funktionsaufruf. Du musst dir also vorstellen es gibt unendlich viele Funktionen namens calculate und alle machen dasselbe.

Beim zweiten Aufruf con calculate wird jetzt nur noch '2*2' übergeben. Hier rennt das Programm dann eben bis zur If-Bedingung mit dem pos('*',AsTerm), weil er ein "*" findet, rechnet das aus, bekommt ne 4 und gibt diese zurück an die erste Funktion (Instanz) von calculate. Die erste Instanz hat jetzt also seine 4.
Dieser Beitrag ist für Jugendliche unter 18 Jahren nicht geeignet.
  Mit Zitat antworten Zitat