Der Epina Delphi-Kurs bietet Ihnen eine allgemeine Einführung in das Programmieren mit Delphi/Pascal. Mit vielen ausgearbeiteten Beispielen können Sie direkt in die Delphi-Programmierung einsteigen. Mehr dazu finden Sie hier....

Unterprogramme

Professionelles Programmieren bedeutet immer auch mit möglichst wenig Aufwand den maximalen Erfolg zu erzielen. Eine der Strategien, möglichst hohe Effizienz beim Programmieren zu erzielen, ist der Einsatz von wiederverwendbarem Code. Dies ist u.a. eines der Ziele der objektorientierten Programmierung. Allerdings ist bereits der Einsatz von Unterprogrammen ein erster Schritt zu wiederverwendbarem Code.

Die Idee hinter Unterprogrammen ist einfach: wenn man einen Programmteil so gestaltet, dass dieser nur über eine definierte Schnittstelle benützt werden kann und keine Nebenwirkungen auftreten, so kann dieser Programmcode in verschiedenen Situationen immer wieder aufgerufen werden. Der Aufruf eines Unterprogramms geht dabei technisch so vor sich, dass die Rückkehradresse vor dem Aufruf auf dem Stack gespeichert wird. Am Ende des Unterprogramms nimmt dieses die Rückkehradresse vom Stack und springt dorthin.

Aus der Sicht des Programmierers gibt es zwei Arten von Unterprogrammen: Prozeduren und Funktionen. Der Unterschied zwischen diesen beiden Arten liegt in der Parameterübergabe. Funktionen haben einen durch den Funktionsnamen benannten Rückgabewert, während Prozeduren keinen solchen haben. Man kann also Funktionen in Ausdrücke syntaktisch genau so einbauen wie Konstanten. Allerdings liefern diese "Konstanten" keinen konstanten Wert sondern eben den jeweils berechneten Funktionswert.

Hinweis: Die klare Unterscheidung von Prozeduren und Funktionen ist eine Eigenart von Pascal, andere Programmiersprachen kennen nur Funktionen. In Object-Pascal darf man allerdings Funktionen so benützen als ob sie Prozeduren wären (man ignoriert also den Rückgabewert), so dass es de facto in diesem Punkt zu einer Angleichung von Pascal an andere Programmiersprachen kommt.

Last Update: 2008-09-09