Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Programmieren in C Grundlagen C 2 Hochschule Fulda – FB AI Sommersemester 2014 Peter Klingebiel, HS Fulda, DVZ.

Ähnliche Präsentationen


Präsentation zum Thema: "Programmieren in C Grundlagen C 2 Hochschule Fulda – FB AI Sommersemester 2014 Peter Klingebiel, HS Fulda, DVZ."—  Präsentation transkript:

1 Programmieren in C Grundlagen C 2 Hochschule Fulda – FB AI Sommersemester Peter Klingebiel, HS Fulda, DVZ

2 Programmieren in C - Peter Klingebiel - HS Fulda - DVZ2 Anweisung / Ausdruck 1 Programm setzt sich aus vielen Anweisungen (Zuweisungen, Vergleichen, Operationen, Funktionsaufrufen, usw.) zusammen Anweisung (statement) im strengen Sinn in C unbekannt Anweisung hat kein verwertbares Ergebnis Beispiel: Zuweisung in Pascal, Ada, … integer i; i := 123; Variable i hat nach Zuweisung den Wert 123, die Zuweisung selbst ist allerdings nicht weiter auswertbar!

3 Programmieren in C - Peter Klingebiel - HS Fulda - DVZ3 Anweisung / Ausdruck 2 C kennt keine Anweisungen (statements), sondern nur Ausdrücke (expressions) Ausdruck hat einen Wert (wie in Assembler!) Beispiel: Zuweisung in C int i; i = 4711; Zuweisung kann auch ausgewertet werden: int a, b, c, i, j; a = b = c = 3; if(i = 4711)... while(j = 1)...

4 Programmieren in C - Peter Klingebiel - HS Fulda - DVZ4 Anweisung / Ausdruck 3 Ausdruck Gültige Kombination von –Konstanten, Variablen, Operatoren –Operatoren, Funktionsaufrufen Reihenfolge der Auswertung –Vorrangregeln der Operatoren legen Reihenfolge der Auswertung implizit fest –Klammern ( ) legen Vorrangregeln explizit fest –Sind Vorrangregeln nicht eindeutig Reihenfolge der Auswertung nicht definiert –Compiler kann Ausdrücke / Teilausdrücke effizient auswerten / optimieren

5 Programmieren in C - Peter Klingebiel - HS Fulda - DVZ5 Datentyp short, int, long 1 Ganze Zahlen, Integerzahlen Typen short, int, long, long long Speicherbedarf maschinenabhängig –short <= int <= long <= long long –Heute z.B: short 16 Bit, int 32 Bit, long 64 Bit Vorzeichen –signed mit Vorzeichen –unsigned vorzeichenlos Konstanten, Beispiele: int a = 4711, b = -18; dezimal short x = 0x20 sedezimal (Basis 16) int y = 020; oktal (Basis 8)

6 Programmieren in C - Peter Klingebiel - HS Fulda - DVZ6 Datentyp short, int, long 2 Syntaxdiagramm

7 Programmieren in C - Peter Klingebiel - HS Fulda - DVZ7 Datentyp short, int, long 3 Dezimal-, Sedezimal-, Binärdarstellung

8 Programmieren in C - Peter Klingebiel - HS Fulda - DVZ8 Datentyp short, int, long 4 Operatoren / Operationen: Zuweisung = –Beispiel: int i; i = 4711; Vorzeichen + - –Beispiel: int j = -4711; Arithm. Op. + - * / % –Beispiel: k = i + j * 3 % 8;

9 Programmieren in C - Peter Klingebiel - HS Fulda - DVZ9 Datentyp short, int, long 5 Vergleichsoperatoren == != = expr1 op expr2 Ergebnis: wahr 1, falsch 0 Ergebnistyp int

10 Programmieren in C - Peter Klingebiel - HS Fulda - DVZ10 Datentyp short, int, long 6 Logische Operatoren ! && || Ergebnis: wahr 1, falsch 0 (Typ int ) expr1 op expr2

11 Programmieren in C - Peter Klingebiel - HS Fulda - DVZ11 Datentyp short, int, long 7 Bitoperatoren ~ & | ^ expr1 op expr2 bzw. ~expr

12 Programmieren in C - Peter Klingebiel - HS Fulda - DVZ12 Datentyp short, int, long 8 Bitshiftoperatoren > expr1 op expr2 Bits in expr1 um expr2 Bits verschoben –Bsp. 1 << 2 1 um 2 Bits nach links –Bsp: n >> 5 n um 5 Bits nach rechts

13 Programmieren in C - Peter Klingebiel - HS Fulda - DVZ13 Datentyp short, int, long 9 Inkrement- / Dekrementoperatoren Linkseitiger Operator ++n --n –Wert von n wird inkrementiert / dekrementiert –das Resultat wird als Ergebnis geliefert Rechtsseitiger Operator n++ n-- –Wert von n wird als Ergebnis geliefert –Danach wird n inkrementiert / dekrementiert

14 Programmieren in C - Peter Klingebiel - HS Fulda - DVZ14 Datentyp char 1 Einzelzeichen oder Integer 8 Bit Speicherbedarf 1 Byte (8 Bit) Konstanten, Zeichen durch ' ' geklammert char c1 = 'A', c2 = '1', c3 = '\n' Sonderzeichen mit \ beschrieben, Bsp: '\n' Zeilentrenner (NL) '\t' Tabulator (TAB) '\0' Stringende (NUL) '\"' Anführungszeichen '\\' Backslash, Fluchtzeichen Darstellung im ASCII-Code char Untertyp von Ganzzahlen int

15 Programmieren in C - Peter Klingebiel - HS Fulda - DVZ15 Datentyp char 2 ASCII-Zeichensatz 7 Bit

16 Programmieren in C - Peter Klingebiel - HS Fulda - DVZ16 Datentyp char 3 ASCII-Zeichensatz 8 Bit (PC, MS-DOS)

17 Programmieren in C - Peter Klingebiel - HS Fulda - DVZ17 Datentyp char 4 ANSI-Zeichensatz 8 Bit (Windows)

18 Programmieren in C - Peter Klingebiel - HS Fulda - DVZ18 Datentyp char 5 Repräsentation (ASCII): Sinnvolle Operatoren/Operationen bei char : = (Zuweisung) + - (arithm. Operationen) == != = (Vergleich) Wird char als Byte (8 Bit-Integer) genutzt alle int -Operationen sinnvoll

19 Programmieren in C - Peter Klingebiel - HS Fulda - DVZ19 Datentyp char 6 Ascii-Tabelle ausgeben: ascii.c

20 Programmieren in C - Peter Klingebiel - HS Fulda - DVZ20 Datentypen float, double, long double 1 Fließkommazahlen Typen float, double, long double Speicherbedarf –float < double < long double –float 32 Bit, double 64 Bit, long double 128 Bit Repräsentation nach IEEE 754IEEE 754 –Beispiel: float 32 Bit

21 Programmieren in C - Peter Klingebiel - HS Fulda - DVZ21 Datentypen float, double, long double 2 Syntaxdiagramm

22 Programmieren in C - Peter Klingebiel - HS Fulda - DVZ22 Datentypen float, double, long double 3 Konstanten, Beispiele: float p = 3.141, a = , b = (Obacht: 1 oder 0 int) 7.0e-3 (0.007) e2(765.43) Operatoren / Operationen: = (Zuweisung) + - (Vorzeichen) + - * / (arithm. Op.) == != = (Vergleich) Vorsicht bei Vergleichsoperationen wegen Ungenauigkeiten in Darstellung (z.B. bei 0.0)

23 Programmieren in C - Peter Klingebiel - HS Fulda - DVZ23 Weitere Operatoren 1 Spezielle Zuweisungsoperatoren verkürzte Schreibweise für Operationen auf Variablen a op= b a = a op b Arithm. Operatoren: + - * / % Bitoperatoren: > & | ^ Beispiele: int n = 12 n -= 24 n /= 3 n <<= 3

24 Programmieren in C - Peter Klingebiel - HS Fulda - DVZ24 Weitere Operatoren 2 Operator sizeof Ermittelt Größe von Typ / Variablen in Bytes Beispiel: long l; sl = sizeof(l) sd = sizeof(double) Beispiel: Sun Sparc 32 Bit

25 Programmieren in C - Peter Klingebiel - HS Fulda - DVZ25 Weitere Operatoren 3 Komma-Operator, Erlaubt die Aneinanderreihung mehrerer Ausdrücke Wert = Wert des letzen Teilausdrucks Beispiel (etwas sinnlos): Beispiel (sinnvoller): for(i = 0, j = 0, k = 1; … )

26 Programmieren in C - Peter Klingebiel - HS Fulda - DVZ26 Weitere Operatoren 4 Bedingte Bewertung ? : expr1 ? expr 2 : expr3 Verkürzte Formulierung von Bedingungen Auswertung –Erst Auswertung von expr1 –Wenn expr1 0 dann gesamter Ausdruck expr2 –Sonst gesamter Ausdruck expr3 Beispiel max(a, b) und min(a, b):

27 Programmieren in C - Peter Klingebiel - HS Fulda - DVZ27 Vorrangregeln bei Operatoren OperatorenklasseOperatorenAssoziativität Unär ! ~ Von rechts nach links Multiplikativ * / % Von links nach rechts Additiv + - Von links nach rechts Shift > Von links nach rechts Relational >= Von links nach rechts Gleichheit == != Von links nach rechts Bitweise & Von links nach rechts Bitweise ^ Von links nach rechts Bitweise | Von links nach rechts Logisch && Von links nach rechts Logisch || Von links nach rechts Bedingte Bewertung ?: Von rechts nach links Zuweisung = op= Von rechts nach links Reihung, Von links nach rechts

28 Programmieren in C - Peter Klingebiel - HS Fulda - DVZ28 Typumwandlung in Ausdrücken 1 Automatische Typumwandlung bei unterschiedlicher Typen in Ausdrücken

29 Programmieren in C - Peter Klingebiel - HS Fulda - DVZ29 Typumwandlung in Ausdrücken 2 Beispiel: Explizite Typumwandlung (casting) (type) expr


Herunterladen ppt "Programmieren in C Grundlagen C 2 Hochschule Fulda – FB AI Sommersemester 2014 Peter Klingebiel, HS Fulda, DVZ."

Ähnliche Präsentationen


Google-Anzeigen