Der leichte Einstieg in die C-Programmierung
Mit diesem kleinschrittigen Lernkurs steigen Sie mühelos in die C-Programmierung ein. An vielen praxiserprobten Programmbeispielen werden Ihnen die Grundlagen verständlich erklärt. Übungsaufgaben helfen dabei, das erworbene Wissen zu vertiefen und anzuwenden. Schon in kürzester Zeit entwickeln Sie eigenständig Programme - und das Abenteuer C-Programmierung beginnt! Mit vielen Praxistipps aus dem Programmieralltag und leicht verständlichen Beispielen. Das Buch eignet sich auch bestens für Einsteiger ohne Programmierkenntnisse.
- C-Programmierung verständlich erklärt - ohne Vorwissen!
- Alle Sprachgrundlagen und wichtigen Programmiertechniken
- Mit vielen Beispielen und Übungsaufgaben
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
Inhaltsverzeichnis
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
14. Arbeiten mit Zahlen . . . 241
14. 1 . . . Winkelfunktionen . . . 241
14. 2 . . . Runden, Nachkommastellen, Modulo . . . 243
14. 3 . . . Weitere mathematische Funktionen . . . 245
14. 4 . . . Komplexe Zahlen darstellen . . . 246
14. 5 . . . Rechnen mit komplexen Zahlen . . . 248
14. 6 . . . Weitere Funktionen für komplexe Zahlen . . . 250
14. 7 . . . Bit-Operatoren . . . 252
14. 8 . . . Umwandlung von Dualzahlen . . . 255
14. 9 . . . Bitfelder . . . 258
15. Präprozessor-Anweisungen . . . 261
15. 1 . . . Einbinden von Dateien . . . 261
15. 2 . . . Definitionen und Makros . . . 262
15. 3 . . . Definitionen und Verzweigungen . . . 264
15. 4 . . . Eine Systemweiche . . . 266
16. Zugriff auf Dateien und Verzeichnisse . . . 269
16. 1 . . . Attribute von Dateien und Verzeichnissen . . . 269
16. 2 . . . Zugriffsrechte ändern . . . 273
16. 3 . . . Inhalt eines Verzeichnisses . . . 275
16. 4 . . . Inhalt eines Verzeichnisbaums . . . 278
16. 5 . . . Dateien ändern . . . 280
16. 6 . . . Verzeichnisse ändern . . . 281
17. Umgang mit Datum und Uhrzeit . . . 283
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