Pascal: Prozeduren aus Prozeduren starten

Kann man in Turbo Pascal 7 eine Prozedur A aus einer Prozedur B starten?

Wenn ich dies versuche, bricht Pascal immer ab, es erscheint so, als ob Pascal die Prozedur A nicht finden würde.

Versuche ich jedoch Prozedur A im Hauptprogramm zu starten, so klappt dies.

Kann mir jemand helfen?

Gruß
Ben

Hi Ben,

Kann man in Turbo Pascal 7 eine Prozedur A aus einer Prozedur
B starten?

selbstverständlich ist das möglich. Damit es funktioniert, muß der Compiler die Prozedur A aber schon „kennen“, wenn er bei der Prozedur B angekommen ist. Diese Voraussetzung ist dann erfüllt, wenn der Code von A vor dem Code von B steht. Verschiebe also Deine Prozedur A vor die Prozedur B – dann müßte alles im Lot sein (es sein denn, A ruft ihrerseits B auf. In diesem Fall wird es knifflig, weil ja nicht sowohl A vor B als auch B vor A stehen kann. Dafür gibt es aber auch eine Lösung, die sogenannte „Vorwärtsdeklaration“. Wenn Dich das interessiert, frag am besten nochmal etra nach, oder lß es Dir von der Online-Hilfe – Schlüsselwort „FORWARD“ – erklären).

Versuche ich jedoch Prozedur A im Hauptprogramm zu starten, so
klappt dies.

Das ist logisch, weil das Hauptprogramm ja „nach“ allen Prozeduren folgt. Deshalb ist dort jede Prozedur „bekannt“ (außer die, die in anderen Prozeduren verschachtelt sind).

Übrigens kannst Du auch Prozeduren aus sich selbst heraus(!) starten, und es gibt Problemstellungen, wo dies sogar sehr sinnvoll ist. Den Selbstaufruf von Prozeduren oder Funktionen bezeichnet man in der Informatik als „Rekursion“.

Mit freundlichem Gruß
Martin