Programmieren in C Übersicht

Werbung
Programmieren in C
Eine Einführung in die Programmiersprache C
Prof. Dr. Nikolaus Wulff
Agenda
•
•
•
•
•
•
•
•
•
•
Elementare Einführung
C Programm Syntax
Datentypen, Variablen und Konstanten
Operatoren und Ausdrücke
Kontrollstrukturen
Funktionen und Programmstruktur
Zeiger und Felder
Strukturen
Ein- / Ausgabe
Bibliotheksfunktionen
Prof. Dr. Nikolaus Wulff
Programmieren in C
2
Der Anfänger sollte nicht entmutigt sein,
wenn er nicht die Voraussetzungen besitzt,
um die Voraussetzungen zu verstehen ...

Prof. Dr. Nikolaus Wulff
Programmieren in C
3
Kurze Historie von C
• C wurde Anfang der siebziger Jahre von Kernighan und
Ritchie für das UNIX Betriebssystem entwickelt.
• C ist eine sehr systemnahe Sprache, die es ermöglicht
(fast) ohne Assembler auszukommen.
• ANSI C wurde 1988 standardisiert und existiert für nahezu
alle Betriebssysteme.
• 1983 wurde die objektorientierte Erweiterung C++ von
Bjarne Stroustrup in den Bell Laboratorien entwickelt.
• Viele Sprachen wie z.B. Java, C#, Perl, PHP, etc. besitzen
eine C ähnliche Syntax und sind – bis auf die objektorientierten Konzepte – mit C Kenntnissen leicht zu erlernen.
Prof. Dr. Nikolaus Wulff
Programmieren in C
4
Programmiersprachen
1950
1960
Assembler
Cobol
OO-Sprachen
Fortran
PL/1
Algol
Lisp
Simula
BCPL
Pascal
1970
Smalltalk-72
CLU
C
1980
beta
C++
Lisp
Flavors
Smalltalk-76
Ada
Smalltalk
Modula2
Lisp
CLOS
Eiffel
Turbo-Pascal
1990
Oberon
Java
2000
Modula3
C#
Prof. Dr. Nikolaus Wulff
Programmieren in C
5
Literatur
• B.W. Kernighan und D.M. Ritchie,
Programmieren in C, 2.te Auflage ANSI C,
1978 &1988, ISBN 3-446-15497-3
• C.L. Tondo und S. E. Gimpel,
Das C-Lösungsbuch zu K&R
1989, ISBN 3-446-15946-0
• C. Schirmer, (veraltet)
Die Programmiersprache C,
1984, ISBN 3-446-14621-0
Prof. Dr. Nikolaus Wulff
Programmieren in C
6
C in der Nussschale
• Ein Programm besteht aus einer Menge von
Anweisungen für den Computer.
• In den höheren Programmiersprachen sind diese
Anweisungen in einer dem Menschen
verständlichen, lesbaren Form notiert, dem
sogenannten Quelltext ( Sourcecode).
• Dieser besteht aus einer Folge von Zeichen:
– Den Buchstaben a-z, A-Z sowie dem Unterstrich _
– Den Ziffern 0-9
– Sonderzeichen und dem Leerzeichen
• Die Syntax der Sprache bestimmt die erlaubten
Ausdrücke, die verwendet werden dürfen.
Prof. Dr. Nikolaus Wulff
Programmieren in C
7
C in der Nussschale cont.
• C kennt verschiedene Datentypen, wie z. B.
Ganzzahlen und die reellen Zahlen oder auch
einzelne Zeichen und Zeichenketten.
• Bevor eine Variable verwendet werden kann,
muss diese entsprechend definiert werden.
int
i;
float f;
char c;
Drei Variablen vom Typ Integer,
Gleitkommazahl und Zeichen werden
definiert. Die Namen i, f und c sind
willkürlich gewählt.
• Einer definierten Variable wird zur Laufzeit ein
entsprechender Speicherplatz zugewiesen.
Prof. Dr. Nikolaus Wulff
Programmieren in C
8
C in der Nussschale cont.
• C Quelltexte bestehen aus Anweisungen, die
durch ein Semikolon abgeschlossen werden.
int i;
i = 2+3;
Eine Integer Variable wird definiert
und mit dem Wert 2+3=5 belegt.
• Anweisungen können zu Blöcken zusammengefasst werden, die durch geschweifte Klammern {}
eingeleitet und beendet werden.
if(i>4) {
i = 2;
}
Prof. Dr. Nikolaus Wulff
Nur wenn die Variable i einen Wert
größer als 4 hat wird der Block
ausgeführt...
Programmieren in C
9
Hello World in C
/**
* Der C Klassiker
*/
3
#include <stdio.h> /* Standard I/O Bibliothek einbinden */
/* main-Funktion ist der C Einstiegspunkt */
1
int main() {
/* Hello World per Funktion printf ausgeben */
2
printf("Hello, World");
/* Das Programm mit return Wert 1 beenden
4
*/
return 1;
}
• Die main-Funktion gibt die Zeichenkette „Hello, World“ mit der
Bibliotheksfunktion printf aus.
• Die Funktion printf wird in der Datei stdio.h deklariert und per
include Anweisung bekannt gemacht.
Prof. Dr. Nikolaus Wulff
Programmieren in C
10
Vom Quelltext zum Programm
• Die „Hello World“ Anweisungen werden in einer
Textdatei Hello.c abgespeichert.
• Damit daraus ein ablauffähiges Programm wird
muss der Quelltext in Maschinencode übersetzt
werden.
• Je nach Betriebssystem und verwendeten
Compiler geschieht dies in mehreren Schritten:
– Der Compiler erzeugt eine Objekt Datei
– Der Linker bindet diese mit Betriebssystemroutinen
zum ausführbaren Programm
Prof. Dr. Nikolaus Wulff
Programmieren in C
11
Compile & Link Schritte
Hello.c
Compiler
stdio.h
Hello.obj
Linker
Hello.exe
Prof. Dr. Nikolaus Wulff
Bibliotheksfunktionen
• Erstellen des Quelltext.
• Übersetzen
• Binden/Linken mit den
Bibliotheksfunktionen des
Betriebsystems.
• Test und Ausführung der
Anwendung.
• Die einzelnen Schritte
können manuell per Hand
als auch automatisiert
durchgeführt werden.
Programmieren in C
12
Der Entwicklungszyklus
Editieren
Testen
(Debugging)
Compilieren
• Programmierung ist ein zyklischer Prozess:
– Quellcode erstellen
– Quellcode übersetzen
– Programm testen
• Durch Testen kann man die Anwesenheit von Fehlern
zeigen, niemals aber deren Abwesenheit!
Prof. Dr. Nikolaus Wulff
Programmieren in C
13
Hello World in Aktion
• Übersetzen und Ausführen des Programms:
– Aufruf des Compilers: cl HelloWorld.c
– Aufruf des Programms: HelloWorld
Compile
Link
Execute
Prof. Dr. Nikolaus Wulff
Programmieren in C
14
MS Visual C++ als IDE
Prof. Dr. Nikolaus Wulff
Programmieren in C
15
Eclipse als Entwicklungsumgebung
Prof. Dr. Nikolaus Wulff
Programmieren in C
16
Herunterladen