Prozeduren Flashcards
Prozeduren
° mächtigstes Abstraktionsmittel
° Prozeduraufruf bestimmt die Aktivität eines Programms
° Realisieren einen Algorithmus mit den Mitteln einer Programmiersprache
° sind benannte Folge von Anweisungen:
- Name ist sellvertretend für diese Anweisungsfolge
- Parameterübergabe
Parametrisierung
° Datenaustausch durch Parameter: Um die Anweisungsfolgen für verschiedene Fälle zutreffend zu formulieren
° Parameter sind Speicheradressen von Speicherzellen, an denen die Eingabe- oder Ausgabedaten stehen
° Höhere Programmiersprachen verwenden das Konzept getypter formaler Parameter
Formale Parameter
° im Kopf einer Prozedur, zur Datenübergabe ° Beispiel: int maximum(int a, int b) // a,b sind die Formalen Parameter vom Typ int { int max; if (a>b) { max = a; } else { max = b; } return max; }
Aktuelle Parameter
° entstehen beim Aufruf von Prozeduren
° Bei Eingabe-Parametern sind dies Ausdrücke, hier jeweils vom passenden Typ int
° Die Werte der Ausdrücke werden den formalen Parametern zugewiesen
° Beispiel:
….
int ergebnis = maximum(6,9); // 6,9: aktuelle Parameter
int ergebnis2 = maximum (ergebnis, 2x); //ergebnis, 2x: aktuelle Parameter
Regeln bei der Parameterübergabe
° Zur Übersetzungszeit wird überprüft (wird vom Kompiler ausgeführt):
° ob der Name im Aufruf die zu rufende Prozedur definiert
° Anzahl der aktuellen Parameter muss gleich der Anzahl der formalen Paramter sein
° Bindung der Parameter wir nach ihrer Position vorgenommen
° aktuelle Parameter müssen typkompatibel zu den formalen Parametern sein
Ergebnisprozedur
° sind Prozeduren, die die programmiersprachliche Form einer Funktion haben
° Ergebnis kann direkt in einem Ausdruck verwendet werden
° Prozeduren mit Ergebnistyp ungleich void sind (vorläufig) die einzige Möglichkeit, Informatonen von der gerufenen Prozedur an den Aufrufer zurück zu liefern
Formales Ergebnis
° Im Kopf kann eine Prozedur ein formales Ergebnis definieren
° Bei void, ist die Prozedur keine Ergebnisprozedur!! -> kein return!!
° Eine Ergebnisprozedur muss mit return ein Ergebnis liefern
Aktuelles Ergebnis
° Name der Ergebnisprozedur ist hier stellvertretend für das Ergebnis des Aufrufs
Kontrollfluss
-