eini-i einführung in die informatik für naturwissenschaftler und ingenieure i kapitel 4 claudio...

38
EINI-I EINI-I Einführung in die Einführung in die Informatik Informatik für Naturwissenschaftler für Naturwissenschaftler und Ingenieure I und Ingenieure I Kapitel 4 Claudio Moraga; Gisbert Dittrich FBI Unido [email protected]

Upload: gottlieb-reddin

Post on 05-Apr-2015

139 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: EINI-I Einführung in die Informatik für Naturwissenschaftler und Ingenieure I Kapitel 4 Claudio Moraga; Gisbert Dittrich FBI Unido moraga@cs.uni-dortmund.de

EINI-IEINI-IEinführung in die Informatik Einführung in die Informatik für Naturwissenschaftler und für Naturwissenschaftler und

Ingenieure IIngenieure I

Kapitel 4

Claudio Moraga; Gisbert Dittrich

FBI Unido

[email protected]

Page 2: EINI-I Einführung in die Informatik für Naturwissenschaftler und Ingenieure I Kapitel 4 Claudio Moraga; Gisbert Dittrich FBI Unido moraga@cs.uni-dortmund.de

2

Kap 4: Vereinbarungen + GültigkeitVorl “EINI-I"

9.11.2000

Gliederung Kapitel 4Gliederung Kapitel 4

• Vereinbarungen + Gültigkeit

– Vorweg: Beispiel Längste Zeile bestimmen + ...– Vereinbarungen– Gültigkeit– Namensanalyse– Zwiebelschalen– Statische Variablen

Page 3: EINI-I Einführung in die Informatik für Naturwissenschaftler und Ingenieure I Kapitel 4 Claudio Moraga; Gisbert Dittrich FBI Unido moraga@cs.uni-dortmund.de

3

Kap 4: Vereinbarungen + GültigkeitVorl “EINI-I"

9.11.2000

Beispiel: Längste Zeile bestimmenBeispiel: Längste Zeile bestimmen

• Problem: Möchte in unserem Text die längste Zeile kennenlernen und mit ihrer Länge ausgeben.

Längste Zeile bestimmen

Page 4: EINI-I Einführung in die Informatik für Naturwissenschaftler und Ingenieure I Kapitel 4 Claudio Moraga; Gisbert Dittrich FBI Unido moraga@cs.uni-dortmund.de

4

Kap 4: Vereinbarungen + GültigkeitVorl “EINI-I"

9.11.2000

// K4-P1: Laengste Zeile bestimmen//// Liest die Eingabe Zeichen fuer Zeichen, bis // das Endzeichen @ erscheint. // Die laengste Zeile wird ausgegeben (bei mehreren// Kandidaten, die erste).// Demonstriert: Konstanten, Funktionen

#include <iostream.h>#include <stdio.h>

int LiesZeile(char [] , int );void Kopiere(char [] , char [] );

// Es folgt das Hauptprogramm und die zwei Funktionen

// Funktionsprototypen

Page 5: EINI-I Einführung in die Informatik für Naturwissenschaftler und Ingenieure I Kapitel 4 Claudio Moraga; Gisbert Dittrich FBI Unido moraga@cs.uni-dortmund.de

5

Kap 4: Vereinbarungen + GültigkeitVorl “EINI-I"

9.11.2000

main() {const int LaengsteLaenge = 1000;int len, maxLaenge = 0;char Zeile[LaengsteLaenge], LaengsteZeile[LaengsteLaenge];

// Berechnunglen = LiesZeile(Zeile, LaengsteLaenge);while (len > 0) {

if (len > maxLaenge) {maxLaenge = len;Kopiere(Zeile, LaengsteZeile);

}len = LiesZeile(Zeile, LaengsteLaenge);

}//

// Ausgabe der Ergebnisse//cout << "die laengste Zeile hat " << maxLaenge

<< " Zeichen, sie lautet:\n" << LaengsteZeile << endl;}

Page 6: EINI-I Einführung in die Informatik für Naturwissenschaftler und Ingenieure I Kapitel 4 Claudio Moraga; Gisbert Dittrich FBI Unido moraga@cs.uni-dortmund.de

6

Kap 4: Vereinbarungen + GültigkeitVorl “EINI-I"

9.11.2000

// Erste Funktion

int LiesZeile(char s[], int lim) {char c; int i=0;const char Ende = '@', ZeilenEnde = '\n', Null = '\0';

c = getchar(); // Initialisierung für while-Schleife // // Verarbeitung "normaler" Zeichen in einer Zeile // while (i < lim - 1 && c != Ende && c != ZeilenEnde) { s[i] = c; ++i; c = getchar(); }

s[i] = Null;return i;

}

Page 7: EINI-I Einführung in die Informatik für Naturwissenschaftler und Ingenieure I Kapitel 4 Claudio Moraga; Gisbert Dittrich FBI Unido moraga@cs.uni-dortmund.de

7

Kap 4: Vereinbarungen + GültigkeitVorl “EINI-I"

9.11.2000

// Zweite Funktion

void Kopiere(char von[], char nach[]) {int i = 0;const char Null = '\0';while (von[i] != Null) {

nach[i] = von[i];++i;

}nach[i] = von[i];

// Hier wird das Ende-Zeichen gesetzt}

• Ausführen

Page 8: EINI-I Einführung in die Informatik für Naturwissenschaftler und Ingenieure I Kapitel 4 Claudio Moraga; Gisbert Dittrich FBI Unido moraga@cs.uni-dortmund.de

8

Kap 4: Vereinbarungen + GültigkeitVorl “EINI-I"

9.11.2000

Beispiel: lokale VariablenBeispiel: lokale Variablen

int LiesZeile(char [], int);

void Kopiere(char [], char []);

main() {const int LaengsteLaenge = 1000;

int len, maxLaenge = 0;

char Zeile[LaengsteLaenge];

char LaengsteZeile[LaengsteLaenge];

while (...) {

... }

cout << ... << endl;

...

}

lokal

Page 9: EINI-I Einführung in die Informatik für Naturwissenschaftler und Ingenieure I Kapitel 4 Claudio Moraga; Gisbert Dittrich FBI Unido moraga@cs.uni-dortmund.de

9

Kap 4: Vereinbarungen + GültigkeitVorl “EINI-I"

9.11.2000

Anmerkungen zum ProgrammAnmerkungen zum Programm

• Die formalen Parameter s[ ], von[ ], nach[ ] in LiesZeile/Kopiere sind als Felder gekennzeichnet, deren Länge erst beim Aufruf durch den aktuellen Parameter bekannt gegeben wird.

• Das ist praktisch: Bei der Vereinbarung einer Funktion muß die Länge eines Feldes, falls es als Parameter übergeben wird, noch nicht bekannt sein.

Damit kann man Funktionen allgemeiner schreiben.

Page 10: EINI-I Einführung in die Informatik für Naturwissenschaftler und Ingenieure I Kapitel 4 Claudio Moraga; Gisbert Dittrich FBI Unido moraga@cs.uni-dortmund.de

10

Kap 4: Vereinbarungen + GültigkeitVorl “EINI-I"

9.11.2000

ZeichenkettenZeichenketten

• Bei Feldern mit dem Grundtyp char ist letztes Zeichen stets das Zeichen '\0' [Konvention!].

• Eine Zeichenkette wort mit genau n Buch-staben sollte dann so vereinbart werden:char wort[n+1];

• Es sollte dann gesetzt werden wort[n] = '\0' .

• cin, cout können auf ganzen Zeichenketten arbeiten.

• cin überliest '\t', '\n' sowie Leerzeichen.

Page 11: EINI-I Einführung in die Informatik für Naturwissenschaftler und Ingenieure I Kapitel 4 Claudio Moraga; Gisbert Dittrich FBI Unido moraga@cs.uni-dortmund.de

11

Kap 4: Vereinbarungen + GültigkeitVorl “EINI-I"

9.11.2000

ZeichenkettenZeichenketten

• Konstante Zeichenketten werden in ".." notiert– Bsp.:

const char t[ ] = "aha, sagte er";

• "a" vs. 'a':– "a" ist eine Zeichenkette der Länge 1,

– 'a' ist ein Zeichen, '\0' fehlt !

a \0

Page 12: EINI-I Einführung in die Informatik für Naturwissenschaftler und Ingenieure I Kapitel 4 Claudio Moraga; Gisbert Dittrich FBI Unido moraga@cs.uni-dortmund.de

12

Kap 4: Vereinbarungen + GültigkeitVorl “EINI-I"

9.11.2000

BeispieleBeispiele

void Kopiere(char von[], char nach[]) {int i = 0;const char Null = '\0';while (von[i] != Null) {

nach[i] = von[i];++i;

}nach[i] = von[i];

}

Effekt: die Zeichenkette von wird in die Zeichenkettenach kopiert.

Vereinbare im folgenden Null als '\0':

Page 13: EINI-I Einführung in die Informatik für Naturwissenschaftler und Ingenieure I Kapitel 4 Claudio Moraga; Gisbert Dittrich FBI Unido moraga@cs.uni-dortmund.de

13

Kap 4: Vereinbarungen + GültigkeitVorl “EINI-I"

int laenge (char q[]) { int i = 0;while (q[i] != Null) i++;return i;

}

Berechnet die Länge der als Argument übergebenen Zeichenkette.

BeispieleBeispiele

Page 14: EINI-I Einführung in die Informatik für Naturwissenschaftler und Ingenieure I Kapitel 4 Claudio Moraga; Gisbert Dittrich FBI Unido moraga@cs.uni-dortmund.de

14

Kap 4: Vereinbarungen + GültigkeitVorl “EINI-I"

int isLower(char); // Funktionsprototypvoid ToUpper (char s[ ]) {char c, Null = '\0';int i = 0;c = s[i];while (c!= Null) {

if(isLower(c)) s[i] = c - 'a' + 'A';i++;c = s[i];}

}ersetzt jeden Kleinbuchstaben durch denentsprechenden Großbuchstaben.

BeispieleBeispiele

Page 15: EINI-I Einführung in die Informatik für Naturwissenschaftler und Ingenieure I Kapitel 4 Claudio Moraga; Gisbert Dittrich FBI Unido moraga@cs.uni-dortmund.de

15

Kap 4: Vereinbarungen + GültigkeitVorl “EINI-I"

hierbei:

int isLower(char c) {

return ((c >= 'a') && (c <= 'z'));

}

Die Funktion isLower überprüft, ob ein Buchstabe ein Kleinbuchstabe ist

Beispiele Beispiele

Page 16: EINI-I Einführung in die Informatik für Naturwissenschaftler und Ingenieure I Kapitel 4 Claudio Moraga; Gisbert Dittrich FBI Unido moraga@cs.uni-dortmund.de

16

Kap 4: Vereinbarungen + GültigkeitVorl “EINI-I"

void concat (char s[],char t[],char r[]) {int off, i=0; const char Null ='\0';while ((r[i] = s[i]) != Null) i++; off = i; i = 0;while ((r[off+i] = t[i])!= Null) i++;

}

Verkettet (Konkateniert) s und t zu r (d. h. nach concat ("123", "abc" , g) hat g die Zeichenkette "123abc" zum Inhalt)

BeispieleBeispiele

Page 17: EINI-I Einführung in die Informatik für Naturwissenschaftler und Ingenieure I Kapitel 4 Claudio Moraga; Gisbert Dittrich FBI Unido moraga@cs.uni-dortmund.de

17

Kap 4: Vereinbarungen + GültigkeitVorl “EINI-I"

Vergleich Z_Ketten

Beispiele (Forts.)Beispiele (Forts.)

• Vergleiche von Zeichenketten mit strcmp, wobei• der Vergleich lexikographisch durchgeführt wird

– also wie im Lexikon: Abraham steht for Bebra, Eigenheit steht vor Eigensinn

• Programm

Page 18: EINI-I Einführung in die Informatik für Naturwissenschaftler und Ingenieure I Kapitel 4 Claudio Moraga; Gisbert Dittrich FBI Unido moraga@cs.uni-dortmund.de

18

Kap 4: Vereinbarungen + GültigkeitVorl “EINI-I"

9.11.2000

// K4-P2: Vergleich zweier Zeichenketten// // Demonstriert den Vergleich zweier Zeichenketten

#include <iostream.h>

int strcmp(char[], char[]);// Funktionsprototyp

main() {char s[] = "Alberich", t[] = "Albert";if (strcmp(s, t) < 0)

cout << "s ist:\t" << s << endl << "t ist:\t" << t << endl << "\ts ist lexikographisch kleiner als t“ << endl;

cout << "\nist \"1\" kleiner als \"a\"? " << (strcmp("1", "a")? "ja": "nein") << endl;

}

Page 19: EINI-I Einführung in die Informatik für Naturwissenschaftler und Ingenieure I Kapitel 4 Claudio Moraga; Gisbert Dittrich FBI Unido moraga@cs.uni-dortmund.de

19

Kap 4: Vereinbarungen + GültigkeitVorl “EINI-I"

9.11.2000

/* Programm der Funktion strcmp zum Vergleich von zwei Zeichenketten */

int strcmp(char s[], char t[]) {int i = 0;while (s[i] == t[i])

if (s[i++] == '\0')return (0);

return (s[i] - t[i]);}

• Ausführen

Page 20: EINI-I Einführung in die Informatik für Naturwissenschaftler und Ingenieure I Kapitel 4 Claudio Moraga; Gisbert Dittrich FBI Unido moraga@cs.uni-dortmund.de

20

Kap 4: Vereinbarungen + GültigkeitVorl “EINI-I"

(a ? b : c) ist ein Ausdruck mit

a != 0: Wert b

a == 0: Wert c

Also: y = ( x > 0 ? 3 : 7);

ist gleichwertig zu

if ( x > 0) y = 3; else y = 7;

Der ?-OperatorDer ?-Operator

Page 21: EINI-I Einführung in die Informatik für Naturwissenschaftler und Ingenieure I Kapitel 4 Claudio Moraga; Gisbert Dittrich FBI Unido moraga@cs.uni-dortmund.de

21

Kap 4: Vereinbarungen + GültigkeitVorl “EINI-I"

y = ( x > 0 ? ( z < 7? 17 : z + 7) : x - 9)

ist gleichwertig zu

if (x > 0){

if ( z < 7) y = 17; else y = z + 7;

}

else

y = x - 9;

Kompakte Schreibweise. Lesbarkeit?

Der ?-OperatorDer ?-Operator

Page 22: EINI-I Einführung in die Informatik für Naturwissenschaftler und Ingenieure I Kapitel 4 Claudio Moraga; Gisbert Dittrich FBI Unido moraga@cs.uni-dortmund.de

22

Kap 4: Vereinbarungen + GültigkeitVorl “EINI-I"

Vereinbarungen von NamenVereinbarungen von Namen

• Man unterscheidet in C++ für Namen die Deklaration von der Definition:– Deklaration: informiert den Compiler über den Typ

einer Variablen – Definitionen: informiert den Compiler über

Speicherplätze, Werte etc

Page 23: EINI-I Einführung in die Informatik für Naturwissenschaftler und Ingenieure I Kapitel 4 Claudio Moraga; Gisbert Dittrich FBI Unido moraga@cs.uni-dortmund.de

23

Kap 4: Vereinbarungen + GültigkeitVorl “EINI-I"

int x;

const double z = 3.3;

sind Definitionen, denn Speicherplätze und ggf. Werte werden dadurch festgelegt.

VereinbarungenVereinbarungen

Page 24: EINI-I Einführung in die Informatik für Naturwissenschaftler und Ingenieure I Kapitel 4 Claudio Moraga; Gisbert Dittrich FBI Unido moraga@cs.uni-dortmund.de

24

Kap 4: Vereinbarungen + GültigkeitVorl “EINI-I"

extern float x;

ist eine Deklaration: x ist vom Typ float, aber an anderer Stelle definiert: weder Speicherbereich noch ein Wert werden an dieser Stelle festgelegt. Der Name wird lediglich mit seinem Typ bekanntgemacht, u.a. damit der Compiler seine korrekte Verwendung überprüfen kann.

VereinbarungenVereinbarungen

Page 25: EINI-I Einführung in die Informatik für Naturwissenschaftler und Ingenieure I Kapitel 4 Claudio Moraga; Gisbert Dittrich FBI Unido moraga@cs.uni-dortmund.de

25

Kap 4: Vereinbarungen + GültigkeitVorl “EINI-I"

Sichtweise des CompilersSichtweise des Compilers

• Information darüber, welche Art von Speicherbereich die Variable x einnehmen wird: das geschieht in der Deklaration für x

• Zuweisung des Speicherbereichs für x: das geschieht in der Definition für x

• ein Name kann nur einmal definiert, aber oft deklariert werden.

Page 26: EINI-I Einführung in die Informatik für Naturwissenschaftler und Ingenieure I Kapitel 4 Claudio Moraga; Gisbert Dittrich FBI Unido moraga@cs.uni-dortmund.de

26

Kap 4: Vereinbarungen + GültigkeitVorl “EINI-I"

Gültigkeit von Dekls und DefsGültigkeit von Dekls und Defs

• Gültigkeit bedeutet: Bezug auf eine sichtbare Definition.

• Jede Variable muß vor ihrer Benutzung definiert sein.

• Preisfrage: wann ist eine Definition sichtbar?– Die Regeln zur Sichtbarkeit bestimmen, wann eine

Benutzung an eine Definition gebunden ist.

Page 27: EINI-I Einführung in die Informatik für Naturwissenschaftler und Ingenieure I Kapitel 4 Claudio Moraga; Gisbert Dittrich FBI Unido moraga@cs.uni-dortmund.de

27

Kap 4: Vereinbarungen + GültigkeitVorl “EINI-I"

Gültigkeit etc. Gültigkeit etc.

• Definitionsbereiche sind:– Funktionsdefinitionen

• für lokale Variablen

– Dateien

• Dateien sind Namensräume:• Alle dort definierten Variablen sehen die Definition

– Extern:• mit extern kann auf Namen Bezug genommen werden,

die in anderen Dateien definiert sind [in Dateien, nicht in den Funktionen!].

Page 28: EINI-I Einführung in die Informatik für Naturwissenschaftler und Ingenieure I Kapitel 4 Claudio Moraga; Gisbert Dittrich FBI Unido moraga@cs.uni-dortmund.de

28

Kap 4: Vereinbarungen + GültigkeitVorl “EINI-I"

• Beispiel: Programm-Stücke in 4 Dateien 2 abgespeichert– Hauptprogramm: längste Zeile– Funktion LiesZeile– Funktion Kopiere– Fkt-Prototypen

Beispiel: GültigkeitBeispiel: Gültigkeit

Page 29: EINI-I Einführung in die Informatik für Naturwissenschaftler und Ingenieure I Kapitel 4 Claudio Moraga; Gisbert Dittrich FBI Unido moraga@cs.uni-dortmund.de

29

Kap 4: Vereinbarungen + GültigkeitVorl “EINI-I"

längste_Zeile.cpplängste_Zeile.cpp

const int LaengsteLaenge = 1000;char Zeile[LaengsteLaenge], LaengsteZeile[LaengsteLaenge];int LLaenge = LaengsteLaenge;

int main() {int len, maxLaenge = 0;

...}

Definition;in der

gesamtenDatei

sichtbar

Definition;lokal fürmain

Page 30: EINI-I Einführung in die Informatik für Naturwissenschaftler und Ingenieure I Kapitel 4 Claudio Moraga; Gisbert Dittrich FBI Unido moraga@cs.uni-dortmund.de

30

Kap 4: Vereinbarungen + GültigkeitVorl “EINI-I"

void Kopiere() {

const char Null = '\0';

int i=0;

extern char Zeile[], LaengsteZeile[];

while (Zeile[i] != Null) { LaengsteZeile[i] = Zeile[i];

++i; } LaengsteZeile[i] = Zeile[i]; }

Kopiere.cppKopiere.cpp

Page 31: EINI-I Einführung in die Informatik für Naturwissenschaftler und Ingenieure I Kapitel 4 Claudio Moraga; Gisbert Dittrich FBI Unido moraga@cs.uni-dortmund.de

31

Kap 4: Vereinbarungen + GültigkeitVorl “EINI-I"

int LiesZeile() {const char Null = '\0',

Ende = '@', ZeilenEnde = '\n';

char c; int i;

extern int LLaenge;extern char Zeile[];

...}

lokallokal

extern

LiesZeile.cppLiesZeile.cpp

int LiesZeile() {const char Null = '\0',

Ende = '@', ZeilenEnde = '\n';

char c; int i;

extern int LLaenge;extern char Zeile[];

...}

int LiesZeile() {const char Null = '\0',

Ende = '@', ZeilenEnde = '\n';

char c; int i;

extern int LLaenge;extern char Zeile[];

...}

Page 32: EINI-I Einführung in die Informatik für Naturwissenschaftler und Ingenieure I Kapitel 4 Claudio Moraga; Gisbert Dittrich FBI Unido moraga@cs.uni-dortmund.de

32

Kap 4: Vereinbarungen + GültigkeitVorl “EINI-I"

NamensanalyseNamensanalyse

• LaengsteZeile: – definiert in der Datei für das Hauptprogramm (main)

• also dort mit Speicherplatz versehen

– als extern deklariert in der Datei Kopiere.cpp• also dort als Name bekannt

• len: lokal für main• ZeilenEnde: lokal für LiesZeile

Page 33: EINI-I Einführung in die Informatik für Naturwissenschaftler und Ingenieure I Kapitel 4 Claudio Moraga; Gisbert Dittrich FBI Unido moraga@cs.uni-dortmund.de

33

Kap 4: Vereinbarungen + GültigkeitVorl “EINI-I"

Zwiebelschalen Zwiebelschalen

• Namen können innerhalb von Funktionen an beliebiger Stelle definiert werden, – {...} stellen dann Blöcke dar, die ineinander

geschachtelt sind.

• Regel: von innen nach außen beim Ermitteln der jeweils gültigen Definition.

• Beispiel: Zwiebelschalen

Page 34: EINI-I Einführung in die Informatik für Naturwissenschaftler und Ingenieure I Kapitel 4 Claudio Moraga; Gisbert Dittrich FBI Unido moraga@cs.uni-dortmund.de

34

Kap 4: Vereinbarungen + GültigkeitVorl “EINI-I"

Zwiebelschalen (Bild)Zwiebelschalen (Bild)

#include <iostream.h>int c = -568;int main() {

cout << "c zum ersten " << c << endl; float c = 1024.567;{

cout << "\tc zum zweiten " << c << endl; char c[] = "ganz innen";cout << "\t\tc jetzt: " << c << endl;

}cout << "\tc jetzt wieder: " << c << endl;

}

Page 35: EINI-I Einführung in die Informatik für Naturwissenschaftler und Ingenieure I Kapitel 4 Claudio Moraga; Gisbert Dittrich FBI Unido moraga@cs.uni-dortmund.de

35

Kap 4: Vereinbarungen + GültigkeitVorl “EINI-I"

Statische VariablenStatische Variablen

• Mittelding zwischen globalen und lokalen Variablen:– lokale Variablen

• leben nur, wenn die Funktion, in der sie deklariert sind, aktiv ist.

– statische Variablen • leben während der gesamten Laufzeit des Programms,• sind aber nur innerhalb ihres Definitionsbereichs zugreifbar.

– globale Variablen • sind überall im Programm zugreifbar.

Statische VariablenBeispiel:

Page 36: EINI-I Einführung in die Informatik für Naturwissenschaftler und Ingenieure I Kapitel 4 Claudio Moraga; Gisbert Dittrich FBI Unido moraga@cs.uni-dortmund.de

36

Kap 4: Vereinbarungen + GültigkeitVorl “EINI-I"

Statische VariablenStatische Variablen

• Unterschied zu lokalen Variablen: – statische Variablen behalten ihren Wert zwischen

zwei Aufrufen, – lokale Variablen werden bei jedem Aufruf neu

angelegt (der letzte Wert geht daher verloren)

Page 37: EINI-I Einführung in die Informatik für Naturwissenschaftler und Ingenieure I Kapitel 4 Claudio Moraga; Gisbert Dittrich FBI Unido moraga@cs.uni-dortmund.de

37

Kap 4: Vereinbarungen + GültigkeitVorl “EINI-I"

9.11.2000

//K4-P4: Statische Variable//// Demonstriert statische Variable//#include <iostream.h>void demoStatisch(); // Funktionsprototyp

int Global = 9;

main() {int i;

for(i=0; i < 3; ++i) {cout <<"\nDurchlauf i = "<< i << " :";demoStatisch();

}Global++;cout << "\nGlobal in main: "

<< Global << endl;

}

Page 38: EINI-I Einführung in die Informatik für Naturwissenschaftler und Ingenieure I Kapitel 4 Claudio Moraga; Gisbert Dittrich FBI Unido moraga@cs.uni-dortmund.de

38

Kap 4: Vereinbarungen + GültigkeitVorl “EINI-I"

9.11.2000

void demoStatisch() {static Statisch = 9;int nurLokal = 9;

// Erinnerung: cout <<"Durchlauf i = "<< i << " :"cout << "\nGlobal in demoStatisch: "

<< Global << endl;Global++;cout << "\tStatisch in demoStatisch: "

<< Statisch << endl;Statisch++;cout << "\t\tnurLokal in demoStatisch: "

<< nurLokal << endl;nurLokal++;

}

• Ausführen