Vorlesungsskript - Hochschule Emden/Leer
Vorlesungsskript - Hochschule Emden/Leer
Vorlesungsskript - Hochschule Emden/Leer
Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
c○ Prof. Dr. B. Bartning, HS <strong>Emden</strong>/<strong>Leer</strong> Rumpfskript ” Informatik I/II“ (WS/SS 2010/11) 76<br />
7 Prozedurale Programmierung<br />
7.0 Überblick<br />
Die prozedurale Programmierung ist – sprachunabhängig – in (Kap. 6.2) näher beschrieben.<br />
Sie setzt im wesentlichen nur Prozeduren oder Funktionen als Baueinheiten ein.<br />
Eine Funktion oder Prozedur – beides in C ++ Funktion genannt – ist eine Zusammenfassung<br />
von Programmcode unter einem Namen, so dass man diesen Code öfters nur unter Nennung<br />
des Namens ausführen kann; hierzu gehören meist auch aktuell immer neu besetzbare<br />
Parameter. Unterkap. 1 beschreibt, wie eine solche Funktion definiert (gebaut) und wie sie<br />
aufgerufen (benutzt) werden kann.<br />
Da in C ++ der Grundsatz gilt, dass dem Compiler vor der Benutzung eines Namens dieser ihm<br />
erst einmal vorgestellt werden muss, kann die richtige Reihenfolge (Definition einer Funktion<br />
vor ihrem ersten Aufruf) manchmal recht schwierig sein. Daher wendet man sehr häufig die<br />
Möglichkeit an, Funktionen anzukündigen, ohne sofort den Funktionscode zu zeigen. Dieses<br />
wird Funktionsdeklaration genannt (Unterkap. 2).<br />
Die Referenz erlaubt es, für bereits vorhandene Variable synonyme Namen zu vergeben<br />
(Unterkap. 3). Dieses wird allgemein nicht sehr häufig angewendet, jedoch im speziellen Fall<br />
der Funktionsparameter häufiger (Unterkap. 4). Hier wird ausführlich beschreiben, dass es<br />
in C ++ zwei streng zu unterscheidende Übergabearten für Funktionsparameter gibt (Wert<br />
und Referenz) und wie diese beiden Arten sinnvoll angewendet werden.<br />
Der Gültigkeitsbereich von Namen kann lokal (blockbezogen) oder global (dateibezogen)<br />
sein. Unterkap. 5 beschreibt diesen Sachverhalt und gibt sehr wichtige Programmierhinweise,<br />
welche Namen global und welche lokal sein sollen.<br />
Nach einigen Ergänzungen zu Funktionen in Unterkap. 6 führt Unterkap. 7 in das Gebiet der<br />
Rekursion bei Funktionen ein. Eine solche Rekursion kann in manchen Fällen die Programmierung<br />
sehr erleichtern. Es kann sein, dass es hier zunächst Probleme beim Verständnis<br />
gibt, daher sollten Sie den Erläuterungen in der Vorlesung genau folgen.<br />
Das Kapitel wird abgeschlossen mit einigen Hinweisen, wie man Funktionen erstellen sollte,<br />
damit sie gut sind.<br />
7.1 Funktionsdefinition und Funktionsaufruf, Gültigkeitsbereich in Blöcken<br />
(7.10) Übb Zunächst lernen Sie zu unterscheiden:<br />
(7.11)<br />
• Funktionsaufruf: Benutzung einer Funktion, hierzu benötigt man nur die Antwort auf<br />
die Frage ” Was?“ (Was leistet die Funktion?), s. (7.12), vgl. (6.12).<br />
• Funktionsdefinition: Konstruktion/Bau einer Funktion, hierbei geschieht die Beantwortung<br />
der Frage nach dem ” Wie?“ (Wie verwirklicht die Funktion das, was von ihr<br />
verlangt wird?), s. (7.11).<br />
In Punkt (7.13) wird ein Beispielprogramm vorgestellt mit Funktionsdefinitionen und Funktionsaufrufen.<br />
Eine Funktion aufzurufen bedeutet für den Prozessor zur Laufzeit eine große Verwaltungsarbeit.<br />
Die einzelnen Schritte, wie dieses geschieht, sind in (7.14) beschrieben. Es ist nützlich,<br />
dieses zu wissen; für das Programmieren selbst ist es meist weniger wichtig.<br />
Die Aktionen bei der Ausführung einer Funktion stehen in einer ZusammengesetztenAnweisung,<br />
dem Funktionsblock. (7.15) beschreibt daher Regeln für den Gültigkeitsbereich von<br />
Namen in Blöcken, auch z. B. in geschachtelten Blöcken.<br />
(a) 10/33 FunktionsDefinition (spezielle Deklaration, vereinfacht) <br />
12,14 RückgabeTyp 30,32(Alt.4) FunktionsBezeichner ( Parameterdeklarations-LISTEopt )<br />
54 ZusammengesetzteAnweisung