Copyright © 1992, 1997, 1999 by Axel T. Schreiner. All Rights Reserved.

Informatik B: Programmieren mit ANSI-C

Axel-Tobias Schreiner, Fachbereich Mathematik-Informatik, Universität Osnabrück.

Eine Einführung in die Programmierung mit ANSI-C, insbesondere auf UNIX-Systemen.

Vorlesung im Sommersemester 1999.

Von hier aus sind Kopien der OH-Folien des Skripts sowie die Programmbeispiele erreichbar, die teilweise in der Vorlesung verwendet werden. Die Texte sind kein komplettes Manuskript der Vorlesung. Zum Selbststudium müßte zusätzlich ein Buch über die Programmiersprache C nach dem ANSI-Standard konsultiert werden.

Die Folien beruhen auf Kernighan und Ritchie's The C Programming Language, Second Edition [Prentice-Hall 1988, deutsch bei Hanser 1990] und auf anderen Büchern über C und UNIX. Nicht alle hier enthaltenen Beispiele werden in der Vorlesung behandelt.

aufgaben

Jede Woche gibt es ein Aufgabenblatt. Sollte es nicht selbständig gelöst werden, folgt dann auch noch eine Klausur...

code

Die Programmbeispiele sind nach Themen in Katalogen zusammengefaßt, die auf Web-Seiten erklärt und erschlossen werden.

ftp

Archivierte Kopien der Programmbeispiele und OH-Folien sowie ein UNIX-ähnliches Entwicklungssystem für Windows, verschiedene Betrachter und ähnliche Werkzeuge können nur im Netz der Universität Osnabrück per File-Transfer-Protokoll abgeholt werden.

pdf

OH-Folien und Programmbeispiele wurden mit Adobe Acrobat in das Portable Document Format gewandelt, miteinander verbunden und durch einen Volltext-Index erschlossen. Sie können von hier aus betrachtet werden.

Je nach Plattform sind dafür spezielle Betrachter erforderlich, die zuvor installiert werden müssen.

skript

Ein neues Kapitel über B-Bäume.

Termine 1999

Vorlesung Dienstag, 16:15 31/449a Schreiner
Donnerstag, 16:15
Übungen Freitag, 8:15 31/449a Ludwig
Freitag, 12:15
Sprechstunde Donnerstag ab 15:00 n.V. 31/321 Schreiner
Dienstag 14-16 oder n.V. 31/326 Ludwig

Kalender 1999

April13 Einführung, Organisation des Web-Servers, Literatur, erstes Programm 2, 8-10 hallo*.c
15 Konstanten, Wertebereiche, Komplement-Darstellung, Bit-Operationen 11-12 et
20 Konstanten, Umwandlungen, arithmetische Operationen 11-12, 30-32, 35 et
22 Gleichung 2. Grades, skalare Variablen, Kontrollstrukturen 13-21 qgl[0-4].c*
27 Kommandozeile, Schleifen, Rekursion, Bit-Operationen; Terminal-Treiber 22-30 qgl5.c, newton.c, euklid*.c, int0.c
29 Wertbereich bei unsigned, Präprozessor #define und #ifdef; Zeichenverarbeitung, Filterprogramme 31-34, 38 int[12].c cat0.c
Mai4 Zeichenverarbeitung, Filterprogramme, FILE *, Fehlerbehandlung 37-39, 43 cat[0-24].c
6 Zeichenverarbeitung, Filterprogramme, Pufferung, Pipelines, Signale, I/O-Umlenkung und Signale in der Shell, Parameterübergabe bei Vektoren, const und Strings 37-39, 43 cat[0-24].c
11 Zeichen, Worte, Zeilen zählen, switch, Kommandozeile, MAIN-Makros, Maximum einer Folge, Vektoren, sizeof, Matrizenmultiplikation 44-48, 49-54 wc[0-3].c, max[01].c, mat[01].c
13 Feiertag
18 Matrizenmultiplikation, struct und union, dynamische Vektoren 53-60, 59-60 mat[0-4].c*
20 struct und union, Bit-Felder, struct person, dynamischer Stack, Sieb des Erathostenes 59-64, 67-68 person.c, liste.c, sieb[0-3].c
25 Pfingstferien
27 Pfingstferien
Juni1 Makros für Vektoren: Sieb des Erathostenes, Hanoi-Folge; Modulare Programmierung, übersetzen und binden, Bibliotheken, nm; Tests mit Zufallszahlen; Zeitmessungen 67-71, 89-93 sieb4.c, hanoi.c, bubble0.c, sort0/*.[ch]
3 Zeitmessungen, Profiling; Speicherverwaltungen, realloc(); Textspeicher; Funktionszeiger 93-103 sort[0-2]/
8 Deklarationen 116
10 Deklarationen, Typ-Spezifikation, Zeiger, Stack-Maschine, Sortieren mit Funktionszeigern, Verkettung mit ## 116-120, 102-104 stack[01], sort2/
15 Zeiger-Arithmetik, Zeiger als Parameter 121-128 cast.c, matrix.c
17 String-Funktionen, Abarbeitung der Kommandozeile 129-133, 138-139 str?.c, cmd.c
22 main-Makros, variable Parameterliste, Rekursion 138-143, 144-147 main/*
24 Rekursion: Matrixmultiplikation, Prozesse, fork(), Permutationen, Hilbert-Kurven, gpic, Sierpinski-Kurven, Wirths W-Kurven, plot-Bibliothek 148-149, 150-151, 153-160 mat[56].c, *0.c
29 plot-Bibliothek, OPENSTEP-Service; endliche Automaten, Mustersuche, Bowling. 160-161, 162-172 *1.c, grep/*
Juli1 Bowling mit Endlichen Automaten, select() 172-178 bowl/*
6 B-Bäume: Konzept, Methoden, Definitionsdateien
8 B-Bäume: Objekt-Orientierung; Testdaten, find()
13 B-Bäume: search()
15 Standard-I/O-Bibliothek, FILE-Zeiger und File-Deskriptoren, seek-Operationen, Dateien mit Löchern 182-185
20 Standard-I/O-Bibliothek, FILE-Zeiger und File-Deskriptoren; Systemaufrufe für Datentransfer, cat 182-185, 197 cat6.c
22 Systemaufrufe für Dateimanipulation 197 unix/