C-Kurs für Anfänger 1997
Einführung in das Programmieren mit C
Prof. Dr. Ulf Rehmann
Zeit: 18. 2. - 3. 3. 97, Vorlesung 10-12 in H 2, Übungen 12-16 in
U5-139
Die Datei Ckurs-a.tar.gz enthält den
bisherigen Kurs in komprimierter Form. Sie kann mit dem Befehl
"tar xzf Ckurs-a.tar.gz" ausgepackt werden. Dabei wird ein Verzeichnis
mit dem Namen Ckurs-a erzeugt, dieses enthält dann die vollständigen
Unterverzeichnisse 01, 02, usw.
Hier sind die Einzelverzeichnisse zu den Übungsblättern. In jedem
Verzeichnis befinden sich die jeweiligen Programme und Dateien nn.dvi
und nn.ps, die den Text des jeweiligen Übungsblattes in druckfertiger
Form im dvi- bzw. Postscript-Format enthält. Die Übungsblätter sind
nicht vollkommen selbsterklärend; der Besuch der Vorlesung ist zum
Verständnis notwendig. Das Kursmaterial wird im Verlauf des Kurses ergänzt.
Wenn Sie die unten verwendeten Dvi- und Postscript-Formate auf Ihrem
Bildschirm unter dem Programm "Netscape"automatisch dargestellt haben
möchten, sollten Sie dazu die Datei .mailcap in
Ihrem Home-Verzeichnis (unter dem Namen .mailcap) ablegen.
Die Verzeichnisse 01, 02 usw. sind auch als .tar.gz -Dateien gepackt
(auszupacken mit tar xzf 01.tar.gz usw.).
- Gnu-C-Compiler
für DOS
- Wichtige Unix- und Emacs-Kommandos (Dvi-Format,
Postscript)
- 01: Erste Programme, Einfaches Input/Output -- 01.tar.gz
- 02: C-Datentypen, Schlüsselwörter,
Programmstruktur, Präzedenz von Operatoren -- 02.tar.gz
- 03: printf, scanf, while und for, ein Primzahl-Programm -- 03.tar.gz
- 04: Beispiele für Funktionen, Input/Output -- 04.tar.gz
- 05: Arrays (Felder) und Pointer (Zeiger), Strings,
Switch-Anweisung -- 05.tar.gz
- 06: Einige Spiele: 8-Damen-Problem, Turm von Hanoi,
Rösselsprung -- 06.tar.gz
- 07: Kommandozeilenargumente, Lesen und Schreiben von
Dateien, Ascii-Tabelle -- 07.tar.gz
- 08: Strukturen, komplexe Zahlen -- 08.tar.gz
- 09: Syntax von Funktionennamen, schwierige
C-Deklarationen -- 09.tar.gz
- 10: Operatorenpräzedenz, Binärbaum als Beispiel
für eine selbstreferentielle Struktur -- 10.tar.gz
- Literatur
Der Kurs wendet sich an Programmieranfänger und an die Teilnehmer
der Veranstaltung 24 52 01 "Informatik A" für
Wirtschaftsmathematiker. Interessenten für diesen Anfängerkurs
sollten sich in eine in V3-128 ausliegende Liste eintragen.
Die Programmiersprache C ist-- als ``Muttersprache'' des inzwischen
sehr weit verbreiteten Betriebssystems Unix-- eine der erfolgreichsten
und verbreitetsten Programmiersprachen überhaupt. Sie zu lernen
erleichtert nicht nur den Zugang zu diesem Betriebssystem, sondern
fördert auch das Verständnis von Aufbau und Arbeitsweise von Rechnern.
C ist ähnlich leicht zu lernen wie Pascal, es hat dessen Sprachkonstrukte,
darüberhinaus bietet es eine sprachlich elegante und programmiertechnisch
hocheffiziente Zeiger- oder Pointer-Syntax, was einer der Gründe
für seine Überlegenheit z. B. gegenüber Pascal ist.
Ein anderer ist die Tatsache, daß für C eine Standardbibliothek vorhanden
ist, die insbesondere die Eingabe-Ausgabe-Problematik in vollkommen
portabler Weise löst. Übertragungen von C-Programmen zwischen
Rechnern (und Betriebssystemen) verschiedener Provenienz sind in der Regel
vergleichsweise leicht zu machen. (Dies ist der Grund dafür, daß
das Betriebssystem Unix, selbst fast völlig in C geschrieben und portabel,
meist das erste und oft das einzige System ist, was auf
Rechner-Neuentwicklungen läuft.)
Die Einführungsliteratur in diese Sprache ist sehr umfangreich; hier sei
nur auf das ``klassische'' Buch von
B. W. Kernighan und D. W. Ritchie verwiesen:
Brian W. Kernighan, Dennis M. Ritchie:
The C Programming Language,
based on Draft-Proposed ANSI C
2. Edition, Prentice Hall,
ISBN 0-13-110370-9 und ISBN 0-13-110362-8.
Deutsche Ausgabe
(nur bedingt empfehlenswert; die deutschen Fachbegriffe sind
weniger ``normiert''):
Programmieren in C,
mit dem C-Reference-Manual in deutscher Sprache,
2. Ausgabe ANSI C, Hanser-Verlag
ISBN 0-13-110330-X und ISBN 3-446-15497-3
Bibliotheks-Standort
10 HI450=C100, K39, 13 HI450=C100 K39,
19 HI450=C100, K39, 10 HI080 K39.
Bei Fragen und Kommentaren wenden Sie sich an
rehmann@Mathematik.Uni-Bielefeld.DE