Präsentation herunterladen
Veröffentlicht von:Heinrike Arlinghaus Geändert vor über 10 Jahren
1
Informatik II Grundlagen der Programmierung Programmieren in C Erste Programme
Hochschule Fulda – FB ET Sommersemester 2014 Peter Klingebiel, HS Fulda, DVZ
2
Trial and Error Programmieren in C: Trial and Error?
Inspector Closeau - Der beste Mann bei Interpol Programmieren in C - Peter Klingebiel - HS Fulda - DVZ
3
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 Programmieren in C - Peter Klingebiel - HS Fulda - DVZ
4
C-Programm 2 Programmieren in C - Peter Klingebiel - HS Fulda - DVZ
5
C-Programm 3 Programmieren in C - Peter Klingebiel - HS Fulda - DVZ
6
C-Programm 4 Typischer Ablauf eines C-Programms
Programmieren in C - Peter Klingebiel - HS Fulda - DVZ
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 Programmieren in C - Peter Klingebiel - HS Fulda - DVZ Programmieren in C - Peter Klingebiel - HS Fulda - DVZ 7
8
C-Programm 6 Beispielprogramm hallowelt.c
Programmieren in C - Peter Klingebiel - HS Fulda - DVZ Programmieren in C - Peter Klingebiel - HS Fulda - DVZ 8
9
C-Programm 7 Kommentare Include-/Headerdateien
sollen Kode und Programm erläutern mehrzeilige Kommentare mit /* */ geklammert einzeilige Kommentare nach // Include-/Headerdateien #include <stdio.h> Preprozessor ersetzt die Zeile durch den Inhalt der Datei stdio.h Ggfs. mit Pfadnamen, z.B. bei eigenen Projekten Mehr zum Preprozessor später Programmieren in C - Peter Klingebiel - HS Fulda - DVZ
10
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) Programmieren in C - Peter Klingebiel - HS Fulda - DVZ
11
C-Programm 9 Programm hallowelt auf der Konsole
Programmieren in C - Peter Klingebiel - HS Fulda - DVZ Programmieren in C - Peter Klingebiel - HS Fulda - DVZ 11
12
C-Bausteine 1 Aus den "Grundbausteinen" von C ...
Programmieren in C - Peter Klingebiel - HS Fulda - DVZ
13
C-Bausteine 2 ... werden "Programme"
Programmieren in C - Peter Klingebiel - HS Fulda - DVZ
14
C-Bausteine 3 Zeichensatz von C
Buchstaben (incl. Unterstrich) ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz _ Ziffern Semikolon (z.B. am Ende einer Anweisung) ; Punkt (Gleitpunktzahlen, Selektionsoperator) . Programmieren in C - Peter Klingebiel - HS Fulda - DVZ
15
C-Bausteine 4 Sonderzeichen (Operatoren, Satzzeichen) ( ) [ ] < > + - * / % ^ ~ & | = ! ? , : Anführungszeichen (Einzelzeichen, Strings) ' " Blockklammern { } Fluchtzeichen (für Sonderzeichen) \ Doppelkreuz (Preprozessordirektiven) # Programmieren in C - Peter Klingebiel - HS Fulda - DVZ
16
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 Programmieren in C - Peter Klingebiel - HS Fulda - DVZ
17
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 Programmieren in C - Peter Klingebiel - HS Fulda - DVZ
18
C-Bausteine 7 Anweisungen Funktionen 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 Programmieren in C - Peter Klingebiel - HS Fulda - DVZ
19
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 Stellen genau) void ohne Wert (z.B. Zeiger) Programmieren in C - Peter Klingebiel - HS Fulda - DVZ
20
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 Programmieren in C - Peter Klingebiel - HS Fulda - DVZ
21
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 Programmieren in C - Peter Klingebiel - HS Fulda - DVZ
22
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 Programmieren in C - Peter Klingebiel - HS Fulda - DVZ
23
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 Programmieren in C - Peter Klingebiel - HS Fulda - DVZ
24
Wie speichert C? 1 Hauptspeicher
Programmieren in C - Peter Klingebiel - HS Fulda - DVZ
25
Wie speichert C? 2 Beispiel: Zugriff auf Variable
Programmieren in C - Peter Klingebiel - HS Fulda - DVZ
26
Wie speichert C? 3 Vor Programmstart
Programmieren in C - Peter Klingebiel - HS Fulda - DVZ
27
Wie speichert C? 4 Programmstart und Aufruf von main()
Programmieren in C - Peter Klingebiel - HS Fulda - DVZ
28
Wie speichert C? 5 Zuweisung a = 4;
Programmieren in C - Peter Klingebiel - HS Fulda - DVZ
29
Wie speichert C? 6 Zuweisung b = 8;
Programmieren in C - Peter Klingebiel - HS Fulda - DVZ
30
Wie speichert C? 7 Berechnung a * b;
Programmieren in C - Peter Klingebiel - HS Fulda - DVZ
31
Wie speichert C? 8 Zuweisung c = a * b;
Programmieren in C - Peter Klingebiel - HS Fulda - DVZ
32
Wie speichert C? 9 Danach Programmieren in C - Peter Klingebiel - HS Fulda - DVZ
33
Exkurs: Ausgabe 1 Aufbau eines C-Programms mit Ausgabe #include <stdio.h> int main() { int a, b, c; a = 4711; b = 13; c = a * b; printf("c = %d\n", c); return(0); } Programmieren in C - Peter Klingebiel - HS Fulda - DVZ
34
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); Programmieren in C - Peter Klingebiel - HS Fulda - DVZ
35
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 Programmieren in C - Peter Klingebiel - HS Fulda - DVZ
36
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! Programmieren in C - Peter Klingebiel - HS Fulda - DVZ
37
Exkurs: Ausgabe 5 Format erzwingt Anzahl +Typ der Parameter
Programmieren in C - Peter Klingebiel - HS Fulda - DVZ
38
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 \ Programmieren in C - Peter Klingebiel - HS Fulda - DVZ
39
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 Programmieren in C - Peter Klingebiel - HS Fulda - DVZ Programmieren in C - Peter Klingebiel - HS Fulda - DVZ 39
40
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 Programmieren in C - Peter Klingebiel - HS Fulda - DVZ Programmieren in C - Peter Klingebiel - HS Fulda - DVZ 40
41
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 Programmieren in C - Peter Klingebiel - HS Fulda - DVZ Programmieren in C - Peter Klingebiel - HS Fulda - DVZ 41
Ähnliche Präsentationen
© 2024 SlidePlayer.org Inc.
All rights reserved.