Materialien zum Buch ... 14 1. Eine erste Einführung ... 15
1.1 ... Welche Vorteile bietet C? ... 15 1.2 ... Was benötige ich zum Programmieren? ... 16 1.3 ... Wie ist dieses Buch aufgebaut? ... 16 1.4 ... Wie sollten Sie mit diesem Buch arbeiten? ... 17 1.5 ... C-Standards ... 18 1.6 ... Ubuntu Linux unter Windows ... 18
2. Unser erstes Programm ... 21
2.1 ... Wie gebe ich das Programm ein? ... 21 2.2 ... Was bedeuten die einzelnen Zeilen? ... 22 2.3 ... Das Programm wird gespeichert ... 23 2.4 ... Wie starte ich das fertige Programm? ... 24 2.5 ... Eine weitere Möglichkeit zum Starten ... 26 2.6 ... Kommentare sind wichtig ... 28 2.7 ... Eine Übungsaufgabe ... 29
3. Verschiedene Arten von Daten ... 31
3.1 ... Daten bekannt machen und speichern ... 31 3.2 ... Wie gebe ich Daten auf dem Bildschirm aus? ... 33 3.3 ... Wie kann der Benutzer seine Daten per Tastatur eingeben? ... 34 3.4 ... Berechnungen mit Operatoren ... 36 3.5 ... Entwicklung eines Programms ... 38 3.6 ... Fehler suchen ... 39 3.7 ... Eine Übungsaufgabe ... 41
4. Verschiedene Fälle in einem Programm ... 43
4.1 ... Eine einfache Bedingung mit »if« ... 43 4.2 ... Welche Bedingungen gibt es? ... 45 4.3 ... Zwei Möglichkeiten, mit »if« und »else« ... 46 4.4 ... Wie kann ich Bedingungen kombinieren? ... 47 4.5 ... Eine Übungsaufgabe ... 49
5. Programmteile wiederholen ... 51
5.1 ... Regelmäßige Wiederholungen mit »for« ... 52 5.2 ... Bedingte Wiederholungen mit »do-while« ... 54 5.3 ... Besser vorher prüfen mit »while«? ... 56 5.4 ... Tabellen formatieren ... 59 5.5 ... Eine Übungsaufgabe zu Tabellen ... 60 5.6 ... Eine Übungsaufgabe zur Eingabekontrolle ... 61
6. Programme übersichtlich aufteilen ... 63
6.1 ... Wie definiere ich eine Funktion? ... 63 6.2 ... Wie rufe ich eine Funktion auf? ... 65 6.3 ... Werte an eine Funktion übergeben ... 66 6.4 ... Ein Ergebnis von einer Funktion zurückerhalten ... 68 6.5 ... Eine Übungsaufgabe ... 69
7. Große Datenmengen speichern ... 71
7.1 ... Felder erzeugen und mit Daten füllen ... 71 7.2 ... Wie gebe ich die Daten aus? ... 73 7.3 ... Wie kann der Benutzer ein Feld füllen? ... 74 7.4 ... Eine Übungsaufgabe ... 76
8. Zeichen und Texte speichern ... 77
8.1 ... Zeichenketten erzeugen und füllen ... 77 8.2 ... Wie gebe ich eine Zeichenkette aus? ... 79 8.3 ... Wie kann der Benutzer eine Zeichenkette füllen? ... 80 8.4 ... Mehrere Zeichenketten ... 81 8.5 ... Wie kann ich Zeichenketten formatieren? ... 82 8.6 ... Eine Übungsaufgabe ... 83
9. Indirekter Zugriff mit Zeigern ... 85
9.1 ... Wie arbeite ich mit Zeigern und Adressen? ... 85 9.2 ... Wie nutze ich Zeiger bei Funktionen? ... 87 9.3 ... Wir zeigen auf Felder ... 88 9.4 ... Eine Übungsaufgabe ... 90
10. Unterschiedliche Daten zusammenfassen ... 93
10.1 ... Strukturen definieren ... 93 10.2 ... Wie erzeuge ich Strukturdaten? ... 94 10.3 ... Wie gebe ich die Daten aus? ... 95 10.4 ... Wie kann der Benutzer Strukturen füllen? ... 96 10.5 ... Mehrere Strukturdaten ... 98 10.6 ... Wie übergebe ich Strukturdaten? ... 99 10.7 ... Eine Übungsaufgabe ... 102
11. Daten auf der Festplatte ... 105
11.1 ... Wie speichere ich Daten auf der Festplatte? ... 105 11.2 ... Wie lese ich Daten von der Festplatte? ... 108 11.3 ... Eine Übungsaufgabe ... 110
12. Eine Vertiefung der bisherigen Themen ... 111
12.1 ... Verschiedene Arten von Daten ... 111 12.2 ... Verschiedene Fälle in einem Programm ... 129 12.3 ... Programmteile wiederholen ... 137 12.4 ... Programme übersichtlich aufteilen ... 145 12.5 ... Große Datenmengen speichern ... 156 12.6 ... Zeichen und Texte speichern ... 174 12.7 ... Indirekter Zugriff mit Zeigern ... 200 12.8 ... Unterschiedliche Daten zusammenfassen ... 202 12.9 ... Daten auf der Festplatte ... 207
13. Daten dynamisch im Speicher verwalten ... 227
13.1 ... Warum benötige ich dynamische Felder? ... 227 13.2 ... Eine Datenreihe dynamisch speichern ... 228 13.3 ... Die Größe eines dynamischen Felds ändern ... 230 13.4 ... Eine Tabelle dynamisch speichern ... 232 13.5 ... Wie übergebe ich ein dynamisches Feld an eine Funktion? ... 235
17.1 ... Weltzeit ausgeben ... 283 17.2 ... Lokale Zeit ausgeben und formatieren ... 285 17.3 ... Zeitangaben erzeugen ... 287 17.4 ... Zeitspanne messen ... 289 17.5 ... Zeit abwarten ... 291 17.6 ... Alter berechnen ... 292
18. Kommunikation mit dem Betriebssystem ... 295
18.1 ... Wie übergebe ich Daten an ein Programm? ... 295 18.2 ... Wie nutze ich die Rückgabe eines Programms? ... 297 18.3 ... Systemkommandos ausführen ... 299
19. Datenbanken ... 301
19.1 ... Aufbau einer Datenbank ... 301 19.2 ... Datenbanken mit SQLite ... 302 19.3 ... Datenbank und Tabelle erzeugen ... 303 19.4 ... Datensätze einfügen ... 305 19.5 ... Anzeigen der Datensätze ... 307 19.6 ... Auswahl von Datensätzen und Feldern ... 309 19.7 ... Auswahl mit Platzhaltern ... 312 19.8 ... Auswahl nach Eingabe ... 314 19.9 ... Sortieren der Ausgabe ... 316 19.10 ... Ändern von Datensätzen ... 318 19.11 ... Löschen von Datensätzen ... 319
20. Beispielprojekte ... 323
20.1 ... Lernspiel: Hauptstädte der EU ... 323 20.2 ... Lernspiel: Kopfrechnen ... 329 20.3 ... Ausgabe von Morsezeichen ... 337 20.4 ... Spiel Mastermind ... 344
21. Grafische Benutzeroberflächen mit GTK+ ... 351
21.1 ... Datentypen der »Glib« ... 352 21.2 ... Zeichenketten mit »GString« ... 353 21.3 ... Felder mit GArray ... 355 21.4 ... Die erste Benutzeroberfläche ... 361 21.5 ... Eigenschaften setzen und abrufen ... 364 21.6 ... Ereignisfunktionen ... 365 21.7 ... Positionierung von Widgets ... 367 21.8 ... Auswahl- und Eingabe-Widgets ... 369
A. Installationen ... 375 B. Hilfestellungen und Übersichten ... 399 C. Lösungen der Übungsaufgaben ... 411 Index ... 425
Mit vielen Beispielen und Übungsaufgaben
Mit diesem kleinschrittigen Lernkurs gelingt der Einstieg in die C-Programmierung mühelos. An vielen praxiserprobten Programmbeispielen werden die Grundlagen verständlich erklärt. Übungsaufgaben helfen dabei, das erworbene Wissen zu vertiefen und anzuwenden. Das Buch eignet sich auch bestens für Einsteiger ohne Programmierkenntnisse.
Aus dem Inhalt:
- Editor und Compiler einrichten
- Einführung in die Syntax
- Schleifen, Funktionen und Zeiger anwenden
- Daten dynamisch verwalten
- Auf Dateien und Verzeichnisse zugreifen
- Betriebssystem ansteuern
- Viele Praxistipps zur Fehlersuche
- Eine Datenbank mit SQLite aufbauen
- GUIs mit GTK+ entwickeln
- Raspberry Pi kennenlernen
Thomas Theis ist Dipl.-Ing. für Technische Informatik und arbeitet als Berater und Trainer. Seit vielen Jahren gibt er als EDV-Dozent Kurse in verschiedenen Programmiersprachen. Er ist Autor vieler erfolgreicher Fachbücher.