Programmieren in C Grundlagen C 4 Hochschule Fulda
- Slides: 51
Programmieren in C Grundlagen C 4 Hochschule Fulda – FB AI Wintersemester 2014/15 http: //c-ai. rz. hs-fulda. de Peter Klingebiel, HS Fulda, DVZ
Anweisungen • Anweisung im allgemeinsten Sinn: Programmieren in C - Peter Klingebiel - HS Fulda - DVZ 2
Ausdrücke 1 • Ausdrücke (siehe auch früherer Abschnitt) – Definitionen, Zuweisungen, … – arithmetische, logische, … Operationen, … • Bei Zuweisungen zu beachten: gültiger l-value und r-value – l-value (left, location) Variable mit Speicherplatz – r-value (right, read) auswertbarer Ausdruck • Beispiel: int i, j; i = 9 / 3; 45 = j; /* gültiger l-value */ /* ungültiger l-value */ Programmieren in C - Peter Klingebiel - HS Fulda - DVZ 3
Ausdrücke 2 • Sind die Zuweisungen korrekt? Programmieren in C - Peter Klingebiel - HS Fulda - DVZ 4
Blöcke 1 • Zusammenfassung mehrerer Anweisungen • Geklammert mit { } • v. a. bei Funktionen, Kontrollstrukturen, aber auch lokale Blöcke, Unterblöcke • zur Definition z. B. von lokalen Variablen, insbesondere Hilfsvariablen • legt Lebensdauer von Variablen fest • legt Sichtbarkeit (Scope) von Variablen fest • Bei Namensgleichheit ist Variable des innersten Blocks sichtbar Programmieren in C - Peter Klingebiel - HS Fulda - DVZ 5
Blöcke 2 Programmieren in C - Peter Klingebiel - HS Fulda - DVZ 6
Kontrollstrukturen • Kontrolle des Programmablaufs abhängig von Ergebnis von Ausdrücken • Selektionen / bedingte Anweisungen – Einfache Alternative if … else – Mehrfache Alternative if … else – Fallunterscheidung switch • Iterationen / Schleifen – Abweisende Schleife while – Annehmende Schleife do … while – Laufanweisung for Programmieren in C - Peter Klingebiel - HS Fulda - DVZ 7
Selektionen 1 • Bedingte Anweisung if • Syntax: if (ausdruck) anweisung • Struktogramm Programmieren in C - Peter Klingebiel - HS Fulda - DVZ 8
Selektionen 2 • Bedingte Anweisung if … else if (ausdruck) anweisung else anweisung Programmieren in C - Peter Klingebiel - HS Fulda - DVZ 9
Selektionen 3 • Anweisung kann ein Block sein, bei mehreren Ausdrücken Verwendung von { } notwendig • Beispiel: int c, i; . . . c = getchar(); if (c != EOF) { if(i < 32) { putchar(c); i++ } } Programmieren in C - Peter Klingebiel - HS Fulda - DVZ 10
Selektionen 4 • Beispiel: Zeichen groß klein und vice versa int c; . . . c = getchar(); if ( (c >= 'A' && (c >= 'a' && { if (c >= 'A' && c = c – 'A' + else c = c – 'a' + }. . . c <= 'Z') || c <= 'z')) c <= 'Z') 'a'; 'A'; Programmieren in C - Peter Klingebiel - HS Fulda - DVZ 11
Selektionen 5 • Beispiel: ctoggle. c Programmieren in C - Peter Klingebiel - HS Fulda - DVZ 12
Selektionen 6 • Mehrfache Alternative if…else if (ausdruck_1) anweisung_1 else if(ausdruck_2) anweisung_2 else if(ausdruck_3) anweisung_3 else if (ausdruck_n) anweisung_n. . . else /* kann auch fehlen */ anweisung_else Programmieren in C - Peter Klingebiel - HS Fulda - DVZ 13
Selektionen 7 • Syntaxdiagramm Programmieren in C - Peter Klingebiel - HS Fulda - DVZ 14
Selektionen 8 • Mehrfache Alternative / Fallunterscheidung switch(ausdruck){ case k 1: anweisung_1; break; case k 2: anweisung_2; break; . . . default: anweisung_default; } Programmieren in C - Peter Klingebiel - HS Fulda - DVZ 15
Selektionen 9 • Syntaxdiagramm Programmieren in C - Peter Klingebiel - HS Fulda - DVZ 16
Selektionen 10 • Beispiel enum color { red, green, blue }; enum color col = red; switch(col) { case red: printf("Farbe: rotn"); break; case green: printf("Farbe: grünn"); break; case blue: printf("Farbe: blaun"); break; default: printf("Farbe: nicht definiert!n"); } Programmieren in C - Peter Klingebiel - HS Fulda - DVZ 17
Selektionen 11 • Beispiel: lettercount. c Programmieren in C - Peter Klingebiel - HS Fulda - DVZ 18
Selektionen 12 • Beispiel: mydraw 3. c Programmieren in C - Peter Klingebiel - HS Fulda - DVZ 19
Iterationen 1 • Abweisende Schleife while, manchmal auch kopfgesteuerte Schleife genannt • Syntax while (ausdruck) anweisung • Bedingung ausdruck wird vor Ausführung vom Schleifenkörper anweisung geprüft • Schleifenkörper wird nur ausgeführt, wenn Bedingung ausdruck wahr ist Programmieren in C - Peter Klingebiel - HS Fulda - DVZ 20
Iterationen 2 • Struktogramm • Beispiel: int c; while ((c = getchar()) != EOF){ putchar(c); } Programmieren in C - Peter Klingebiel - HS Fulda - DVZ 21
Iterationen 3 • Annehmende Schleife do while, machmal auch fußgesteuerte Schleife genannt • Syntax do anweisung while (ausdruck) • Bedingung ausdruck wird erst am Ende des Schleifenkörperts geprüft • Schleife wird mindestens einmal durchlaufen Programmieren in C - Peter Klingebiel - HS Fulda - DVZ 22
Iterationen 4 • Struktogramm • Beispiel char *s 1, *s 2; do *s 2++ = *s 1++; while (*s 1); Programmieren in C - Peter Klingebiel - HS Fulda - DVZ 23
Iterationen 5 • Beispiel: stringcopy() mit while -Schleife void stringcopy(char *s 1, char *s 2) { while(*s 1) *s 2++ = *s 1++; *s 2 = '