12
EDV1 - 04C-Einführung 1 Einführung in C Einführung in C

EDV1 - 04C-Einführung 1 Einführung in C. 2EDV1 - 04C-EinführungLiteratur Helmut Erlenkötter C Programmieren von Anfang an Rowohlt Taschenbuch Verlag ISBN

Embed Size (px)

Citation preview

Page 1: EDV1 - 04C-Einführung 1 Einführung in C. 2EDV1 - 04C-EinführungLiteratur Helmut Erlenkötter C Programmieren von Anfang an Rowohlt Taschenbuch Verlag ISBN

EDV1 - 04C-Einführung 1

Einführung in CEinführung in C

Page 2: EDV1 - 04C-Einführung 1 Einführung in C. 2EDV1 - 04C-EinführungLiteratur Helmut Erlenkötter C Programmieren von Anfang an Rowohlt Taschenbuch Verlag ISBN

2EDV1 - 04C-Einführung

LiteraturLiteratur Helmut ErlenkötterHelmut Erlenkötter

C Programmieren von Anfang anC Programmieren von Anfang anRowohlt Taschenbuch VerlagRowohlt Taschenbuch VerlagISBN 3-499-60074-9ISBN 3-499-60074-919,90 DM19,90 DMhttp://http://www.erlenkoetter.dewww.erlenkoetter.de

Walter HerglotzWalter HerglotzDas Einsteigerseminar C++Das Einsteigerseminar C++bhv Verlags GmbHbhv Verlags GmbHISBN 3-89360-622-XISBN 3-89360-622-X19,80 DM19,80 DM

Page 3: EDV1 - 04C-Einführung 1 Einführung in C. 2EDV1 - 04C-EinführungLiteratur Helmut Erlenkötter C Programmieren von Anfang an Rowohlt Taschenbuch Verlag ISBN

3EDV1 - 04C-Einführung

C ist genau so wie JAVAC ist genau so wie JAVA- nur ein wenig anders.- nur ein wenig anders.

JAVA ist von ehemaligen C-Entwicklern mit dem Ziel entwickelt worden, JAVA ist von ehemaligen C-Entwicklern mit dem Ziel entwickelt worden, eine strukturiertere und sicherere Sprache als C zu schaffen.eine strukturiertere und sicherere Sprache als C zu schaffen.

Sinngemäßes Zitat:Sinngemäßes Zitat:„Von vielen (vorrangig Pascal-) Programmierern wird gesagt die, Sprache C „Von vielen (vorrangig Pascal-) Programmierern wird gesagt die, Sprache C sei chaotisch und unstrukturiert. Das ist auch wahr. Aber! Dadurch werden sei chaotisch und unstrukturiert. Das ist auch wahr. Aber! Dadurch werden die Programmierer dazu gezwungen, ordentlich und strukturiert zu die Programmierer dazu gezwungen, ordentlich und strukturiert zu programmieren.“programmieren.“

Page 4: EDV1 - 04C-Einführung 1 Einführung in C. 2EDV1 - 04C-EinführungLiteratur Helmut Erlenkötter C Programmieren von Anfang an Rowohlt Taschenbuch Verlag ISBN

4EDV1 - 04C-Einführung

Ähnlichkeiten zwischen JAVA und CÄhnlichkeiten zwischen JAVA und C Ausdrücke sind sehr ähnlich, gleiche Operatoren mit gleicher Wirkung, in C Ausdrücke sind sehr ähnlich, gleiche Operatoren mit gleicher Wirkung, in C

gibt es zusätzliche Operatorengibt es zusätzliche Operatoren Der Gebrauch von Klammern und Trennzeichen ist sehr ähnlich.Der Gebrauch von Klammern und Trennzeichen ist sehr ähnlich. /* ... */ Kommentare/* ... */ Kommentare Kompliziertere Objekte (Felder, Strukturen, Objekte in C++) werden über Kompliziertere Objekte (Felder, Strukturen, Objekte in C++) werden über

Referenzen (Zeiger, Pointer) adressiert.Referenzen (Zeiger, Pointer) adressiert. Parameter werden „by value“ übergeben.Parameter werden „by value“ übergeben.

Page 5: EDV1 - 04C-Einführung 1 Einführung in C. 2EDV1 - 04C-EinführungLiteratur Helmut Erlenkötter C Programmieren von Anfang an Rowohlt Taschenbuch Verlag ISBN

5EDV1 - 04C-Einführung

Unterschiede zwischen JAVA und CUnterschiede zwischen JAVA und C Ein- und Ausgabe ist völlig anders.Ein- und Ausgabe ist völlig anders. Zeiger müssen explizit genutzt werde.Zeiger müssen explizit genutzt werde. Dynamische Speicherverwaltung muss selbst realisiert werden.Dynamische Speicherverwaltung muss selbst realisiert werden. C beinhaltet eine Präprozessor.C beinhaltet eine Präprozessor. Der C-Compiler erzeugt ausführbare Programme, d.h. sie sind nicht Der C-Compiler erzeugt ausführbare Programme, d.h. sie sind nicht

portabel. Hardware-, Betriebssystem- oder Compileränderungen erfordern portabel. Hardware-, Betriebssystem- oder Compileränderungen erfordern mindestens die Neuübersetzung des Programms, ggf. sogar mindestens die Neuübersetzung des Programms, ggf. sogar Neuentwicklungen.Neuentwicklungen.

C enthält keine Standardbibliotheken für komplexe Funktionalitäten, wie C enthält keine Standardbibliotheken für komplexe Funktionalitäten, wie z.B.: GUIs, Datenbankzugriffe, Graphikfunktionen u.s.w. Diese z.B.: GUIs, Datenbankzugriffe, Graphikfunktionen u.s.w. Diese Funktionalitäten werden durch zusätzliche, oft kommerzielle Pakete Funktionalitäten werden durch zusätzliche, oft kommerzielle Pakete realisiert. Diese sind selten Hardware- und Betriebssystemunabhängig.realisiert. Diese sind selten Hardware- und Betriebssystemunabhängig.

Page 6: EDV1 - 04C-Einführung 1 Einführung in C. 2EDV1 - 04C-EinführungLiteratur Helmut Erlenkötter C Programmieren von Anfang an Rowohlt Taschenbuch Verlag ISBN

6EDV1 - 04C-Einführung

Erstes Beispiel - JAVAErstes Beispiel - JAVApublic class hello

{

public static void main (String args [])

{

System.out.println("Hello, world!\nDas ist"+

" unser erstes JAVA-Programm.\nAnzahl der"+

"Parameter : "+args.length);

for (int i=0; i<args.length; i++)

System.out.println("Parameter["+i+

"] = "+args[i]);

}

}

Page 7: EDV1 - 04C-Einführung 1 Einführung in C. 2EDV1 - 04C-EinführungLiteratur Helmut Erlenkötter C Programmieren von Anfang an Rowohlt Taschenbuch Verlag ISBN

7EDV1 - 04C-Einführung

Erstes Beispiel - CErstes Beispiel - Cint main (int argc, int* argv [])

{

int i;

printf("Hello, world!\nDas ist unser erstes"

"C-Programm.\nAnzahl der Parameter : %i\n",

argc);

for (i=0; i<argc; i++)

printf("Parameter[%i] = %s\n",i,argv[i]);

}

Page 8: EDV1 - 04C-Einführung 1 Einführung in C. 2EDV1 - 04C-EinführungLiteratur Helmut Erlenkötter C Programmieren von Anfang an Rowohlt Taschenbuch Verlag ISBN

8EDV1 - 04C-Einführung

Primitive DatentypenPrimitive Datentypen charchar : : ein byte langes Zeichenein byte langes Zeichen intint : : einfach genaue Festkommazahleinfach genaue Festkommazahl floatfloat : : einfach genaue Gleitkommazahleinfach genaue Gleitkommazahl doubledouble : : doppelt genaue Gleitkommazahldoppelt genaue Gleitkommazahl voidvoid : : kein Wert, 0 byte langkein Wert, 0 byte lang Modifikatoren:Modifikatoren:

signedsigned : : vorzeichenbehaftet (Standard)vorzeichenbehaftet (Standard) unsignedunsigned : : vorzeichenfreivorzeichenfrei longlong : : lange Version des Typslange Version des Typs shortshort : : kurze Version des Typs (Standard)kurze Version des Typs (Standard)

Page 9: EDV1 - 04C-Einführung 1 Einführung in C. 2EDV1 - 04C-EinführungLiteratur Helmut Erlenkötter C Programmieren von Anfang an Rowohlt Taschenbuch Verlag ISBN

9EDV1 - 04C-Einführung

Datentypen unter WindowsDatentypen unter Windows

TypTyp BytesBytes MinimalwertMinimalwert MaximalwertMaximalwert

charchar 11 -128-128 127127

unsigned charunsigned char 11 00 255255

short intshort int 22 -32768-32768 3276732767

unsigned short intunsigned short int 22 00 6553565535

intint 44 -2147483648-2147483648 21474836472147483647

unsigned intunsigned int 44 00 42949672954294967295

floatfloat 44 1.17549E-381.17549E-38 3.40282E+383.40282E+38

doubledouble 88 2.22507E-3082.22507E-308 1.79769E+3081.79769E+308

Page 10: EDV1 - 04C-Einführung 1 Einführung in C. 2EDV1 - 04C-EinführungLiteratur Helmut Erlenkötter C Programmieren von Anfang an Rowohlt Taschenbuch Verlag ISBN

10EDV1 - 04C-Einführung

Unterschiede zu JAVAUnterschiede zu JAVA Die Länge und interne Darstellung der Datentypen hängt vom Compiler, Die Länge und interne Darstellung der Datentypen hängt vom Compiler,

vom Prozessor, vom Betriebssystem und von Einstellungen ab!vom Prozessor, vom Betriebssystem und von Einstellungen ab! Alle Typen sind standardmäßig vorzeichenbehaftet auch Alle Typen sind standardmäßig vorzeichenbehaftet auch charchar!! Es existiert kein Es existiert kein booleanboolean-Typ.-Typ. Variablen müssen immer am Anfang einer Prozedur (Methode) vereinbart Variablen müssen immer am Anfang einer Prozedur (Methode) vereinbart

werden. In C++ können Variable auch im Programmtext vereinbart werden.werden. In C++ können Variable auch im Programmtext vereinbart werden.

Page 11: EDV1 - 04C-Einführung 1 Einführung in C. 2EDV1 - 04C-EinführungLiteratur Helmut Erlenkötter C Programmieren von Anfang an Rowohlt Taschenbuch Verlag ISBN

11EDV1 - 04C-Einführung

Logische AusdrückeLogische Ausdrücke Es existiert keinEs existiert kein booleanboolean-Typ!-Typ!

logische Ausdrücke ergeben logische Ausdrücke ergeben intint-Wert-Wert..0 :0 : falsefalse!= 0 :!= 0 : truetrue

Für alle Werte gilt: Null wird als Für alle Werte gilt: Null wird als falsefalse und alle anderen Werte werden als und alle anderen Werte werden als truetrue interpretiert. interpretiert.

Alle Ausdrücke, auch Zuweisungen liefern einen Wert (wie in JAVA).Alle Ausdrücke, auch Zuweisungen liefern einen Wert (wie in JAVA). Alle Ausdrücke sind in Vergleichen zulässig. Z.B.: Alle Ausdrücke sind in Vergleichen zulässig. Z.B.: if (i==1) { ... } else { ... }if (i==1) { ... } else { ... } if (i =1) { ... } else { ... }if (i =1) { ... } else { ... }

Page 12: EDV1 - 04C-Einführung 1 Einführung in C. 2EDV1 - 04C-EinführungLiteratur Helmut Erlenkötter C Programmieren von Anfang an Rowohlt Taschenbuch Verlag ISBN

12EDV1 - 04C-Einführung

Verzweigungen, ZyklenVerzweigungen, Zyklen Die Verwendung von folgender Konstrukte ist genau so wie in JAVA:Die Verwendung von folgender Konstrukte ist genau so wie in JAVA:

if – then – elseif – then – else forfor whilewhile do-whiledo-while switchswitch

Achtung! Es dürfen keine Variablen in der for – Anweisung definiert werden. Achtung! Es dürfen keine Variablen in der for – Anweisung definiert werden. Z.B.:Z.B.:int i;int i;......for (i=0; i<n; i++) ...for (i=0; i<n; i++) ...