Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Informatik II Grundlagen der Programmierung Programmieren in C Erste Programme Hochschule Fulda – FB ET Sommersemester 2014

Ähnliche Präsentationen


Präsentation zum Thema: "Informatik II Grundlagen der Programmierung Programmieren in C Erste Programme Hochschule Fulda – FB ET Sommersemester 2014"—  Präsentation transkript:

1 Informatik II Grundlagen der Programmierung Programmieren in C Erste Programme Hochschule Fulda – FB ET Sommersemester Peter Klingebiel, HS Fulda, DVZ

2 Programmieren in C - Peter Klingebiel - HS Fulda - DVZ2 Trial and Error Programmieren in C: Trial and Error? Inspector Closeau - Der beste Mann bei Interpol

3 Programmieren in C - Peter Klingebiel - HS Fulda - DVZ3 C-Programm 1 Ein C-Programm besteht (vereinfacht dargestellt) aus Daten Funktionen Daten –Eingangsdaten Ergebnisdaten –evtl. (viele) Zwischendaten –Konstante Daten Werte unveränderbar –Variable Daten Werte veränderbar Funktionen verarbeiten die Daten

4 Programmieren in C - Peter Klingebiel - HS Fulda - DVZ4 C-Programm 2

5 Programmieren in C - Peter Klingebiel - HS Fulda - DVZ5 C-Programm 3

6 Programmieren in C - Peter Klingebiel - HS Fulda - DVZ6 C-Programm 4 Typischer Ablauf eines C-Programms

7 Programmieren in C - Peter Klingebiel - HS Fulda - DVZ7 7 C-Programm 5 C-Programme bestehen aus Dateien in Verzeichnissen auf dem Rechner Der Quellcode befindet sich in C-Dateien –Reine Textdateien, keine Formatierung u.ä. –Bearbeitung mit einem Texteditor –Regel: Dateinamen ohne Umlaute, Leerzeichen, Sonderzeichen –Empfehlung: Nur Kleinbuchstaben –Dateinamen endet auf.c –Beispiel: hallowelt.c

8 Programmieren in C - Peter Klingebiel - HS Fulda - DVZ8 8 C-Programm 6 Beispielprogramm hallowelt.c

9 Programmieren in C - Peter Klingebiel - HS Fulda - DVZ9 C-Programm 7 Kommentare –sollen Kode und Programm erläutern –mehrzeilige Kommentare mit /* */ geklammert –einzeilige Kommentare nach // Include-/Headerdateien –#include –Preprozessor ersetzt die Zeile durch den Inhalt der Datei stdio.h –Ggfs. mit Pfadnamen, z.B. bei eigenen Projekten –Mehr zum Preprozessor später

10 Programmieren in C - Peter Klingebiel - HS Fulda - DVZ10 C-Programm 8 Jedes C-Programm hat eine main -Funktion –Hier startet die Programmausführung nach dem Laden des Programms Aufruf einer Bibliotheksfunktion –printf("Hallo, Welt!\n"); –zur Ausgabe der Zeichenkette auf der Konsole Exit-Status bei Programmende an das Betriebssystem bzw. an aufrufende Ebene –return(0); –Returncode des Programms ggfs. zur späteren Auswertung ( 0 ok, 0 fehlerhaft)

11 Programmieren in C - Peter Klingebiel - HS Fulda - DVZ11Programmieren in C - Peter Klingebiel - HS Fulda - DVZ11 C-Programm 9 Programm hallowelt auf der Konsole

12 Programmieren in C - Peter Klingebiel - HS Fulda - DVZ12 C-Bausteine 1 Aus den "Grundbausteinen" von C...

13 Programmieren in C - Peter Klingebiel - HS Fulda - DVZ13 C-Bausteine 2... werden "Programme"

14 Programmieren in C - Peter Klingebiel - HS Fulda - DVZ14 C-Bausteine 3 Zeichensatz von C Buchstaben (incl. Unterstrich) ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz _ Ziffern Semikolon (z.B. am Ende einer Anweisung) ; Punkt (Gleitpunktzahlen, Selektionsoperator).

15 Programmieren in C - Peter Klingebiel - HS Fulda - DVZ15 C-Bausteine 4 Sonderzeichen (Operatoren, Satzzeichen) ( ) [ ] + - * / % ^ ~ & | = ! ?, : Anführungszeichen (Einzelzeichen, Strings) ' " Blockklammern { } Fluchtzeichen (für Sonderzeichen) \ Doppelkreuz (Preprozessordirektiven) #

16 Programmieren in C - Peter Klingebiel - HS Fulda - DVZ16 C-Bausteine 5 Reservierte Worte / Schlüsselworte auto break case char const continue default do double else enum extern float for goto if int long register return short signed sizeof static struct switch typedef union unsigned void volatile while C kennt nur 32 reservierte Worte

17 Programmieren in C - Peter Klingebiel - HS Fulda - DVZ17 C-Bausteine 6 C-Programme verarbeiten Daten Konstante Daten –Werte sind unveränderbar Variable Daten –Werte sind im Programmlauf veränderbar Daten sind typisiert Datentypen Datentypen bestimmen –Darstellung der Werte im Rechner –Wertebereiche der Daten –benötigten Speicherplatz der Daten –zulässige Operationen auf den Daten

18 Programmieren in C - Peter Klingebiel - HS Fulda - DVZ18 C-Bausteine 7 Anweisungen –Statement, Ausdruck, "Kommando" –z.B. Variablendefinition int a; –z.B. Zuweisung a = 4711; –z.B. mathematischer Ausdruck a = a * 2; Funktionen –Unterprogramme, z.B. main() oder printf() –Kapselung von Funktionalität und internen Daten –Funktionen haben Typ und liefern einen Wert –kann auch ignoriert werden, z.B. bei printf() –Prozeduren = Funktionen ohne Rückgabewert

19 Programmieren in C - Peter Klingebiel - HS Fulda - DVZ19 C-Bausteine 8 Vordefinierte Grunddatentypen in C char Zeichen (ASCII-Kode, 8 Bit) int Ganzzahl (maschinenabhängig, meist 16 oder 32 Bit) float Gleitkommazahl (32 Bit, IEEE, etwa auf 6 Stellen genau) double doppelt genaue Gleitkommazahl (64 Bit, IEEE, etwa auf 12 Stellen genau) void ohne Wert (z.B. Zeiger)

20 Programmieren in C - Peter Klingebiel - HS Fulda - DVZ20 C-Bausteine 9 Type-Modifier spezifizieren Grunddatentypen short int, long int - legen Länge der Ganzzahl fest - maschinenabhängig, 16 Bit, 32 Bit - int kann auch fehlen long double - Gleitkommazahl, erw. Genauigkeit - oft 128 Bit, IEEE signed, unsigned - char/int mit/ohne Vorzeichen

21 Programmieren in C - Peter Klingebiel - HS Fulda - DVZ21 C-Bausteine 10 Bezeichner (Identifier) sind Namen für Variable, Konstanten, Funktionen, Typen Identifier müssen mit einem Buchstaben oder Unterstrich beginnen danach können Buchstaben, Unterstriche und Ziffern folgen Groß- und Kleinschreibung wird streng unterschieden keine Sonderzeichen (z.B. $ oder #) keine reservierten Worte Vorsicht bei vordefinierten Funktionsnamen

22 Programmieren in C - Peter Klingebiel - HS Fulda - DVZ22 Variablen 1 Variable sind Platzhalter für Daten haben einen festgelegten Speicherort, an dem der aktuelle Wert gespeichert wird der aktuelle Wert (an seinem Speicherort) ist veränderbar Attribute von Variablen: –Datentyp –Namen (Bezeichner, Identifier) –Lebensdauer / Speicherklasse –evtl. initialer Wert –Sichtbarkeit (Scope) im Programm

23 Programmieren in C - Peter Klingebiel - HS Fulda - DVZ23 Variablen 2 Variablen-Definitionen, z.B. double u; short int i, tab = 5; char *hallo = "Hallo, Welt!"; Position im Programm: –außerhalb von Funktionen –am Anfang eines Blocks, also nach { Wert ist veränderbar (Zuweisung, Operation) Programmstruktur Lebensdauer / Scope

24 Programmieren in C - Peter Klingebiel - HS Fulda - DVZ24 Wie speichert C? 1 Hauptspeicher

25 Programmieren in C - Peter Klingebiel - HS Fulda - DVZ25 Wie speichert C? 2 Beispiel: Zugriff auf Variable

26 Programmieren in C - Peter Klingebiel - HS Fulda - DVZ26 Wie speichert C? 3 Vor Programmstart

27 Programmieren in C - Peter Klingebiel - HS Fulda - DVZ27 Wie speichert C? 4 Programmstart und Aufruf von main()

28 Programmieren in C - Peter Klingebiel - HS Fulda - DVZ28 Wie speichert C? 5 Zuweisung a = 4;

29 Programmieren in C - Peter Klingebiel - HS Fulda - DVZ29 Wie speichert C? 6 Zuweisung b = 8;

30 Programmieren in C - Peter Klingebiel - HS Fulda - DVZ30 Wie speichert C? 7 Berechnung a * b;

31 Programmieren in C - Peter Klingebiel - HS Fulda - DVZ31 Wie speichert C? 8 Zuweisung c = a * b;

32 Programmieren in C - Peter Klingebiel - HS Fulda - DVZ32 Wie speichert C? 9 Danach

33 Programmieren in C - Peter Klingebiel - HS Fulda - DVZ33 Exkurs: Ausgabe 1 Aufbau eines C-Programms mit Ausgabe #include int main() { int a, b, c; a = 4711; b = 13; c = a * b; printf("c = %d\n", c); return(0); }

34 Programmieren in C - Peter Klingebiel - HS Fulda - DVZ34 Exkurs: Ausgabe 2 Einfache zeichenweise Ausgabe mit putchar(),z.B.: int c = '!'; putchar(c); // Zeichen auf stdout Ausgaben zeilenweise mit puts(), z.B.: char *s = "Hallo, Welt!"; puts(s); // String auf stdout Formatierte Ausgabe mit printf(),z.B.: i int n = 123; char *s = " Studierende"; printf("%d %s", n, s);

35 Programmieren in C - Peter Klingebiel - HS Fulda - DVZ35 Exkurs: Ausgabe 3 Formatierte Ausgabe mit printf() Aufruf: printf(fmt, arg1, arg2,...) printf() hat variable Anzahl Parameter printf() konvertiert und gibt die Parameter unter Kontrolle des Formatstrings aus Der Formatstring fmt ist eine Zeichenkette Parameter args können auch fehlen Die Parameter args müssen den Typ haben, wie er im Formatstring fmt angegeben ist

36 Programmieren in C - Peter Klingebiel - HS Fulda - DVZ36 Exkurs: Ausgabe 4 Wichtige Formatzeichen (Platzhalter) für Ausgabewerte im printf() -Formatstring: %c Einzelzeichen char %d Ganzzahl int %ld Ganzzahl long int %f Gleitkommazahl float %lf Gleitkommazahl double %s Zeichenkette char [] / char * Beispiel: int n = 123; char *s = "Studierende"; printf("%d %s", n, s); Formatstring "%d %s" erfordert 2 Parameter, Typen ( int, char * ) müssen übereinstimmen!

37 Programmieren in C - Peter Klingebiel - HS Fulda - DVZ37 Exkurs: Ausgabe 5 Format erzwingt Anzahl +Typ der Parameter

38 Programmieren in C - Peter Klingebiel - HS Fulda - DVZ38 Exkurs: Ausgabe 6 Was passiert, wenn Typ des Platzhalters und Typ des Parameters nicht übereinstimmen? Gefährlich! C erfordert Sorgfalt! Wichtige Sonderzeichen im Formatstring (und auch als Einzelzeichen) \n Newline, Zeilensprung \t Tabulator \0 EOS - Endezeichen in String \' einfaches Anführungszeichen ' \" doppeltes Anführungszeichen " \% Prozentzeichen % \\ Fluchtzeichen \

39 Programmieren in C - Peter Klingebiel - HS Fulda - DVZ39Programmieren in C - Peter Klingebiel - HS Fulda - DVZ39 C-Programmierumgebungen 1 Übersetzung passiert in mehreren Schritten: C-Quellkode editieren C-Preprozessor macht reine Textoperationen C-Compiler übersetzt C-Quelltext in maschinenabhängigen Assemblercode Assembler erzeugt noch nicht ausführbaren Maschinencode, sog. Objektcode Linker montiert Objektcode und Bibliotheks- funktionen zu ausführbarem Programm Debuggen zur Fehlersuche

40 Programmieren in C - Peter Klingebiel - HS Fulda - DVZ40Programmieren in C - Peter Klingebiel - HS Fulda - DVZ40 C-Programmierumgebungen 2 Klassischer Weg –Editor –Compiler –Linker –Debugger System C-Compiler (z.B. auf Unix/Linux) TinyC Compiler MinGW (Minimalist GNU for Windows) Cygwin GNU Compiler Collection

41 Programmieren in C - Peter Klingebiel - HS Fulda - DVZ41Programmieren in C - Peter Klingebiel - HS Fulda - DVZ41 C-Programmierumgebungen 3 Integrierte Entwicklungsumgebung IDE fasst Editor, Compiler, Linker, Debugger unter einer Oberfläche zusammen –Code::Blocks –Netbeans –Eclipse –Microsoft Visual Studio Express –Bloodshed Dev C/C++ Workflow der Programmentwicklung wird "geschmeidiger" Projekte intuitiver formulierbar


Herunterladen ppt "Informatik II Grundlagen der Programmierung Programmieren in C Erste Programme Hochschule Fulda – FB ET Sommersemester 2014"

Ähnliche Präsentationen


Google-Anzeigen