I Grundlagen.- 1 Entwicklung von Software allgemein.- 1.1 Software = Daten + Programme.- 1.1.1 Begriffsbildungen für Daten.- 1.1.2 Begriffsbildungen für Programme.- 1.1.2.1 Anwenderprogramme und Systemprogramme.- 1.1.2.2 Vier Standard-Programmpakete.- 1.2 Datentypen und Datenstrukturen.- 1.2.1 Einfache Datentypen als „Moleküle“.- 1.2.2 Datenstrukturen als strukturierte Datentypen.- 1.2.3 Statische und dynamische Datentypen.- 1.2.4 Vordefinierte und benutzerdefinierte Datentypen.- 1.2.5 Datentypen bei den verschiedenen Programmiersprachen.- 1.3 Programmstrukturen.- 1.3.1 Folgestrukturen.- 1.3.2 Auswahlstrukturen.- 1.3.2.1 Einseitige Auswahl.- 1.3.2.2 Einseitige Auswahl.- 1.3.2.3 Mehrseitige Auswahl.- 1.3.3 Wiederholungsstrukturen.- 1.3.4 Unterprogrammstrukturen.- 1.3.5 Mehrere Strukturen in einem Programm.- 1.4 Daten- und Programmstrukturen als Software-Bausteine.- 1.4.1 Modell des Hauptspeichers RAM als Regalschrank.- 1.4.2 Daten als Variablen und Konstanten vereinbaren.- 1.4.3 Programm mit Vereinbarungsteil und Anweisungsteil.- 1.5 Datei als umfangreiche Datenstruktur.- 1.5.1 Zugriffsart, Speicherungsform und Verarbeitungsweise.- 1.5.1.1 Zwei Zugriffsarten.- 1.5.1.2 Vier Speicherungsformen.- 1.5.1.3 Zwei Verarbeitungsweisen.- 1.5.2 Vier Verarbeitungsformen von Dateien.- 1.5.3 Grundlegende Abläufe auf Dateien.- 1.5.4 Datei öffnen, verarbeiten und schließen.- 1.5.5 Eine oder mehrere Dateien verarbeiten.- 1.5.6 Datenbank.- 1.5.6.1 Datenbank-Management-System.- 1.5.6.2 Strukturiertes und unstrukturiertes Datenbank-System.- 1.6 Programmentwicklung in Schritten.- 1.6.1 Aufgabenbeschreibung mit Problemstellung und Strukturbaum.- 1.6.2 Problemanalyse.- 1.6.3 Entwicklung und Darstellung des Algorithmus.- 1.6.3.1 Datenflußplan.- 1.6.3.2 Programmablaufplan (PAP).- 1.6.3.3 Struktogramm.- 1.6.3.4 Entwurfsprache bzw. Pseudocode.- 1.6.4 Programmierung im engeren Sinne.- 1.6.5 Programmiertechniken und Entwurfsprinzipien.- 1.6.6 Kleine Mauskunde.- II QuickC-System.- 2 Bedienung und Sprachreferenz des QuickC-Systems.- 2.1 QuickC und Microsoft C.- 2.1.1 Microsoft C als Paket.- 2.1.2 QuickC als integrierte Entwicklungsumgebung.- 2.2 Installation von QuickC.- 2.2.1 Installation von QuickC auf Festplatte.- 2.2.2 Installation von QuickC auf Diskette.- 2.3 Speichermodelle und Adressierung.- 2.4 Start der integrierten Entwicklungsumgebung.- 2.4.1 Start auf einem Festplattensystem.- 2.4.2 Start auf einem Diskettensystem.- 2.5 Das erste Programm.- 2.5.1 Schritt 1: Programmtext editieren.- 2.5.2 Schritt 2: Quelltext auf Diskette sichern.- 2.5.3 Schritt 3: Programm übersetzen und ausführen.- 2.5.4 Schritt 4: Programm ändern.- 2.5.5 Schritt 5: Erzeugung einer EXE-Datei.- 2.5.6 Schritt 6: Compilierung mit QLC.- 2.5.7 Schritt 7: Fehlersuche.- 2.6 Menüs der integrierten Entwicklungsumgebung.- 2.6.1 Menü Hilfe (Help).- 2.6.2 Menü Datei (FÜe).- 2.6.3 Menü Bearbeiten (Edt).- 2.6.4 Menü Ansicht (View).- 2.6.5 Menü Suchen (Search).- 2.6.6 Menü Ausführen (Run).- 2.6.6.1 In den RAM übersetzen.- 2.6.6.2 Untermenü kompilieren (Compile).- 2.6.7 Menü Debug.- 2.6.8 Menü Aufrufe (Calls).- 2.7 Sprachreferenz.- 2.7.1 Bezeichner.- 2.7.2 Reservierte Wörter.- 2.7.3 Datentypen.- 2.7.3.1 Integer-Konstanten.- 2.7.3.2 Gleitkommakonstanten.- 2.7.3.3 Zeichenkonstanten.- 2.7.3.4 String-Konstanten.- 2.7.4 Operatoren.- 2.7.5 Konvertierung von Datentypen.- 2.7.5.1 Konvertierung von Zeichen, Integer und Zeiger.- 2.7.5.2 Konvertierung bei Gleitkommazahl und Integer.- 2.7.6 Grundlegende Anweisungen und Funktionen.- 2.7.7 Bibliotheksfunktionen.- 2.7.7.1 In QC.EXE bereitgestellte Funktionen.- 2.7.7.2 Bibliotheksfunktionen nach Anwendungen.- III Programmierkurs mit QuickC — Grundkurs.- 3 Einfache Datentypen.- 3.1 Zahlen.- 3.2 Ausdrücke mit Variablen und Konstanten.- 3.3 Funktion printf() zur Ausgabe.- 3.3.1 Ausgabe von Text.- 3.3.1.1 printf()mit Steuerzeichen \n und \.- 3.3.1.2 Bedingtes Compilieren mit #if.- 3.3.2 Ausgabe von Zahlen und Variablen.- 3.3.2.1 Formatierte Ausgabe.- 3.3.2.2 Format-Elemente.- 3.3.3 Ausgabe von Kommentar.- 3.3.4 Testhilfen von QuickC.- 3.4 Initialisierung, sizeof-und cast-Operator.- 3.5 Zeiger bzw. Pointer.- 3.5.1 Adreßoperator &.- 3.5.2 Zeigervariablen zur Adreßspeicherung.- 3.5.3 Zeiger auf einen Zeiger.- 3.5.4 Zeiger austauschen.- 3.5.5 Speicherplatz reservieren mit malloc() and calloc().- 3.6 Gleitpunktzahlen.- 3.7 Zusammengesetzte Zuweisungsoperatoren.- 3.8 Ganze Zahlen.- 3.8.1 Typanpassung.- 3.8.2 Bereichsüberschreitung.- 3.9 Inkrementierung.- 3.10 Ganzzahlige Aufzählungstypen.- 3.11 Vergleiche.- 3.11.1 Vergleichsoperatoren.- 3.11.2 Bitmanipulationen.- 3.12 Zahleneingabe mit der Funktion scanf().- 3.13 Symbolische Konstanten mit #define.- 4 Programmstrukturen.- 4.1 Auswahlstrukturen mit if else.- 4.4.1 Einseitige und zweiseitige Auswahlstruktur.- 4.4.2 Schachtelung von if-Anweisungen.- 4.4.3 Kettenbildung.- 4.2 Bedingungsausdrücke mit dem Operator ?:.- 4.3 Logische Operatoren.- 4.4 Auswahlstrukturen mit switch case.- 4.5 Wiederholungsstrukturen mit while.- 4.5.1 Abweisende Schleife.- 4.5.2 Inkrementieren in der Schleifenbedingung.- 4.6 Wiederholungsstrukturen mit for.- 4.6.1 Zählerschleife.- 4.6.2 Komma-Operator bei for.- 4.7 Wiederholungsstrukturen mit do while.- 4.7.1 Nicht-abweisende Schleife.- 4.7.2 while bzw. for durch do while ersetzen.- 4.8 Unstrukturierte Kontrollanweisungen.- 4.8.1 Wiederholungsstrukturen mit goto.- 4.8.2 Verzweigungsanweisungen break und continue.- 4.9 Funktionen.- 4.9.1 Vordefinierte und benutzerdefinierte Funktionen.- 4.9.2 Funktionen und Eingabe von Argumenten.- 4.9.3 Funktionen und Ausgabe eines Funktionswertes.- 4.9.4 Funktionsdefinition im modernen und im klassischen Format.- 4.9.5 Funktionen mit void-Typ deklarieren.- 4.9.6 Parameter an die Funktion main() übergeben.- 4.10 Variablen und Speicherklassen.- 4.10.1 Globale und lokale Variablen.- 4.10.2 Lokalisierung mit Speicherklasse static.- 4.10.3 Zeiger als Funktionsparameter.- 4.11 Zeiger- bzw. Pointerarithmetik.- 4.11.1 Zeiger inkrementieren.- 4.11.2 Zeigertyp far.- 4.12 Modularer Aufbau von C-Programmen.- 4.12.1 Ein Programm mit #include in den Quelltext einfügen.- 4.12.2 Mehrere Programme zu einer EXE-Datei verbinden.- 4.13 Makros.- 4.13.1 Makrodefinition.- 4.13.2 Makro mit Escape-Sequenz.- 4.14 Rekursiver Aufruf von Funktionen.- 4.14.1 Rekursion mit Stacküberlauf.- 4.14.2 Rekursion mit Endebedingung.- 4.14.3 Indirekte Rekursion.- 4.14.4 Rekursiver Aufruf der Funktion main().- 4.15 Zeiger auf Funktionen.- 4.16 Funktionen mit variabler Anzahl von Parametern.- 5 Strukturierte Datentypen.- 5.1 Vektoren als eindimensionale Arrays.- 5.1.1 Lesen und Schreiben über einen Index.- 5.1.2 Vektor bei der Deklaration initialisieren.- 5.1.3 Funktionen malloc() und calloc().- 5.1.4 Array über geschachtelte Schleifen sortieren.- 5.2 Matrizen als zweidimensionale Arrays.- 5.2.1 Zugriff über Zeilenindex und Spaltenindex.- 5.2.2 Speicherplatz durch Initialisierung bereitstellen.- 5.2.3 Benutzerdefinierter Datentyp für Matrizen.- 5.3 Dreidimensionale Arrays.- 5.4 Stringverarbeitung.- 5.4.1 Strings als Vektoren vom char-Typ.- 5.4.2 Einen String überschreiben.- 5.4.3 Strings übertragen.- 5.5 Eingabe von Strings über die Tastatur.- 5.5.1 Eingabe mit scanf() und gets().- 5.5.2 Eingabe mit cgets() und fgets().- 5.5.3 Eingabe von Strings in eine Matrix.- 5.5.4 Eingabestring sortieren.- 5.6 Strings und Zahlen.- 5.6.1 Zahleneingabe über gets().- 5.6.2 Umwandlung von int-Zahl in String.- 5.6.3 Umwandlung von long-Zahl in String.- 5.6.4 Umwandlung von double-Zahl in String.- 5.6.5 Umwandlung von String in Zahl.- 5.7 Zeichenweise Behandlung von Strings.- 5.7.1 Funktion zur Stringeingabe.- 5.7.2 Eingabe eines Kennworts ohne Echo.- 5.8 Strukturen.- 5.8.1 Zugriff über den Namen mittels Punkt-Operator.- 5.8.2 Zugriff über Zeiger mit dem Pfeil-Operator.- 5.8.3 Möglichkeiten zur strukt-Vereinbarung.- 5.8.4 Eine vordefinierte Struktur nutzen.- 5.9 Vektoren von Strukturen.- 5.10 Varianten.- 5.10.1 Variante als Komponente einer Struktur.- 5.10.2 Nutzung eines vordefinierten union-Typs.- 5.11 Bitfelder.- 6 Dateiverarbeitung.- 6.1 Streams und Files.- 6.1.1 Textstream und Binärstream.- 6.1.2 Datei öffnen und schließen.- 6.1.3 Struktur einer Textdatei anzeigen.- 6.2 Textdateien.- 6.2.1 Programm zur Ausgabe des eigenen Quelltextes.- 6.2.2 Text in eine Datei schreiben und wieder lesen.- 6.2.3 Gepufferte und ungepufferte Eingabe.- 6.3 Binärdateien.- 6.3.1 Strukturen als Datensätze.- 6.3.2 Direktzugriff auf bestimmte Datensätze.- 6.3.3 Hinzufügen von Datensätzen.- 6.4 Dateizugriff über den Handle.- 6.4.1 Handle als ungepuffertes Ein-/Ausgabesystem.- 6.4.2 Schreibender und lesender Zugriff.- 6.4.3 Datei kopieren.- 6.4.4 Anwendung mit struct und union.- 7 Lösungen zu allen Aufgaben.- ASCII-Tabelle.- Programmverzeichnis.- Sachwortverzeichnis.