Grundlagen 1. Die Komponenten eines C Programms 2. Ein Programm erzeugen und übersetzen 3. Variablen Deklarieren und Werte zuweisen 4. Zahlen eingeben mit der Tastatur 5. Arithmetische Ausdrücke und Berechnungen 6. Kommentare 7. Eigene Funktionen schreiben 8. Funktionen mit Argumenten und Rückgabewert 9. Schlüsselworte in C Die Komponenten eines C Programms C ist eine prozedurale (funktionale) Programmiersprache ret-type function -name(param-list) statement -sequence Funktionsname beliebig, (paar Ausnahmen), aus Zeichen (a-z, A-Z, 0-9, _) am Anfang keine Ziffer, Case Sensitive! Myfuncist verschieden von myfunc! Eine Funktion muss vorhanden sein: main() Wenn die schliessende geschweifte Klammer von main() erreicht ist endet das Programm! Bibliotheksfunktionen: C standard library, I/O, String Manipulationen, mathematische Funktionen, etc. Bsp.: printf("text nach Ausgabe"); Das erste Programm printf("das erste Programm."); Header Datei wird eingebunden Hauptprogramm ohne Argument mit Rückgabewert int Ausdruck auf die Konsole mit printf Rückgabewert an Betriebssystem Unter UNIX: echo $? 1
Ein Programm erzeugen und übersetzen Schritte: editieren, übersetzen, linken -> vom Quelltext über das Object File zum Executable Entwicklungsumgebungen unter Windows: MS, Borland UNIX Editoren: vi, emacs, welcher? cc gehört zum Umfang von UNIX, Übersetzen, linken mit gcc, liefert a.out Achtung: Fast jeder C-Compiler heute ist auch ein C++ Compiler, Programme als C Programme übersetzen, nicht als C++ Programme! Unterscheidung durch Dateierweiterung (Extension) gcc test.c und nicht gcc test.cpp Variablen deklarieren und Werte zuweisen Variablen müssen deklariert werden vor der Verwendung Type Zeichen (Character) Vorzeichenbehaftete ganze Zahlen Gleitkommazahlen Doppeltgenaue Gleitkommazahlen Ohne Wert Schlüsselwort char int float double void Deklaration: typ var-name; Bsp.: int zaehler; float x,y,z; Deklaration lokal (in Funktion oder global, ausserhalb) Zuweisung: variable-name=value; Bsp.: zaehler=100; Schreiben: printf("wert von zaehler: %d", zaehler); Schreiben: printf("wert von x: %f!!!", x); Variablen, Werte, print: Beispielprogramm char ch; float f; double d; ch = 'X'; f = 100.123; d = 123.009; printf("ch is %c, ", ch); printf("f is %f, ", f); printf("d is %f", d); 2
Zahlen eingeben mit der Tastatur Standard Bibliotheksfunktion scanf() Sehr vielseitig und komplex, wir verwenden Sie jetzt nach Rezept für int und float Variable: scanf("%d", &int-var-name); scanf("%f", &float-var-name); Beispiele: int num; float temp; scanf("%d", &num); scanf("%f", &float); Ein-, Ausgabe, Beispielprogramm int num; float f; printf("integer eingeben: "); scanf("%d", &num); printf("enter a floating point number: "); scanf("%f", &f); printf("%d ", num); printf("%f", f); Arithmetische Ausdrücke und Berechnungen C hat sehr vielfältige Ausdrücke durch grosse Zahl an Operatoren (Java hat hier geerbt) Arithmetische Ausdrücke: Operator Bedeutung + Addition - Subtraktion * Multiplikation / Division % Divisionsrest (Modulo) 3*4+5=17, 3*(4+5)=27, Alles bekannt! Alles bekannt: %? 3
int i=11 printf("%d", 5/2); printf(" %d", 5%2); printf(" %d", 4/2); printf(" %d", i%2); i=-i; printf(" %d", i/2); Was gibt das Programm aus? Erst überlegen, dann probieren! Kommentare Kommentare sind wichtig! Kommentieren Sie Ihre Programme! /* das ist ein Kommentar in C */ // das ist ein Kommentar in C++, nicht in ANSI C // aber der Compiler wird es wahrscheinlich // akzeptieren /**/ /* printf("%d", 5/2); */ Obige 2 Zeilen korrekt? Funktionen sind die Blöcke aus denen C aufgebaut ist! Genereller Aufbau: Eigene Funktionen schreiben /* hier Header Files einfuegen */ /* hier Funktionsprototypen einfügen */ int main() Ret-type f1(param-list) Ret-type f2(param-list) /*...und weitere Funktionen*/ Funktionsprototyp: Kopf der Funktion Name Rueckgabewert Parameterliste abgeschlossen mit Semikolon 4
/* Ein Program mit 2 Functionen, was gibt es aus? */ Beispielprogramm mit Funktionen void func1(void); /* prototyp fuer func1() */ printf("i "); func1(); printf("c."); void func1(void) printf("like "); Bsp.: Funktionen mit Argumenten und Rückgabewert /* Demostration von */ void psum(int x, int y); int sum(int x, int y); int result; psum(1, 20); psum(9, 6); resultat=sum(81, 9); printf("%d ",result); void psum(int x, int y) printf("%d ", x + y); int sum(int x, int y) return x + y; auto double int struct break else long switch case enum register typedef char extern return union const float short unsigned continue for signed void default goto sizeof volatile do if static while 32 Schluesselwort aus ANSI C Schlüsselworte in C es gibt gaengige Erweiterungen: asm _cs _ds _es _ss cdecl near far tiny huge interrupt... 5