07.10.2013 Aufrufe

Vorlesungsskript - Hochschule Emden/Leer

Vorlesungsskript - Hochschule Emden/Leer

Vorlesungsskript - Hochschule Emden/Leer

MEHR ANZEIGEN
WENIGER ANZEIGEN

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

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!