Installieren Sie die genialokal App auf Ihrem Startbildschirm für einen schnellen Zugriff und eine komfortable Nutzung.
Tippen Sie einfach auf Teilen:
Und dann auf "Zum Home-Bildschirm [+]".
Bei genialokal.de kaufen Sie online bei Ihrer lokalen, inhabergeführten Buchhandlung!
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.
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