Child pages
  • Imperative Programme

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migrated to Confluence 5.3

...

Das Problem wurde gelöst, indem bei der Kantenzeichnung den einzelnen Knoten ihre Vorgänger mitgeteilt werden. Bezogen auf des obige Beispiel bedeutet das nun folgendes. Das Assignment i = k selbst hat (hier) keine Vorgänger. Es wird deshalb auch keine weitere Kante gezeichnet. Als nächstes wird die Kante für den If-Knoten gezeichnet werden. Der Vorgänger des If-Knoten ist das Assignment (i=k). Es wird die Kante 1 gezeichnet. Der rekursive Abstieg führt nun die Kantenzeichnung im False-Statement fort. Der Vorgänger vom Assignment i=1 ist das If-Statement. Es wird Kante 2 gezeichnet. Im True-Fall haben wir das Problem das der Block (hier) leer ist. Das bedeutet es gibt keinen Knoten innerhalb des True-Statements, von dem aus ein Pfeil zum If-Statement gezeichnet werden kann. Deshalb darf die Kante jedoch nicht vergessen werden.

BILD MIT KANTEN 

Image Added

Denn die Vorgänger das Assignments k=24 setzen sich wie folgt zusammen: Enthalten True- und False-Statement eines If-Statements Statements (welches keinen leeren Blöcke sind), so sind jeweils die letzten Statements innerhalb der beiden Fälle, die Vorgänger von k=42. Da hier jedoch das True-Statement einen leeren Block enthält, ist der Vorgänger (wie in der Abbildung zu sehen) das If-Statement selber. Das Assignment k=42 hat somit zwei Vorgänger (i=1 und if i>10). Das Assignment muss somit zwei Kanten (3 und 4) zeichnen.

...