Programmieren in C Module und Bibliotheken Hochschule Fulda – FB AI Sommersemester 2014 Peter Klingebiel, HS Fulda, DVZ.

Slides:



Advertisements
Ähnliche Präsentationen
Hochschule Fulda – FB ET Sommersemester 2010
Advertisements

Programmierung 1 - Repetitorium
Objektorientierte Programmierung
Ein- und Ausgabe von Dateien
Funktionen und Module Einführung anhand des Beispiels Wörter sortieren Timm Grams Fachhochschule Fulda Fachbereich Elektrotechnik und Informationstechnik.
Programmorganisation
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
Gliederung des Inhalts
Java: Objektorientierte Programmierung
Indirekte Adressierung
Programmieren mit JAVA
Hochschule Fulda – FB ET Sommersemester 2010
Informatik II Grundlagen der Programmierung Programmieren in C Add Ons Hochschule Fulda – FB ET Sommersemester Peter.
Der C-Präprozessor EDV1 - 04Präprozessor.
Einführung in Visual C++
14StrukturKlasse1 Von der Struktur zur Klasse von C zu C++ Von Jens Hoffmann
Der C-Präprozessor 08-CPräprozessor.
DVG Klassen und Objekte
Weiteres Programm Studium des Breitendurchlaufs Hierzu
Programmieren in C Zeichen-/Stringfunktionen Dynamischer Speicher
Einführung in die Programmiersprache C 3.Tag Institut für Mathematische Optimierung - Technische Universität Braunschweig.
OOP-Begriffe Abstraktion Modellieren Klasse Objekt Attribute Methoden
Programmieren in C Einführung
Programmierung 1. Einführung Seite 1
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
Programmieren ... in C++ Prof. Dr.-Ing. Franz-Josef Behr, HfT Stuttgart Programmeiren I.
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
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 Dateien
Programmieren in C Grundlagen C 2
Hochschule Fulda – FB AI Sommersemester 2014
Programmieren in C Sortieren, Suchen
Hochschule Fulda – FB AI Sommersemester 2014
Programmieren in C "Was ist wichtig?"
Java-Kurs Übung Besprechung der Hausaufgabe
Objektorientierte Programmierung Was ist das eigentlich ?
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 Annäherung an C
Programmieren in C Dateien
Programmieren in C Dynamische Listen / Bäume
Programmieren in C Zeichen-/Stringfunktionen Dynamischer Speicher
Programmieren in C Grundlagen C 2
Programmieren in C Grundlagen C 1
Objektorientierte Programmierung
Programmieren in C Wie speichert C
Projektmodul DM Kurze Einführung C-Programmierung
Hochschule Fulda – FB AI Wintersemester 2014/15
Programmieren in C Module und Bibliotheken
Einführung in die Programmierung
 Präsentation transkript:

Programmieren in C Module und Bibliotheken Hochschule Fulda – FB AI Sommersemester Peter Klingebiel, HS Fulda, DVZ

Programmieren in C - Peter Klingebiel - HS Fulda - DVZ2 Module 1 Um größere Programmprojekte überschaubar und sicherer zu machen, wird die Aufgabe in kleinere Teilaufgaben (= Module) zerlegt – Reduktion der Komplexität – separates Entwickeln und Testen – Wiederverwendbarkeit von Programmteilen – Erstellen von Programmbibliotheken Abstraktion von Daten und Funktionen Kapselung von Daten

Programmieren in C - Peter Klingebiel - HS Fulda - DVZ3 Module 2 Black Box Ein Modul in C ist eine Quelldatei, in der eine oder mehrere Funktionen zusammengefasst werden Interne Funktionen möglich, die nur innerhalb des Moduls sichtbar sind Interne Variable möglich, die nur innerhalb des Moduls zugreifbar sind Definition als static

Programmieren in C - Peter Klingebiel - HS Fulda - DVZ4 Module 3 Projekt: Module und Bibliotheken

Programmieren in C - Peter Klingebiel - HS Fulda - DVZ5 Module 4 Schnittstellen eines Moduls, Funktionen und ggfs. Variablen in Headerdatei beschrieben Getrennte Übersetzung der Quelldateien und Erzeugen von Objektkode Erstellen von Programmbibliotheken zur leichten Wiederverwendbarkeit Zusammenmontieren des ausführbaren Programms aus Objektkode der Quellen und der Module sowie aus Bibliotheken

Programmieren in C - Peter Klingebiel - HS Fulda - DVZ6 Module 5 Beispiel: mydraw4.c - nicht modular!

Programmieren in C - Peter Klingebiel - HS Fulda - DVZ7 Module 6 Beispiel: mydraw5 - Moduldatei md.h

Programmieren in C - Peter Klingebiel - HS Fulda - DVZ8 Module 7 Beispiel: Moduldatei md_main.c

Programmieren in C - Peter Klingebiel - HS Fulda - DVZ9 Module 8 Beispiel: Moduldatei md_object.c

Programmieren in C - Peter Klingebiel - HS Fulda - DVZ10 Module 9 Beispiel: Moduldatei md_line.c

Programmieren in C - Peter Klingebiel - HS Fulda - DVZ11 Module 10 Beispiel: Moduldatei md_rect.c

Programmieren in C - Peter Klingebiel - HS Fulda - DVZ12 Module 11 Beispiel: Moduldatei md_circle.c

Programmieren in C - Peter Klingebiel - HS Fulda - DVZ13 Module 12 Beispiel: Moduldatei md_svg.c

Programmieren in C - Peter Klingebiel - HS Fulda - DVZ14 Module 13 IDEs wie Code::Blocks, Netbeans unterstützen Modularisierung durch sog. Projekte Sonst: Steuerung der Compilierung bzw. der durchzuführenden Aktionen zur Erzeugung eines Programms oder Objekts durch sog. Makefiles Makefiles –beschreiben die Abhängigkeit eines Objekts oder Programms von Quelldateien, Modulen und Bibliotheken –beschreiben die notwendigen Aktionen, um Programme, Objektfiles usw. zu erstellen einige Grundaktionen sind vordefiniert, z.B. C-Quelldatei Objektfile

Programmieren in C - Peter Klingebiel - HS Fulda - DVZ15 Module 14 Aktionen abhängig von Zeitstempeln der Dateien Beispiel: prog.exe: main.o modul1.o modul2.o gcc -o prog.exe main.o \ modul1.o modul2.o -lm -lc –Programm prog.exe abhängig von Objektfiles main.o, modul1.o und modul2.o –Aktion: Binden der Objektfiles mit Libs libm und libc –Automatisches Neucompilieren einer Quelle und Neubinden des Exe bei Änderung einer Quelldatei

Programmieren in C - Peter Klingebiel - HS Fulda - DVZ16 Module 15 Beispiel: Makefile für mydraw5

Programmieren in C - Peter Klingebiel - HS Fulda - DVZ17 Module 16 Beispiel: Makefile gesteuerte Übersetzung

Programmieren in C - Peter Klingebiel - HS Fulda - DVZ18 Bibliotheken 1 in der Programmiersprache C sind nur die notwendigsten Grundfunktionalitäten definiert es fehlen z.B. Funktionen für Ein-/Ausgabe, Funktionen für Dateihandling, Funktionen für Stringhandling, höhere mathematische Funktionen und vieles andere mehr... erleichtert die Entwicklung eines C-Compilers leichtere Anpassung / Übertragung auf andere Hardware oder Betriebssysteme

Programmieren in C - Peter Klingebiel - HS Fulda - DVZ19 Bibliotheken 2 Sehr viele der in der Sprachdefinition nicht enthaltenen Funktionen werden in sog. Funktionsbibliotheken, wie z.B. der C- Standardbibliothek, mitgeliefert In der Standardbibliothek sind u.a. enthalten –Ein- und Ausgabefunktionen, Dateihandling, Stringfunktionen u.v.m. libc –Mathematische Funktionen libm –und viele, viele weitere Funktionen Die C-Standardbibliothek ist genormt

Programmieren in C - Peter Klingebiel - HS Fulda - DVZ20 Bibliotheken 3 Funktionen sind zu funktionalen Gruppen zusammengefasst jeweils eine eigene Headerdatei In den Headerdateien sind Prototypen der Funktionen, Typen, Konstanten, Makros usw. definiert oder deklariert Beispiele: –Ein- und Ausgabe stdio.h –Stringfunktionen strings.h –Mathematische Funktionen math.h

Programmieren in C - Peter Klingebiel - HS Fulda - DVZ21 Bibliotheken 4 Beispiel 1: md.h (Fragment)

Programmieren in C - Peter Klingebiel - HS Fulda - DVZ22 Bibliotheken 5 Beispiel 2: stdio.h (Fragment)

Programmieren in C - Peter Klingebiel - HS Fulda - DVZ23 Bibliotheken 6 das Handling von Dateien/Files ist ein sehr gutes Beispiel für Modularisierung in C die Definition des Typs FILE ist in stdio.h verborgen –benötigt wird für Ein-/Ausgabe in C-Programmen nur der Typ FILE –die Implementierung des Typs FILE ist für die Verwendung in Programmen unwichtig –sie sollte auf gar keinen Fall in Programmen verwendet werden, da sie systemabhängig ist! –alle benötigten Konstanten und EA-Funktionen sind in stdio.h definiert bzw. deklariert

Programmieren in C - Peter Klingebiel - HS Fulda - DVZ24 Bibliotheken 7 Bsp: älteres UNIX typedef struct { int _cnt; unsigned char *_ptr; unsigned char *_base; unsigned char _flag; unsigned char _file; } FILE; extern FILE _iob[]; Bsp: devcpp typedef struct _iobuf { char *_ptr; int _cnt; char *_base; int _flag; int _file; int _charbuf; int _bufsiz; char *_tmpfname; } FILE; extern FILE *_imp___iob)[];

Programmieren in C - Peter Klingebiel - HS Fulda - DVZ25 Bibliotheken 8 FILE abstrakter Datentyp für Datei-EA Typ FILE muss (!) unabhängig von der realen Implementierung genutzt werden, da diese systemabhängig (Betriebssystem, Compiler) ist Konstanten teilweise auch systemabhängig Bsp: devcpp _imp___iob #define _iob(*_imp___iob) #define stdin(&_iob[STDIN_FILENO]) #define stdout(&_iob[STDOUT_FILENO]) #define stderr(&_iob[STDERR_FILENO]