Herzlich Willkommen! Programmierung in C 2015-02-28 Elmar Weisenberger Erlanger Linux User Group e.V. Letzte Änderung 2015-02-27 2000 Inhaltsübersicht [CRY15] 1 Programm, Editor und Compiler Übung 2 Integrierte Entwicklungsumgebung Übung 3 Anweisung, Bedingung, Schleife, Funktion, Zeiger Programmieren Erhöhe a um 1 Compiler [CRY15] 10001000101010101001 01001001011001001001 Editor gedit Es gibt viele verschiedene Beispiel: gedit Installieren (Ubuntu): sudo apt-get install gedit Editor gedit Tipp: Zeilenummer anzeigen lassen Menü “Edit” → “Preferences” Compiler Standard unter Linux: GNU Compiler Collection oder kurz: GCC Test ob vorhanden: gcc --version Installieren (Ubuntu): sudo apt-get install gcc Mein erstes C-Programm int main (void) { return 0; } main int void return Hauptprogramm Integer (Ganze Zahl) leer oder nichts (gebe) zurück Syntaxfehler 1 int main(void) 2 { 3 dies ist Quatsch 4 return 0; 5 } Hello world #include <stdio.h> int main(void) { printf("Hello World!\n"); return 0; } include printf Bibliothek einbinden Ausgabe Integrierte Entwicklungsumgebung (IDE) Es gibt viele Code::Blocks CodeLite Qt Creator → verwenden wir heute Qt Creator – nach dem Start Qt Creator – Projekt anlegen Qt Creator – Hello World Qt Creator – Hello World Programm Variable Schublade mit Inhalt Anweisung setze a gleich 0 erhöhe a um 1 Programm Bedingung wenn a größer als eins ist dann erhöhe a um eins Schleife Beispiel: Telefon rufe an solange besetzt ist { lege den Hörer auf nimm den Hörer wieder in die Hand wähle erneut } Debuggen Fehlersuche Debugging F5 Durch Programm einzeln durchsteppen F10 Haltepunkt (Breakpoint) F9 Traces “debugging” Schleife Programm lese x ein setze z auf 0 solange x ungleich 1 Falls x gerade ist Dann halbiere x Sonst verdreifache x und erhöhe um 1 Erhöhe z um 1 gib z aus “Collatz” USA – Was ist eine “mile”? 5280 foot 1760 yards 1,609344 km “Umrechnung_mile” Was haben wir gelernt? Define #define UMRECHNUNGSFAKTOR_MEILE_IN_KILOMETER 1.609344 aussagekräftiger Namen statt magischer Zahl Datentypen int anzahlMile = 0; float anzahlKilometer = 0.0; Integerzahl (int) GanzeZahl also 0 oder 1 oder 2 oder … Fliesskommzahl (float) 1.5 oder 3.14 Funktion [CHOWTO15] Funktion #include<stdio.h> int addiere(int summand1, int summand2) { return (summand1 + summand2); } int main() { int summe = addiere(3, 7); printf("Summe von 3 und 7 ist %d\n",summe); return 0; } [CHOWTO15] Zeiger Klavier ist verstimmt. Unser Freund Kurt kann ein Klavier stimmen. Das Klavier ist aber zu groß, um es zu Kurt zu bringen. Wir geben Kurt eine Wegbeschreibung, damit er zu uns findet. int zahl = 7; Zeiger int* zeiger; zeiger = &zahl; printf("Zeiger­Wert: %d\n", *zeiger); [CHOWTO15] Zusammenfassung 1 Editor gedit Programm (Quelltext) Compiler gcc ausführbares Programm ./a.out Integrierte Entwicklungsumgebung QtCreator Zusammenfassung 2 Zusammenfassung 3 Fehlersuche / Debuggen Anweisung Bedingung Schleife Funktion Zeiger Danke für die Aufmerksamkeit! http://www.erlug.de Erlanger Linux User Group e.V. Weitere Literatur und Links [CHOWTO15] http://www.c-howto.de [WIK15] Wikipedia http://de.wikipedia.org Rechtliches Der Text der Präsentation sowie von mir selbst erstellte Bilder gekennzeichnet mit “[WEI12]” stehen unter http://creativecommons.org/licenses/by-nc-sa/3.0/ Alle hier verwendeten G2 Tuxe – gekennzeichnet mit [CRY15] stehen ebenfalls unter der cc creative commons Lizenz und dürfen unter Nennung der Quelle verwendet werden! "Illustrations from the website http://tux.crystalxp.net". Alle in den Folien genannten Markennamen sind Eigentum der Rechteinhaber und werde hier nur zu Unterrichtszwecken genannt.