Hochschule Fulda – FB ET Sommersemester 2014

Slides:



Advertisements
Ähnliche Präsentationen
der Universität Oldenburg
Advertisements

der Universität Oldenburg
Hochschule Fulda – FB ET Sommersemester 2010
Forschungszentrum caesar
Hochschule Fulda – FB ET Sommersemester 2010
Hochschule Fulda – FB ET Sommersemester 2010
Hochschule Fulda – FB ET Sommersemester 2010
Hochschule Fulda – FB ET Sommersemester 2010
Hochschule Fulda – FB ET Sommersemester 2010
Hochschule Fulda – FB ET Sommersemester 2010
10. Grundlagen imperativer Programmiersprachen
der Universität Oldenburg
Indirekte Adressierung
Java: Grundlagen der Sprache
EINI-I Einführung in die Informatik für Naturwissenschaftler und Ingenieure I Kapitel 1 Gisbert Dittrich; Claudio Moraga FBI Unido
Imperative Programmierung
Java-Kurs - 2. Übung Entwicklungsumgebung Struktur von Programmen
Zusammenfassung Vorwoche
Hochschule Fulda – FB ET Sommersemester 2010
Informatik II Grundlagen der Programmierung Programmieren in C Add Ons Hochschule Fulda – FB ET Sommersemester Peter.
Das erste Programm (Folie 16)
Einführung in C++ und das objektorientierte Programmieren (OOP)
Einführung in Visual C++
Einführung in die Programmiersprache C 1
Informatik 1 Übung 2.
Programmieren in C Zeichen-/Stringfunktionen Dynamischer Speicher
Einführung in die Programmiersprache C 3.Tag Institut für Mathematische Optimierung - Technische Universität Braunschweig.
Javakurs FSS 2012 Lehrstuhl Stuckenschmidt
Einführung in die Programmierung Wintersemester 2008/09 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund.
Allgemeines zu Java Universelle, objektorientierte Programmiersprache
Programmieren in C Einführung
Programmierung 1. Einführung Seite 1
Arduino Kurs Abend 2.
Informatik II Grundlagen der Programmierung Programmieren in C Programmstrukturen / Kontrollstrukturen Hochschule Fulda – FB ET Sommersemester 2014.
Programmieren in C Einführung
Programmieren in C Dynamische Listen / Bäume
Programmieren in C Grundlagen C 5
Informatik II Grundlagen der Programmierung Programmieren in C Benutzerinteraktion / Ein- und Ausgabe Hochschule Fulda – FB ET Sommersemester
Programmieren in C Überblick C "Was ist wichtig?"
Programmieren in C Grundlagen C 3 Hochschule Fulda – FB AI Wintersemester 2013/14 Peter Klingebiel, HS Fulda, DVZ.
Programmieren in C Grundlagen C 2
BMEVIEEA100 Grundlagen der Programmierung
PI Burgenland Java und JavaScript 1. Teil
Informatik II Grundlagen der Programmierung Programmieren in C printf() mit variabler Feldbreite Hochschule Fulda – FB ET Sommersemester 2014
Programmieren in C Einführung
Hochschule Fulda – FB ET Sommersemester 2014
Hochschule Fulda – FB ET Sommersemester 2014
Hochschule Fulda – FB ET Sommersemester 2014
Informatik II Grundlagen der Programmierung Programmieren in C Funktionen, Adressen, Zeiger Hochschule Fulda – FB ET Sommersemester 2014
Informatik II Grundlagen der Programmierung Programmieren in C Ausflug printf() Hochschule Fulda – FB ET Sommersemester 2014
Hochschule Fulda – FB ET Sommersemester 2014
Programmieren in C Annäherung an C
Programmieren in C Grundlagen C 3
Programmieren in C Module und Bibliotheken Hochschule Fulda – FB AI Sommersemester Peter Klingebiel, HS Fulda, DVZ.
Programmieren in C Dateien
Programmieren in C Grundlagen C 2
Hochschule Fulda – FB AI Sommersemester 2014
Programmieren in C Sortieren, Suchen
Hochschule Fulda – FB AI Sommersemester 2014
Java Syntaxdiagramme Buchstabe A B Z a z ... Ziffer
(Syntax, Strings/Zahlen, Variablen, Arrays)
Programmierkurs JavaUE 4 Anweisungen und ProgrammeDietrich BolesSeite 1 Programmierkurs Java Dr. Dietrich Boles Teil Imperative Programmierung Unterrichtseinheit.
Einführung in die Programmierung mit Java
Variablen und Datentypen
Programmieren in C Grundlagen C 1 Hochschule Fulda – FB AI Sommersemester Peter Klingebiel, HS Fulda, DVZ.
Inhalte der Übungen 1.Grundlagen, Ein- und Ausgabe 2.Kontrollstrukturen (Projekt 1) 3.Funktionen 4.Zeiger, Felder (Projekt 2) 5.Strings, Strukturen 6.Fileverarbeitung.
Programmieren in C Zeichen-/Stringfunktionen Dynamischer Speicher
Programmieren in C Grundlagen C 1
Programmieren in C Wie speichert C
Projektmodul DM Kurze Einführung C-Programmierung
 Präsentation transkript:

Informatik II Grundlagen der Programmierung Programmieren in C Erste Programme Hochschule Fulda – FB ET Sommersemester 2014 http://c-et.rz.hs-fulda.de Peter Klingebiel, HS Fulda, DVZ

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

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

C-Programm 2 Programmieren in C - Peter Klingebiel - HS Fulda - DVZ

C-Programm 3 Programmieren in C - Peter Klingebiel - HS Fulda - DVZ

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

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

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

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

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

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

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

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

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

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

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

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

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

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) Programmieren in C - Peter Klingebiel - HS Fulda - DVZ

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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