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) 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).