Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Agenda Sitzung 2 für den Programmaufbau

Ähnliche Präsentationen


Präsentation zum Thema: "Agenda Sitzung 2 für den Programmaufbau"—  Präsentation transkript:

0 Einführung in C Grundprinzipien

1 Agenda Sitzung 2 für den 21.10.2002 Programmaufbau
Grundlegende Datentypen Arrays Statements Funktionen Einstieg in die Stringverarbeitung Programmierstil OpenGL Praktikum (S2)

2 1. Zusammensetzung eines C-Programms
Header-Dateien Programm-Dateien Libraries OpenGL Praktikum (S2)

3 2. Struktur von Programm-Dateien
Preprocessor Kommandos Kommentare /* dies ist ein Kommentar */ // dies ist eine einzelne Kommentarzeile (Globale) Variablen )mit möglicher Initialisierung Funktionen besondere Funktion main() OpenGL Praktikum (S2)

4 Beispiel #include <stdio.h>
void hello() // a very simple function { printf (“Hello !\n”); } main() // all work starts here hello {}; OpenGL Praktikum (S2)

5 3. Preprocessor-Kommandos
Includes #include <standard_header.h> #include “my_header.h” Macros #define PI 3.14 #define ARRAY_SIZE 100 #define SUM(x,y) (x+y) OpenGL Praktikum (S2)

6 4. Grundlegende Datentypen
Leer void Integer int, unsigned int int i; long, unsigned long long l; unsigned long ul; short, unsigned short short s; unsigned short us; Character char, unsigned char char c; unsigned char uc; Enum enum color{red,green,blue}; enum color favorite; Floating point float float f; double double d; OpenGL Praktikum (S2)

7 5. Arrays Deklaration Zugriff n m k n[0] n[1] n[2] n[3] n[4] n[5] n[6]
#define MAX_ELEMS 10 int n[MAX_ELEMS], *m, *k; double matrix[4][4]; Zugriff matrix[j][k] = (double) n[i]; m = n; k = &(n[5]); k OpenGL Praktikum (S2)

8 6. Initialisierungen int i=0; int n[] = {3,2,8,10,4,7};
double mat[][]= {{1.0,0.0,0.0,0.0}, {0.0,1.0,0.0,0.0}, {0.0,0.0,1.0,0.0}, {0.0,0.0,0.0,1.0}}; OpenGL Praktikum (S2)

9 7. Statements Vergleiche Logische Verknüpfungen
größer >, kleiner <, gleich ==, ungleich !=, usw ... Logische Verknüpfungen und && oder || nicht ! (((i == j) && (m!=10)) || !(k >=50)) OpenGL Praktikum (S2)

10 7. Statements Zuweisungen Typkonversionen (casts) #define FALSE 0
i = 10; j = f(x); b = (exp(x)==FALSE) i++; i--; i+=3; i-=5; d*=PI; n/=2; Typkonversionen (casts) i = (int) d; d = (double) i; OpenGL Praktikum (S2)

11 7. Statements Bedingungen if (a==b) { ; // do this } else {
; // do that OpenGL Praktikum (S2)

12 7. Statements Switch statements char c = ‘b’; switch (c) {
case ‘a’: ; // do something break; case ‘b’: ; // do something else case ‘c’: ; // do yet something else } OpenGL Praktikum (S2)

13 7. Statements For-Schleife Nested for (i=0; i<IMAX; i++) {
; // do something } for ( ; ; ) v++; // infinite loop Nested for (j=0; j<JMAX; j++) { OpenGL Praktikum (S2)

14 7. Statements While-Schleife Do-While-Schleife While (exp == TRUE) {
; // do something } Do-While-Schleife do while (cond == TRUE); OpenGL Praktikum (S2)

15 8. Funktionen Spezifikation Aufruf
void myFunctionA (int i, double d, int vals[]) { ; // do something } int myFunctionB (int i, int j, char str[]) int val; return val; Aufruf myFunctionA (k,f,v); ival = myFunctionB(g,h,s); OpenGL Praktikum (S2)

16 9. Stringverarbeitung String-Deklaration Einfachste Manipulationen
#define MAXCHARS 80 char str1[MAXCHARS], str2[MAXCHARS]; Einfachste Manipulationen for (i=0; i<MAXCHARS]; i++) { str1[i] = str2[i]; } OpenGL Praktikum (S2)

17 9. Stringverarbeitung Wichtige schon existierende Funktionen
#include <string.h> int strlen (char *str); int strcmp (char *s1, char *s2); char *strcpy (char *dest, char *src); char *strcat (char *dest, char *src); OpenGL Praktikum (S2)

18 9. Stringverarbeitung Wichtige Konstante: ’\n’ Zeilenende
‘\0’ Stringende EOL End Of Line EOF End Of File OpenGL Praktikum (S2)

19 9. Stringverarbeitung Eingabe Ausgabe #include <stdio.h>
sscanf (char *str, char *format, ...pointers to variables ); sscanf (str, “%d %d %d”, &v1, &v2, &v3); auch: fscanf (...), scanf (); Ausgabe sprintf (char *str, char *format, ...variables...); sprintf (str, “i = %d\n”, i); auch: fprintf (...), printf (...); OpenGL Praktikum (S2)

20 9. Stringverarbeitung Konversion #include <stdlib.h>
double strtod (char *str, char **ptr); long strtol (char *str, char **ptr, int base); unsigned long strtoul (char *str, char **ptr, int base); double atof (char *str); int atoi (char *str); long atol (char *str); OpenGL Praktikum (S2)

21 10. Programmierstil Jeweils 4 Stellen einrücken. Block { ... }
Funktion { } OpenGL Praktikum (S2)

22 10. Programmierstil Macros nur in großen Buchstaben.
Variable und Funktionen beginnen mit kleinem Buchstaben, zusammengesetzte Wörter haben intern jeweils große Buchstaben. Kennzeichnende Vorsilbe bei Funktionen und globalen Variablen. OpenGL Praktikum (S2)


Herunterladen ppt "Agenda Sitzung 2 für den Programmaufbau"

Ähnliche Präsentationen


Google-Anzeigen