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) 38<br />

4 Algorithmenstrukturen in C ++<br />

4.0 Überblick<br />

Die in (Kap. 2) sprachunabhängig eingeführten drei wichtigen Algorithmus-Grundstrukturen<br />

werden hier auf die Sprache C ++ übertragen. Sie lernen hier alle durch C ++ unterstützten<br />

Formen von Folge, Auswahl und Wiederholung kennen. Ohne dieses Rüstzeug ist es<br />

kaum möglich, ein C ++-Programm zu schreiben.<br />

Nach einem Beipielprogramm werden dann in Unterkapitel 7 äußerst wichtige Grundregeln<br />

für das Schreiben von Programmen erläutert, die das Lesen beträchtlich erleichtern, nämlich<br />

Regeln für das Erzeugen von Namen und das Lay-out. Diese Regeln werden den ganzen<br />

Kurs über und auch für mögliche Folgekurse Gültigkeit haben.<br />

4.1 Folge (Sequenz), Gültigkeitsbereich in Blöcken<br />

(4.10) Übb Es wird der Begriff Block im Sinne einer zusammengesetzten Anweisung eingeführt.<br />

Das zugehörige geschweifte Klammernpaar ist in C ++/C sehr häufig anzutreffen. In diesem<br />

Zusammenhang werden weitere Begriffe (Gültigkeitsbereich, Verdeckung und lokale Namen)<br />

erläutert; ausführlicher wird dieses später in (7.15) geschehen.<br />

(4.11) Die (schachtelungsfähige) Folge (Kap. 2.2) wird in C ++ durch den Block verwirklicht:<br />

54 ZusammengesetzteAnweisung (oder Verbundanweisung, Block) C++ <br />

{Anweisung0..n}<br />

(4.12) Innerhalb eines Blocks deklarierte Namen werden lokale Namen genannt. Ihr Gültigkeitsbereich<br />

〈scope〉 (Bereich, in dem dieser Name existiert), erstreckt sich vom Deklarationspunkt<br />

bis zum Ende dieses Blocks.<br />

Ein Name kann in untergeordneten Blöcken verdeckt werden, indem er dort neu deklarariert<br />

wird; nach Austritt aus einem solchen untergeordneten Block ist der Name in der alten<br />

Bedeutung (bei Variablen: auch mit altem Wert) wieder verfügbar.<br />

↗ Einzelheiten s. (7.15).<br />

(4.13) Lokale Variable (Variable, die innerhalb eines Blocks definiert werden z. B. innerhalb von<br />

main()) haben meist keinen bestimmten Anfangswert, sondern ein ” zufälliges“ Bitmuster.<br />

Daher müssen solche Variable vor einem lesenden Zugtiff einen definierten Wert erhalten.<br />

↗ Genauer: eigentlich sind oben automatische Variable (8.13) gemeint. Ausnahmen sind Objekte<br />

mit sinnvoll gebauten Konstruktoren (9.21), ferner statische Variable (8.12).<br />

4.2 Boolesche Ausdrücke, Datentyp bool<br />

(4.20) Übb Im Gegensatz zu C und C++(alt) gibt es in C++(neu) den Booleschen Datentyp; er<br />

hat nur zwei möglich Werte, nämlich WAHR und FALSCH. Sie sollten diesen Typ viel<br />

benutzen, wenn nur zwei verschiedene Werte möglich sind, und nicht den Ersatztyp int für<br />

C-Programmierer.<br />

Die Boolschen Ausdrücke und ihre Verknüpfungen treten häufig auf; sie sind zur Formulierung<br />

von Auswahl- und Wiederholungsanweisungen nötig.<br />

(4.21) Datentypen für Bedingung bzw. Aussage, vgl. (2.31, 2.62).<br />

(a) C++(neu) Datentyp bool; der Wertevorrat besteht nur aus den beiden Konstanten true und<br />

false.<br />

Wenn nötig, geschieht eine implizite Umwandlung eines arithmetischen Ausdrucks in bool,<br />

und zwar ein Wert ungleich 0 in true und ein Wert gleich 0 in false, vgl. (4.23).

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!