Programmübersetzung & modulare Programme INE2 M. Thaler, Office TG208

Größe: px
Ab Seite anzeigen:

Download "Programmübersetzung & modulare Programme INE2 M. Thaler, Office TG208"

Transkript

1 Programmübersetzung & modulare Programme INE2 M. Thaler, Office TG

2 slide Um was geht es? C-Quellprogramm ausführbarer Code #include <stdio.h> Quellecodedatei Headerdatei int main(void) { printf("hello World\n"); } Präprozessor C Compiler Schritt 1 Schritt 2 Objektdatei Bibliotheken Linker Schritt 3 Ausführbares Programm Loader Schritt 4 2

3 ... um was geht es? Modulare Programmierung mehrere, verschiedene Quellen main.c add.h add.c sub.h sub.asm entsprechende "Compiler" Compiler Compiler Assembler "kompatibler" Object-Code main.o add.o sub.o Linker (Binder) Linker Libraries ausführbarer Code prog.exe 3

4 Lernziele Sie können die ersten 3 Schritte der Programmübersetzung aufzählen und erklären den 4. Schritt (Loader) erklären die wichtigsten Präprozessor-Direktiven aufzählen und sie korrekt anwenden Mehrfach-Includes bei Header-Files verhindern Vorteile und Prinzipen der modularen Programmierung aufzählen erklären was ein Modul ist das Prinzip des Information-Hiding erklären und in C-Programmen anwenden C-Programme in Module aufteilen 4

5 Inhalt C-Programmübersetzung Modulare Programmierung mit C C-Präprozessor 5

6 Leseempfehlung Kapitel 8 Eigene Header Wikibooks: C Programmierung Kapitel 17 Präprozessor Wikibooks: C Programmierung Kapitel 10 Präprozessor-Direktiven 6

7 slides Schritte der Programmübersetzung Schritt 1: Präprozessor textuelle Vorverarbeitung von Direktiven Schritt 2: Compiler erzeugt Objektcode: linkbare Einheiten von Maschinencode enthält noch offene Referenzen (z.b. Funktionsaufrufe) Schritt 3: Linker fügt linkbare Einheiten zu ausführbarem Maschinencode zusammen und bindet statische Bibliotheken ein löst offene Referenzen auf (Funktionen und externe Variablen) Schritt 4: Loader lädt Programm und falls notwendig dynamische Bibliotheken startet Ausführung des Codes bei main() 7

8 Schritt 1: Präprozessor Führt Direktiven aus Definition von Konstanten, z.b. #define ANZAHL 10 Einbezug weiterer Quellen, z.b. Header Files Ein- / Ausblenden von Blöcken, z.b. Debug Code Header Files Dateien mit Endung ".h" System Header Files, z.b. #include <stdio.h> - Deklaration von Betriebssystem- und Bibliotheksfunktionen - z.b. stdio.h, math.h, stdlib.h, string.h... eigene Header Files, z.b. #include "myinclude.h" - Modularisierung der eigenen Programme 8

9 Schritt 2: Compiler Übersetzt Quellcode Object-Code Module Quellcode Dateien mit Endung ".c" Prüfung auf syntaktische und grammtische Fehler statische Typenprüfung falls möglich: Warnung bei logischen Fehlern Object-Code Maschinen-Code nicht ausführbar, enthält unaufgelöste Referenzen z.b. Funktionsaufrufe aus anderen Modulen oder auf Bibliotheksfunktionen Dateien meist mit Endung ".o" oder ".obj" 9

10 Schritt 3: Linker Object-Code Module ausführbarer Code fügt Module zusammen und bindet Bibliotheken ein ersetzt offene Referenzen, z.b. Funktionsaufrufe überprüft, ob deklarierte Variablen auch definiert sind Linking Varianten statisch der Code von Bibliotheken wird direkt in den ausführbaren Code eingebunden dynamisch der Code von Bibliotheken wird als externe Referenz vermerkt und später beim Laden (Loader) aufgelöst Bibliotheken in C eine Sammlung von Funktionen Standard-Bibliotheken werden automatisch eingebunden weitere Bibliotheken müssen beim Linken angegeben werden 10

11 Schritt 4: Loader Lädt ausführbaren Code in Speicher, startet ihn lädt ".exe" File lädt bei Bedarf dynamische Bibliotheken - bei Windows ".dll" springt zur Funktion "main()" 11

12 Modulare Programmierung Bis jetzt Programm eine einzige C Quellcodedatei Probleme - eine Datei nur ein Entwickler - unübersichtlich bei grösseren Programmen - keine Wiederverwendung von Funktionen - bei Änderungen gesamtes Programm übersetzen - etc. Neu Programm mehrere Quellcode- und Headerdateien Quellcode- und Headerdatei Modul 12

13 Modul Modul: abgeschlossen funktionale Einheit bündelt logisch zusammengehörige Funktionen, Daten und Datenstrukturen kann von Programmen und anderen Modulen genutzt werden kann als Einheit übersetzt werden trennt Schnittstelle und Implementation Beispiel: einfache Roboteranwendung Module, z.b. - Motorsteuerung - Sensorverarbeitung - Steuerlogik 13

14 Modulare Programmierung: Vorteile / Ziele Vorteile / Ziele ermöglicht Team Work - gleichzeitige Bearbeitung durch mehrere Entwickler möglich klare Strukturierung von Programmen - einfache Wiederverwendung von Modulen unabhängige Verifkation von Modulen - verbesserte Zuverlässigkeit Module in verschiedenen Programmiersprachen - z.b. C und Assembler nur geänderte Module neu übersetzen - verkürzt Compilationszeit ermöglicht Bibliotheken - re-use statt re-invertion 14

15 Prinzipien der Modularisierung Geringe Vernetzung der Module wenige Schnittstellen Schwache Kopplung zwischen Modulen schmale Schnittstellen Hohe Kohäsion innerhalb Modul hohe inhaltliche Einheit zuständig für eine wohldefinierte Aufgabe Explizite Schnittstellen Kommunikation mit Parameterübergabe Information Hiding Verstecken der Implementationsdetails trennt Schnittstelle und Implementation 15

16 slide Modulare Programmierung: Beispiel Quellcode in mehrere Module aufteilen jedes Modul eine eigene Datei und eine Header Datei Beispiel einfaches Programm: ein #define und eine Funktion addmax() main.c #include <stdio.h> #define MAX 1000 int addmax(int b); /* Funktionsdeklaration */ int main(void) { printf("%d\n", MAX + addmax(10)); } 16 int addmax(int b) { /* Funktionsdefinition */ return MAX + b; }

17 ... Beispiel 1. Schritt: Aufteilung in 2 Dateien (Module) main.c #include <stdio.h> #define MAX 1000 int addmax(int b); /* Funktionsdeklaration */ int main(void) { printf("%d\n", MAX + addmax(10)); } addmax.c 17 #define MAX 1000 int addmax(int b); /* Funktionsdeklaration, optional: wird in diesem Modul nicht aufgerufen */ int addmax(int b) { /* Funktionsdefinition */ return MAX + b; } Vorteile / Nachteile?

18 slide... Beispiel 2. Schritt: Verwenden einer Headerdatei addmax.h main.c addmax.c 18 #ifndef ADDMAX_H #define ADDMAX_H #define MAX 1000 int addmax(int b); /* Funktionsdeklaration */ #endif #include <stdio.h> #include "addmax.h" int main(void) { printf("%d\n", MAX + addmax(10)); } #include "addmax.h" int addmax(int b) { /* Funktionsdefinition */ return MAX + b; }

19 ... Beispiel 3. Schritt: Übersetzen Quellcodedateien für sich allein übersetzen Objektdateien Linker fügt Objektdateien zu ausführbarem Code zusammen main.c Compiler main.o addmax.h addmax.c Compiler addmax.o Linker Libraries main.exe 19

20 slide Modularisierung: Information Hiding Sichtbarkeit von Funktionen in C Modulen C Funktionen standardmässig global - d.h. ausserhalb des Moduls (für den Linker) sichtbar Einschränkung der Sichtbarkeit auf aktuelles Modul - Schlüsswort static int globalfunc(int a) { // für alle sichtbar... } static int lokalfunc(int b) { // nur im Modul sichtbar... } 20

21 ... Modularisierung: Information Hiding Sichtbarkeit von Variablen in C Modulen Variablen, definiert auf äusserster Ebene, sind standardmässig global sichtbar Einschränkung der Sichtbarkeit auf aktuelles Modul - Schlüsswort static int globalvar; // für alle sichtbar static int lokalvar; // nur im Modul sichtbar 21

22 C Präprozessor Wieso? ursprünglich um Code kompakter und lesbarer zu machen - z.b. Definition globaler Konstanten, etc. Achtung: fehleranfällig, Fehler schwierig zu finden Was? macht textuelle Änderungen am Quellcode unabhängig von C - kann für jede Programmiersprache verwendet werden gesteuert über Direktiven Wie? ist heute Teil jedes C Compilers kann auf Kommandozeile aufgerufen werden - z.b. Linux/GNU: gcc -E file 22

23 slide... C Präprozessor 3 wesentliche Aufgaben Dateien einfügen Makros ersetzen bedingte Übersetzung Direktiven #include #define #ifdef, #ifndef, #endif Direktiven zeilenorientiert - beginnen mit einem Hash "#" - kein Semikolon ";" am Schluss Beispiel #include <stdio.h> #define ANZAHL int maxzahl = ANZAHL; 23

24 Präprozessor: Dateien einbinden Direktive #include #include <datei> #include "datei" Funktionalität - Inhalt von Datei (Text) wird "as is" eingefügt Varianten <...> Einbinden von Header-Dateien aus Standardverzeichnissen "..." Einbinden von Dateien aus aktuellem Verzeichnis Einsatz - meistens verwendet um Konstanten und Deklarationen von Typen und Funktionen einzubinden 24

25 ... Dateien einbinden Beispiel #include "mydefinitions.h" /* print an interger */ void printinteger(int integer); int main(void) { for (int i = 0; i < NUM; i++) printinteger(i); } C Präprozessor /* print an interger */ void printinteger(int integer); 25 int main(void) { for (int i = 0; i < NUM; i++) printinteger(i); }

26 Präprozessor: Konstanten und Macros Direktive #define #define MACRO_NAME Ersatztext #define MACRO_NAME(X) Ersatztext mit Parameter X #define MACRO_NAME(X,Y,...) Ersatztext, mehrere Parameter a) b) Funktionalität a) ohne Parameter Definition von Konstanten MACRO_NAME wird durch Ersatztext ersetzt Ersatztext darf fehlen definiert MACRO_NAME (~Flag) b) mit Parameter Definition von Funktionalität (inline Code) Parameter (X) bei Aufruf durch neuen Parameter ersetzt Konvention: Macro-Namen gross schreiben Hinweis: Makro-Namen in String-Literalen werden nicht ersetzt 26

27 ... Macros Beispiel #define ANZAHL 100 #define MAL3(X) (3*X) int main(void) { for (int i = 0; i < ANZAHL; i++) printf("zahl: %d\n", MAL3(i)); } C Präprozessor int main(void) { for (int i = 0; i < 100; i++) printf("zahl: %d\n", (3*i)); } 27

28 ... Macros Achtung: Probleme es können leicht Fehler eingebaut werden Beispiel: Macro für Quadratberechnung #define QUADRAT(X) X*X... q = QUADRAT(3+5);!... q = QUADRAT(3+5*3+5); q = 8 2 = 64 q = 3 + 5*3 + 5 = 23 Regel 1 Argumente mit Klammern: #define QUADRAT(X) ((X)*(X)) Regel 2 falls möglich, Macros vermeiden Funktion verwenden 28

29 ... Macros Lange Zeilen Präprozessor arbeitet Zeilenorientiert falls Zeile zu lang - Zeile auspalten - Fortsetzungszeichen '\' verwenden Beispiel #define ALARM(text) \ printf("******* "); \ printf("%s", text); \ printf("******* "); 29

30 ... Macros printf("dieses C-File heisst %s\n", FILE ); Vordefinierte Konstanten FILE DATE TIME LINE STDC cplusplus cdelc Name der gerade übersetzten Datei Datum der Übersetzung Uhrzeit Start Übersetzung Nummer der Zeile, die übersetzt wird gesetzt, wenn im Standard C Mode übersetzt mit C++ Compiler übersetzt C Aufruf-Konvention verwenden 30 zwei "underline"

31 slide Präprozessor: bedingte Übersetzung Wieso bedingte Übersetzung? verhindern von mehrfach-includes Debugging Code ein/-ausschalten plattformübergreifende Programmierung - verschiedene Prozessoren - verschiedene Betriebssysteme Lösung auf Präprozessorebene mit Hilfe von "definierten Symbolen" (~Flag) #define DEBUG definiert Symbol DEBUG ohne Wert zuzuweisen 31

32 ... bedingte Übersetzung Symbole (MACRO_NAME) ob ein Symbol definiert ist, kann abgefragt werden Definition ohne Wert ähnlich wie boolean Direktiven ist Symbol definiert? ist Symbol nicht definiert? Definition löschen alternativer Zweig bedingten Block abschliessen Beispiel #ifdef SYMBOL #ifndef SYMBOL #undef SYMBOL #else #endif #ifdef DEBUG printf("debugging is on\n"); #endif nur übersetzt, wenn DEBUG gesetzt 32

33 ... bedingte Übersetzung Mehrfach-Includes möglich beim Einfügen von Header-Files Datei a.h #include "def.h" Datei b.h #include "def.h" #include "a.h" #include "b.h"... Datei main.c Datei main.c Code aus "def.h" Code aus "def.h" nicht zulässig 33

34 ... Mehrfach-Includes Lösung ganze Header-Datei als bedingten Block definieren Symbol für Bedingung aus Dateinamen zusammensetzen Beispiel Datei meine_defs.h #ifndef MEINE_DEFS_H #define MEINE_DEFS_H // Code der Header-Datei #endif Mehrfach-Includes #ifndef MEINE_DEFS_H #define MEINE_DEFS_H // Code der Header-Datei #endif Symbol definiert #ifndef MEINE_DEFS_H #define MEINE_DEFS_H // Code der Header-Datei #endif 34

35 Präprozessor: Debugging Code Zusätzlicher Code zur Fehlersuche nur bei Bedarf übersetzen #ifdef DEBUG printf("initialisierung fertig\n"); #endif Debug Symbol beim gcc auf der Kommandozeile angeben, z.b.: gcc -DDEBUG oder gcc -DDEBUG=Wert bei IDEs meist in Projektoptionen 35

36 Zusammenfassung Modularisierung Wichtig Headerfile (.h) - enthält alle Deklarationen eines Moduls, die für den Nutzer des Moduls zur Compilation notwendig sind - eigene Datentypen, Funktionsprototypen, etc. Implementationsfile (.c) - enthält die Definition (Implementation) des Moduls - wird in ein Objektfile (.o,.obj) übersetzt Linker - fügt die Objektfiles sämtlicher Module zu ausführbarem Programm zusammen 36

Programmierung mit C Modularisierung von Programmen. Präprozessor-Anweisungen nutzen.

Programmierung mit C Modularisierung von Programmen. Präprozessor-Anweisungen nutzen. Programmierung mit C Modularisierung von Programmen. Präprozessor-Anweisungen nutzen. Modularisierung Zerlegung eines Programms in überschaubare Einheiten Die einzelnen Einheiten werden als Modul bezeichnet.

Mehr

Übersicht. C Modularisierung. Präprozessor, Compiler, Linker. Präprozessor, Compiler, Linker. Präprozessor, Compiler und und Linker Linker

Übersicht. C Modularisierung. Präprozessor, Compiler, Linker. Präprozessor, Compiler, Linker. Präprozessor, Compiler und und Linker Linker Übersicht Präprozessor, Compiler und und Linker Linker Befehle des Präprozessors C Modularisierung Bedingte Kompilierung Modulare Programmierung Prinzipien der Modularisierung 1 2 Präprozessor, Compiler,

Mehr

C++ - Einführung in die Programmiersprache Header-Dateien und Funktionen. Leibniz Universität IT Services Anja Aue

C++ - Einführung in die Programmiersprache Header-Dateien und Funktionen. Leibniz Universität IT Services Anja Aue C++ - Einführung in die Programmiersprache Header-Dateien und Funktionen Leibniz Universität IT Services Anja Aue Modularisierung Logische Gliederung von Programmteilen mit Hilfe von Namensräumen. Aufteilung

Mehr

INE1 Präprozessor, Module

INE1 Präprozessor, Module INE1 Präprozessor, Module Prä(ääh)prozessor, Compiler und Linker, Lader Der Präprozessor Bedingte Übersetzung Modulare Programmierung Anhang: make-utility 1 Präprozessor, Compiler, Linker, Lader 2 von

Mehr

Vorlesung Informatik I

Vorlesung Informatik I Vorlesung Informatik I Universität Augsburg Wintersemester 2010/2011 Prof. Dr. Robert Lorenz Lehrprofessur für Informatik Programmieren in C Der Compilierungsprozess 1 Aufbau eines C-Programms 1. Direktiven

Mehr

INE1 Präprozessor, Module. Prä(ääh)prozessor, Compiler und Linker, Lader Der Präprozessor Bedingte Übersetzung Modulare Programmierung

INE1 Präprozessor, Module. Prä(ääh)prozessor, Compiler und Linker, Lader Der Präprozessor Bedingte Übersetzung Modulare Programmierung INE1 Präprozessor, Module Prä(ääh)prozessor, Compiler und Linker, Lader Der Präprozessor Bedingte Übersetzung Modulare Programmierung 1 Präprozessor, Compiler, Linker, Lader 2 von 66 Direkt ausführbarer

Mehr

Proseminar. C-Programmierung Grundlagen und Konzepte. Der Präprozessor. von: Svenja Neef

Proseminar. C-Programmierung Grundlagen und Konzepte. Der Präprozessor. von: Svenja Neef Proseminar C-Programmierung Grundlagen und Konzepte Der Präprozessor von: Svenja Neef Inhaltsverzeichnis 1Der C-Präprozessor...2 1.1Was ist der C-Präprozessor...2 1.2Präprozessor-Befehle...2 1.2.1Zusammenführen

Mehr

FACHHOCHSCHULE MANNHEIM

FACHHOCHSCHULE MANNHEIM für Java-Programmierer Der Präprozessor Prof. Dr. Wolfgang Schramm FACHHOCHSCHULE MANNHEIM Hochschule für Technik und Gestaltung Präprozessor Ist dem Compiler vorgeschaltet ( Prä -). Spezielle Anweisungen

Mehr

8.1 Vom Quellcode zur ausführbaren Programm

8.1 Vom Quellcode zur ausführbaren Programm 8. Die Umgebung von C- 8.1 Vom Quellcode zur Programmausführung 8.2 Präprozessor-Anweisungen 8.3 Compiler, Assembler, Binder 8.4 Das Make-Utility 8.5 Datenübergabe vom und zum Betriebssystem 8-1 8.1 Vom

Mehr

Propädeutikum. Dipl.-Inf. Frank Güttler

Propädeutikum. Dipl.-Inf. Frank Güttler Propädeutikum 2015 Vorbereitungskurs Informatikstudium Erfolgreich Studieren Programmieren (C-Kurs) guettler@informatik.uni-leipzig.de Universität Leipzig Institut für Informatik Technische Informatik

Mehr

C - PRÄPROZESSOR. Seminar effiziente C Programmierung WS 2012/13. Von Christian Peter

C - PRÄPROZESSOR. Seminar effiziente C Programmierung WS 2012/13. Von Christian Peter C - PRÄPROZESSOR Seminar effiziente C Programmierung WS 2012/13 Von Christian Peter Themen Was sind Präprozessoren? Beispiele für Präprozessoren Funktionsweisen Der C - Präprozessor Der # Präfix #include

Mehr

Übungspaket 17 Der gcc Compiler

Übungspaket 17 Der gcc Compiler Übungspaket 17 Der gcc Compiler Übungsziele: Skript: 1. Sicherer Umgang mit gemischten Ausdrücken 2. Herleiten der unterschiedlichen Datentypen in gemischten Ausdrücken 3. Kenntnis über die implizite Durchführung

Mehr

Systempraktikum im Wintersemester 2009/2010 (LMU): Vorlesung vom Foliensatz 2

Systempraktikum im Wintersemester 2009/2010 (LMU): Vorlesung vom Foliensatz 2 Systempraktikum im Wintersemester 2009/2010 (LMU): Vorlesung vom 29.10. Foliensatz 2 Modularisierung (T) Eigene Headerdateien und Bibliotheken (P) Arten der Parameterübergabe (P) Arrays und Strukturen

Mehr

Übungspaket 17 Der gcc Compiler

Übungspaket 17 Der gcc Compiler Übungspaket 17 Der gcc Compiler Übungsziele: Skript: 1. Sicherer Umgang mit gemischten Ausdrücken 2. Herleiten der unterschiedlichen Datentypen in gemischten Ausdrücken 3. Kenntnis über die implizite Durchführung

Mehr

Compiler Präprozessor Header Files

Compiler Präprozessor Header Files Freitagsrunde C-Kurs 2013 Compiler Präprozessor Header Files Tutorium 3 This work is licensed under a Creative Commons Attribution NonCommercial ShareAlike 3.0 License Gliederung Compiler Präprozessor

Mehr

Vorlesung Informatik I

Vorlesung Informatik I Vorlesung Informatik I Universität Augsburg Wintersemester 2011/2012 Prof. Dr. Robert Lorenz Lehrprofessur für Informatik 11. Programmieren in C Der Compilierungsprozess 1 Aufbau eines C-Programms 1. Direktiven

Mehr

Peter Prinz. Das Übungsbuch. CTestfragen und Aufgaben mit Lösungen

Peter Prinz. Das Übungsbuch. CTestfragen und Aufgaben mit Lösungen Peter Prinz Das Übungsbuch CTestfragen und Aufgaben mit Lösungen Grundlagen Dieses Kapitel enthält grundlegende Fragen und Aufgaben zur Erstellung von C-Programmen. Hierzu gehören folgende Themen: Header-Dateien

Mehr

Compiler Präprozessor Header Files

Compiler Präprozessor Header Files Freitagsrunde C-Kurs 2012 Compiler Präprozessor Header Files Tutorium 3 ThisworkislicensedunderaCreativeCommonsAttribution NonCommercial ShareAlike3.0License Gliederung Compiler Präprozessor Header Files

Mehr

Propädeutikum. Dipl.-Inf. Frank Güttler

Propädeutikum. Dipl.-Inf. Frank Güttler Propädeutikum 2015 Vorbereitungskurs Informatikstudium Erfolgreich Studieren Programmieren (C-Kurs) guettler@informatik.uni-leipzig.de Universität Leipzig Institut für Informatik Technische Informatik

Mehr

Grundlagen der Programmiersprache C für Studierende der Naturwissenschaften

Grundlagen der Programmiersprache C für Studierende der Naturwissenschaften Grundlagen der Programmiersprache C für Studierende der Naturwissenschaften Teil 10: Präprozessor, Header und Bibliotheken Martin Nolte Abteilung für Angewandte Mathematik Universität Freiburg i. Br. Vorlesung

Mehr

Einführung Makros Includes Errors und Warnings Pragmas Diverses. Der C-Präprozessor. Lukas Stabe. Universität Hamburg

Einführung Makros Includes Errors und Warnings Pragmas Diverses. Der C-Präprozessor. Lukas Stabe. Universität Hamburg Der C-Präprozessor Lukas Stabe Universität Hamburg Proseminar C - Grundlagen und Konzepte, 2013 Lukas Stabe C-Präprozessor 1 / 19 Inhalt 1. Einführung 2. Makros 3. Includes 4. Errors und Warnings 5. Pragmas

Mehr

Programmieren in C. Macros, Funktionen und modulare Programmstruktur. Prof. Dr. Nikolaus Wulff

Programmieren in C. Macros, Funktionen und modulare Programmstruktur. Prof. Dr. Nikolaus Wulff Programmieren in C Macros, Funktionen und modulare Programmstruktur Prof. Dr. Nikolaus Wulff Der C Präprozessor Vor einem Compile Lauf werden alle Präprozessor Kommandos/Makros ausgewertet. Diese sind

Mehr

hello kann nach der Kompilierung wie jedes andere Unix Kommando ausführt werden

hello kann nach der Kompilierung wie jedes andere Unix Kommando ausführt werden HelloWorldRevisited Datei hello.c Kommandozeile $ gcc -o hello hello.c $./hello Hello, World! $ #include int main(){ } printf("hello, World!\n"); return 0; hellokannnachderkompilierungwiejedesandere

Mehr

Programmierkurs C++ Kapitel 6 Module Seite 1

Programmierkurs C++ Kapitel 6 Module Seite 1 Programmierkurs C++ Kapitel 6 Module Seite 1 (Quell-)Module Unter einem Modul versteht man einen Teil des Programms, der eigenständig übersetzt werden kann. In der Syntax der Programmiersprachen werden

Mehr

Modulare Programmierung und Bibliotheken

Modulare Programmierung und Bibliotheken Modulare Programmierung und Bibliotheken Proseminar-Vortrag am 24.06.2011 von Ludwig Eisenblätter Ludwig Eisenblätter 1 von 25 Modulare Programmierung und Bibliotheken Inhaltsübersicht Motivation / Einleitung

Mehr

Programmierung in C: Vermischtes (Teil 1)

Programmierung in C: Vermischtes (Teil 1) Programmierung in C: Vermischtes (Teil 1) Gültigkeitsbereiche für Variablen C-Präprozessor (#define EPS 0.00001) Inkremtieren und Dekrementieren ( jahr++; restzeit--;) Speicherklassen (static) Typecasts

Mehr

Praxisorientierte Einführung in C++ Lektion: "Die Compiler-Chain (Vom Quellcode zum ausführbaren Programm)"

Praxisorientierte Einführung in C++ Lektion: Die Compiler-Chain (Vom Quellcode zum ausführbaren Programm) Praxisorientierte Einführung in C++ Lektion: "Die Compiler-Chain (Vom Quellcode zum ausführbaren Programm)" Christof Elbrechter Neuroinformatics Group, CITEC April 24, 2014 Christof Elbrechter Praxisorientierte

Mehr

Deklaration, Definition Global, Lokal Modularisierung make statische Variablen Präprozessor. Programmieren in C

Deklaration, Definition Global, Lokal Modularisierung make statische Variablen Präprozessor. Programmieren in C Übersicht Deklaration, Definition Global, Lokal Modularisierung make statische Variablen Präprozessor Deklarationen Funktionsprototypen deklarieren am besten vor der main-funktion (sonst Warnung vor Mischung

Mehr

Strings (Zeichenketten)

Strings (Zeichenketten) Strings (Zeichenketten) INE1, Montag M. Thaler, tham@zhaw.ch Office TG208 http://www.zhaw.ch/~tham 1 Um was geht es? Interaktion mit Computer oft textbasiert Fragen wie wird Text dargestellt? wie wird

Mehr

Modul Entscheidungsunterstützung in der Logistik. Einführung in die Programmierung mit C++ Übung 4

Modul Entscheidungsunterstützung in der Logistik. Einführung in die Programmierung mit C++ Übung 4 Fakultät Verkehrswissenschaften Friedrich List, Professur für Verkehrsbetriebslehre und Logistik Modul Entscheidungsunterstützung in der Logistik Einführung in die Programmierung mit C++ Übung 4 SS 2016

Mehr

Modellierung und Programmierung

Modellierung und Programmierung Modellierung und Programmierung Dr. Martin Riplinger 16.1.2013 IAM Institut für Angewandte Mathematik C-Präprozessor: Einfügungen Standard-Header #include Fügt den Text der Headerdatei

Mehr

C++ - Variablen: Gültigkeit - Sichtbarkeit

C++ - Variablen: Gültigkeit - Sichtbarkeit C++ - Variablen: Gültigkeit - Sichtbarkeit Reiner Nitsch 8417 r.nitsch@fbi.h-da.de Attribute von Variablen und Funktionen Attribute von Variablen sind Name (name), Typ (type), Wert (value) Attribute von

Mehr

Inhalt. 1 Einstieg in die Welt von C Erste Schritte in C 31. Vorwort... 15

Inhalt. 1 Einstieg in die Welt von C Erste Schritte in C 31. Vorwort... 15 Vorwort... 15 1 Einstieg in die Welt von C 17 1.1 Die Sprache C... 17 1.2 Die C-Standardbibliothek... 18 1.3 Die nötigen Werkzeuge für C... 21 1.4 Übersetzen mit der Entwicklungsumgebung... 23 1.5 Übersetzen

Mehr

Programmieren in C. Eine Einführung in die Programmiersprache C. Prof. Dr. Nikolaus Wulff

Programmieren in C. Eine Einführung in die Programmiersprache C. Prof. Dr. Nikolaus Wulff Programmieren in C Eine Einführung in die Programmiersprache C Prof. Dr. Nikolaus Wulff Agenda Elementare Einführung C Programm Syntax Datentypen, Variablen und Konstanten Operatoren und Ausdrücke Kontrollstrukturen

Mehr

Einleitung Entwicklung in C Hello-World! Konstrukte in C Zusammenfassung Literatur. Grundlagen von C. Jonas Gresens

Einleitung Entwicklung in C Hello-World! Konstrukte in C Zusammenfassung Literatur. Grundlagen von C. Jonas Gresens Grundlagen von C Jonas Gresens Proseminar C Grundlagen und Konzepte Arbeitsbereich Wissenschaftliches Rechnen Fachbereich Informatik Fakultät für Mathematik, Informatik und Naturwissenschaften Universität

Mehr

Compiler Präprozessor Header Files

Compiler Präprozessor Header Files Freitagsrunde C-Kurs 2011 Compiler Präprozessor Header Files Tutorium 3 This work is licensed under a Creative Commons Attribution NonCommercial ShareAlike 3.0 License Gliederung Compiler Präprozessor

Mehr

Dr. Monika Meiler. Inhalt

Dr. Monika Meiler. Inhalt Inhalt 8 Das Konfigurationswerkzeug make...8-2 8.1 Modularisierung...8-2 8.2 Modulübersetzung...8-4 8.3 Konfigurationswerkzeug make und Aufbau eines Makefiles...8-8 8.3.1 Abhängigkeiten und Kommandos...

Mehr

Mixed Language Programming POLINA RAJKO - MIXED LANGUAGE PROGRAMMING 1/35

Mixed Language Programming POLINA RAJKO - MIXED LANGUAGE PROGRAMMING 1/35 Mixed Language Programming PROSEMINAR EFFIZIENTE PROGRAMMIERUNG SOSE 2018 POLINA RAJKO POLINA RAJKO - MIXED LANGUAGE PROGRAMMING 1/35 Einführung Java public class Main { public static int quadrat(int i)

Mehr

Organisatorisches Einführung Quellen. Einführung. Praktikum C-Programmierung. Eugen Betke, Nathanael Hübbe, Michael Kuhn, Jakob Lüttgau, Jannek Squar

Organisatorisches Einführung Quellen. Einführung. Praktikum C-Programmierung. Eugen Betke, Nathanael Hübbe, Michael Kuhn, Jakob Lüttgau, Jannek Squar Einführung Praktikum C-Programmierung Eugen Betke, Nathanael Hübbe, Michael Kuhn, Jakob Lüttgau, Jannek Squar Wissenschaftliches Rechnen Fachbereich Informatik Universität Hamburg 2018-10-22 Michael Kuhn

Mehr

Präprozessor und make. einfache Makros Makros nehmen eine Textersetzung vor. Erst nach der Ersetzung muss gültiger C-Code vorliegen.

Präprozessor und make. einfache Makros Makros nehmen eine Textersetzung vor. Erst nach der Ersetzung muss gültiger C-Code vorliegen. Bevor der eigentliche Kompilier-Vorgang stattfindet, wird vom sogenannten eine Vorverarbeitung durchgeführt. Hierbei werden zum Beispiel Kommentare entfernt, aber auch explizite Anweisungen an den verarbeitet.

Mehr

Globale Variablen Diverses. Globale Variablen. Globale Variablen

Globale Variablen Diverses. Globale Variablen. Globale Variablen lokale Variablen Variablen bisher nur am Anfang von Funktionen auch erlaubt: am Anfang innerer Codeblöcke (innerhalb geschweifter Klammern) in C99 und als gcc-erweiterung: an beliebiger Stelle innerhalb

Mehr

10 Die Programmiersprache C99: Zusammenfassung

10 Die Programmiersprache C99: Zusammenfassung 10 Die Programmiersprache C99: Zusammenfassung Jörn Loviscach Versionsstand: 25. September 2014, 18:40 Die nummerierten Felder sind absichtlich leer, zum Ausfüllen beim Ansehen der Videos: http://www.j3l7h.de/videos.html

Mehr

Praxisorientierte Einführung in C++ Lektion: "Die Compiler-Chain (Vom Quellcode zum ausführbaren Programm)"

Praxisorientierte Einführung in C++ Lektion: Die Compiler-Chain (Vom Quellcode zum ausführbaren Programm) Praxisorientierte Einführung in C++ Lektion: "Die -Chain (Vom zum ausführbaren Programm)" Christof Elbrechter Neuroinformatics Group, CITEC April 19, 2012 Christof Elbrechter Praxisorientierte Einführung

Mehr

5. Modulare Programmierung

5. Modulare Programmierung C und C++ (CPP) 5. Modulare Programmierung Prof. Dr. Marc Rennhard Institut für angewandte Informationstechnologie InIT ZHAW Zürcher Hochschule für angewandte Wissenschaften marc.rennhard@zhaw.ch Marc

Mehr

Organisatorisches. Übungsleiter: Karsten Otto Homepage: Aufgaben

Organisatorisches. Übungsleiter: Karsten Otto Homepage:  Aufgaben Organisatorisches Übungsleiter: Karsten Otto (otto@inf.fu-berlin.de) Homepage: http://www.inf.fu-berlin.de/lehre/ss04/sysi/ Aufgaben Montags im Netz Vorbesprechung Dienstag/Mittwoch in den Übungen Abgabe

Mehr

Laborübung aus Systemnahe Programmierung

Laborübung aus Systemnahe Programmierung Laborübung aus Systemnahe Programmierung C - Block für Fortgeschrittene Roman Obermaisser Institut für Technische Informatik 2008 Systemprogrammierung C-Block 1 Übersicht Strukturen Eigene Typen Funktionen

Mehr

Programm in Source-Files aufteilen Erhöht Lesbarkeit Aufteilung orientier t sich an logischer Struktur des Programms Getrenntes Übersetzen möglich:

Programm in Source-Files aufteilen Erhöht Lesbarkeit Aufteilung orientier t sich an logischer Struktur des Programms Getrenntes Übersetzen möglich: Source-Files Programm == Source-File nicht sinnvoll Unübersichtlich Bei jeder kleinen Änderung gesamtes File neu übersetzen Übersetzen dauert lange Keine Gruppenarbeit möglich Programm in Source-Files

Mehr

2. Programmierung in C

2. Programmierung in C 2. Programmierung in C Inhalt: Überblick über Programmiersprachen, Allgemeines zur Sprache C C: Basisdatentypen, Variablen, Konstanten, Operatoren und Ausdrücke Anweisungen und Kontrollstrukturen (Steuerfluss)

Mehr

2. Programmierung in C

2. Programmierung in C 2. Programmierung in C Inhalt: Überblick über Programmiersprachen, Allgemeines zur Sprache C C: Basisdatentypen, Variablen, Konstanten, Operatoren und Ausdrücke Anweisungen und Kontrollstrukturen (Steuerfluss)

Mehr

Der C-Präprozessor. Lukas Stabe

Der C-Präprozessor. Lukas Stabe Der C-Präprozessor Lukas Stabe Inhaltsverzeichnis 1 Einleitung 1 2 Makros 1 2.1 Parameterlose............................ 1 2.2 Parameterbehaftete......................... 3 2.3 Verbreitete Fehler..........................

Mehr

C/C++ Programmierung

C/C++ Programmierung 1 C/C++ Programmierung Grundlagen: Der Präprozessor Sebastian Hack Christoph Mallon (hack mallon)@cs.uni-sb.de Fachbereich Informatik Universität des Saarlandes Wintersemester 2009/2010 2 Der Präprozessor

Mehr

Programmiersprachen Einführung in C

Programmiersprachen Einführung in C Programmiersprachen Einführung in C 14 Vertiefung einiger Themen Prof. Dr. Gliederung Programmiersprachen 1. Von der Maschinensprache zu C 2. Die Struktur von C-Programmen 3. Variable und Datentypen in

Mehr

Berichte aus der Informatik. Dieter Pawelczak. Start in die C-Programmierung

Berichte aus der Informatik. Dieter Pawelczak. Start in die C-Programmierung Berichte aus der Informatik Dieter Pawelczak Start in die C-Programmierung Shaker Verlag Aachen 2012 Inhaltsverzeichnis Inhaltsverzeichnis i 1 Einleitung 1 1.1 Umfeld und Aufbau des Buches 1 Die Programmiersprache

Mehr

Strukturierte Programmierung und Funktionen

Strukturierte Programmierung und Funktionen Strukturierte Programmierung und Funktionen Um ein Programm übersichtlicher zu gestalten, zerlegt man seine Funktionalität meist in mehrere (oder auch ganz viele) Teile. Dadurch lässt sich das Programm

Mehr

Kapitel 5: Programmerzeugung. Präprozessor Übersetzer Fehlersuche Debugger Entwicklungsumgebungen

Kapitel 5: Programmerzeugung. Präprozessor Übersetzer Fehlersuche Debugger Entwicklungsumgebungen für Elektrotechniker Kapitel 5: Programmerzeugung Präprozessor Übersetzer Fehlersuche Debugger Entwicklungsumgebungen Präprozessor Präprozessor Aufgaben Einfügen von Dateien (#include...) Ersetzen von

Mehr

Einführung in die Programmiersprache C

Einführung in die Programmiersprache C Einführung in die Programmiersprache C 4 Storage classes Alexander Sczyrba Robert Homann Georg Sauthoff Universität Bielefeld, Technische Fakultät Compilation units Compilierung eines mehrteiligen Programms:

Mehr

Erste Schritte der Programmierung in C

Erste Schritte der Programmierung in C Erste Schritte der Programmierung in C C versus C++ Anatomie von C-Programmen für AVR- Mikrocontroller Unterschiede zwischen C++ und C 1 Grundlegende Unterschiede File-Extensions (Header und Quellcode)

Mehr

Compiler und Präprozessor (1) Erstellen eines Projektes

Compiler und Präprozessor (1) Erstellen eines Projektes Compiler und Präprozessor (1) Erstellen eines Projektes Projekte bestehen meist aus mehreren Dateien, z.b. Quelldateien, Funktionssammlungen in Bibliotheken Zur Definition eines Projektes sind folgende

Mehr

2Binden 3. und Bibliotheken

2Binden 3. und Bibliotheken 3 Vom C-Programm zum laufenden Prozess 3.1 Übersetzen - Objektmodule 1Übersetzen 3. - Objektmodule (2) Teil III 3Vom C-Programm zum laufenden Prozess 2. Schritt: Compilieren übersetzt C-Code in Assembler

Mehr

Datenstrukturen. InE1 M. Thaler, Office TG ZHAW, M. Thaler, K. Rege, G. Burkert

Datenstrukturen. InE1 M. Thaler, Office TG ZHAW, M. Thaler, K. Rege, G. Burkert Datenstrukturen InE1 M. Thaler, tham@zhaw.ch Office TG208 http://www.zhaw.ch/~tham 1 Um was gehtes? Rangliste Winti-Marathon benötigte Information pro Teilnehmer Variable Typ Daten Name String Vorname

Mehr

Objekte und Klassen. INE2 M. Thaler, Office TG ZHAW, M. Thaler, K. Rege, G. Burkert, E.

Objekte und Klassen. INE2 M. Thaler, Office TG ZHAW, M. Thaler, K. Rege, G. Burkert, E. Objekte und Klassen INE2 M. Thaler, tham@zhaw.ch Office TG208 http://www.zhaw.ch/~tham 1 Um was geht es? typedef struct Konto { double saldo; int id; Konto; Modul "konto" konto.h konto.c Prozedurale Programmierung:

Mehr

Die Programmiersprache C

Die Programmiersprache C Die Programmiersprache C höhere Programmiersprache (mit einigen assemblerähnlichen Konstrukten) gut verständliche Kommandos muss von Compiler in maschinenlesbaren Code (Binärdatei) übersetzt werden universell,

Mehr

Systemprogrammierung

Systemprogrammierung Systemprogrammierung 3Vom C-Programm zum laufenden Prozess 6. November 2008 Jürgen Kleinöder Universität Erlangen-Nürnberg Informatik 4, 2008 SS 2006 SOS 1 (03-Pro.fm 2008-11-06 08.52) 3 Vom C-Programm

Mehr

Teil II. Literatur zur C-Programmierung:

Teil II. Literatur zur C-Programmierung: Teil II 2Kurzeinführung in die Programmiersprache C Literatur zur C-Programmierung: Darnell, Margolis. C: A Software Engineering Approach. Springer 1991 Kernighan, Ritchie. The C Programming Language.

Mehr

Programmierkurs. Interdisciplinary Center for Scientific Computing, Heidelberg University. November 17, 2017

Programmierkurs. Interdisciplinary Center for Scientific Computing, Heidelberg University. November 17, 2017 Programmierkurs Ole Klein Steffen Müthing Interdisciplinary Center for Scientific Computing, Heidelberg University November 17, 2017 Standardbibliothek Variablen und Referenzen Aufrufkonventionen Der C++-Kompilierprozess

Mehr

Einführung in die Programmiersprache C

Einführung in die Programmiersprache C Einführung in die Programmiersprache C 4 Storage classes Alexander Sczyrba Robert Homann Georg Sauthoff Universität Bielefeld, Technische Fakultät Compilation units Compilierung eines mehrteiligen Programms:

Mehr

Wiederholungen / Schleifen

Wiederholungen / Schleifen Wiederholungen / Schleifen Repetitive Ausführung von Instruktionen InE1 M. Thaler, tham@zhaw.ch Office TG208 http://www.zhaw.ch/~tham 1 Um was geht es? Beispiel Quadratzahlen von 1000 bis 1009 berechnen

Mehr

C-Crashkurs. Praktikum Systemmanagement und Sicherheit

C-Crashkurs. Praktikum Systemmanagement und Sicherheit C-Crashkurs Praktikum Systemmanagement und Sicherheit ZIELE DIESES KURSES 15.04.2014 Dipl.-Inf. M. Bohr C_Crashkurs 2 Compiler gcc verwenden geläufigste Datentypen in C kennen Fehlerbehandlung (ohne Ausnahmeklassen)

Mehr

Hello World! Eine Einführung in das Programmieren Das erste Programm

Hello World! Eine Einführung in das Programmieren Das erste Programm Hello World! Eine Einführung in das Programmieren Das erste Programm Görschwin Fey Institute of Embedded Systems Hamburg University of Technology Slide 2 Betriebssystem Funktion Anwendung Gerätesteuerung

Mehr

Übungspaket 28 Module und getrenntes Übersetzen

Übungspaket 28 Module und getrenntes Übersetzen Übungspaket 28 Module und getrenntes Übersetzen Übungsziele: Skript: 1. Verteilen von Programmteilen auf mehrere Dateien 2. Richtige Verwendung der Header-Dateien 3. Richtiger Umgang mit dem C-Compiler

Mehr

Programmierung und Angewandte Mathematik

Programmierung und Angewandte Mathematik Programmierung und Angewandte Mathematik C++ /Scilab Programmierung und Einführung in das Konzept der objektorientierten Anwendungen zu wissenschaftlichen Rechnens SS 2012 Ablauf Was sind Funktionen/Methoden

Mehr

2. Datentypen und Variablen I

2. Datentypen und Variablen I 2. Datentypen und Variablen I Prof. Dr. Markus Gross Informatik I für D-ITET (WS 03/04)!Elemente eines C++ Programmes!Präprozessor #include!main()-funktion!ein- und Ausgabe mit cin und cout-objekten!deklaration

Mehr

Dynamische Speicherverwaltung

Dynamische Speicherverwaltung Dynamische Speicherverwaltung INE2 M. Thaler, tham@zhaw.ch Office TG208 http://www.zhaw.ch/~tham 1 Um was geht es? Bisjetzt Beispiel Ranglistenprogramm für Sportveranstaltungen Besser - genaue Anzahl Teilnehmer

Mehr

Computergrundlagen Programmieren in C

Computergrundlagen Programmieren in C Die Compilersprache C Computergrundlagen Programmieren in C Axel Arnold Institut für Computerphysik Universität Stuttgart Wintersemester 2010/11 Geschichte D. M. Ritchie, *1941 1971-73: Entwickelt von

Mehr

C++ - Funktionen und mehr -

C++ - Funktionen und mehr - C++ - Funktionen und mehr - Friedrich-Schiller-Universität Jena Kerstin Gößner und Ralf Wondratschek Prof. Dr. habil. Wolfram Amme Dipl.-Inf. Thomas Heinze Inhaltsverzeichnis 1 Einleitung 3 2 Deklaration,

Mehr

Beispiel. Problem: mehrteilige Nachnamen (von Goethe, Mac Donald, Di Caprio)

Beispiel. Problem: mehrteilige Nachnamen (von Goethe, Mac Donald, Di Caprio) Beispiel Beispiel: Namensliste konvertieren (Karl Egon Meier Meier, Karl Egon). s/(.*) (.*)/$2, $1/; Problem: mehrteilige Nachnamen (von Goethe, Mac Donald, Di Caprio) s/(.*) (.*)/$2, $1/; s/(.*) ([a-z]+

Mehr

Bit Operationen. InE1 M. Thaler, Office TG ZHAW, M. Thaler, K. Rege, G. Burkert

Bit Operationen. InE1 M. Thaler, Office TG ZHAW, M. Thaler, K. Rege, G. Burkert Bit Operationen InE M. Thaler, tham@zhaw.ch Office TG28 http://www.zhaw.ch/~tham November 8 Um was geht es? Microcontroller z.b. Ansteuerung/Konfiguartion von I/O Registern oft notwendig: einzelne Bits

Mehr

Objektorientierung: Klassen und Objekte

Objektorientierung: Klassen und Objekte Objektorientierung: Klassen und Objekte Klasse: Beschreibung für eine Menge von Objekten Schablone, Bauplan abstrakte Form Objekt: Instanz einer Klasse konkreter Inhalt (Werte) Klassen bestehen aus Attributen

Mehr

2. Programmierung in C

2. Programmierung in C 2. Programmierung in C Inhalt: Überblick über Programmiersprachen, Allgemeines zur Sprache C C: Basisdatentypen, Variablen, Konstanten, Operatoren und Ausdrücke Anweisungen und Kontrollstrukturen (Steuerfluss)

Mehr

Konzepte von Betriebssystem-Komponenten. Programmstart & dynamische Bibliotheken SS 05. Wladislaw Eckhardt.

Konzepte von Betriebssystem-Komponenten. Programmstart & dynamische Bibliotheken SS 05. Wladislaw Eckhardt. Proseminar KVBK Programmstart dynamische Bibliotheken Konzepte von Betriebssystem-Komponenten Programmstart & dynamische Bibliotheken SS 05 Wladislaw Eckhardt Wladi23@gmx.net 1 1 Einleitung 1.1 Problematik

Mehr

Inhaltsverzeichnis. Inhalt. Bemerkung... 9 Vorwort Programme und Programmiersprachen

Inhaltsverzeichnis. Inhalt. Bemerkung... 9 Vorwort Programme und Programmiersprachen Inhalt 3 Bemerkung... 9 Vorwort... 10 1 Programme und Programmiersprachen 1.1 Assembler... 13 1.2 Höhere Programmiersprachen... 15 1.2.1 Interpreter... 16 1.2.2 Compiler... 17 1.2.3 Zwischencode... 18

Mehr

Systemprogrammierung

Systemprogrammierung IEinführung I in die Programmiersprache C Literatur zur C-Programmierung: Darnell, Margolis. C: Software Engineering pproach. Springer 1991 Kernighan, Ritchie. The C Programming Language. Prentice-Hall

Mehr

C- Kurs 06 Übersetzung & Module

C- Kurs 06 Übersetzung & Module C- Kurs 06 Übersetzung & Module Dipl.- Inf. Jörn Hoffmann jhoffmann@informaek.uni- leipzig.de Universität Leipzig InsEtut für InformaEk Technische InformaEk Übersetzung Überblick Übersetzung mit Modulen

Mehr

Compiler Präprozessor Header Files

Compiler Präprozessor Header Files Freitagsrunde C-Kurs 2010 Compiler Präprozessor Header Files Katrin Lang This work is licensed under a Creative Commons Attribution NonCommercial ShareAlike 3.0 License Gliederung Compiler Präprozessor

Mehr

Praxis der Programmierung

Praxis der Programmierung Funktionen, Header-Dateien, Pointer Institut für Informatik und Computational Science Universität Potsdam Henning Bordihn 1 Organisatorische Bemerkungen 2 Modul Programmierung Pflichtmodul für BSc INF

Mehr

Übung zu Grundlagen der Betriebssysteme. Einführungsveranstaltung 16.10.2012

Übung zu Grundlagen der Betriebssysteme. Einführungsveranstaltung 16.10.2012 Übung zu Grundlagen der Betriebssysteme Einführungsveranstaltung 16.10.2012 Termine Übungen wöchentlich, Dienstags 14 Uhr (c.t.), Raum E312 15 Uhr (s.t.), Raum E312 Jede Woche 1 Übungsblatt http://userpages.uni-koblenz.de/~mips/bs/uebung/

Mehr

Verwendung Vereinbarung Wert einer Funktion Aufruf einer Funktion Parameter Rekursion. Programmieren in C

Verwendung Vereinbarung Wert einer Funktion Aufruf einer Funktion Parameter Rekursion. Programmieren in C Übersicht Funktionen Verwendung Vereinbarung Wert einer Funktion Aufruf einer Funktion Parameter Rekursion Sinn von Funktionen Wiederverwendung häufig verwendeter nicht banaler Programmteile Wiederverwendung

Mehr

Inhalt. 4.9 Typen, Variable und Konstante

Inhalt. 4.9 Typen, Variable und Konstante Inhalt Inhalt: 4. Programmiersprache C 4.1 Programmaufbau in C 4.2 Basisdatentypen und einfache Anweisungen 4.3 Steuerfluss-Konstrukte 4.4 Arbeit mit indizierten Größen (Felder) 4.5 Arbeit mit Pointern

Mehr

C - Das Übungsbuch. Testfragen und Aufgaben mit Lösungen. von Peter Prinz. 1. Auflage

C - Das Übungsbuch. Testfragen und Aufgaben mit Lösungen. von Peter Prinz. 1. Auflage C - Das Übungsbuch Testfragen und Aufgaben mit Lösungen von Peter Prinz 1. Auflage C - Das Übungsbuch Prinz schnell und portofrei erhältlich bei beck-shop.de DIE FACHBUCHHANDLUNG Thematische Gliederung:

Mehr

ISO-SiMMlarcl. als erste Programmiersprache. Von Prof. Dr. Joachim Goll Uwe Grüner Prof. Herbert Wiese 2., durchgesehene Auflage

ISO-SiMMlarcl. als erste Programmiersprache. Von Prof. Dr. Joachim Goll Uwe Grüner Prof. Herbert Wiese 2., durchgesehene Auflage ISO-SiMMlarcl als erste Programmiersprache Von Prof. Dr. Joachim Goll Uwe Grüner Prof. Herbert Wiese 2., durchgesehene Auflage B.G.Teubner Stuttgart Leipzig 1999 Inhaltsverzeichnis 1.1 Algorithmen und

Mehr

Algorithmus: Kochrezept

Algorithmus: Kochrezept Algorithmus: Kochrezept Ziel: Menü mit drei Gängen für 4 Personen Grundlegende Spezifikation: 1. Vorspeise: Badische Flädlesuppe 2. Hauptgericht: Überbackene Schinkenröllchen mit Spargel 3. Dessert: Vanilleeis

Mehr

Einführung in die C-Programmierung

Einführung in die C-Programmierung Einführung in die C-Programmierung Warum C? Sehr stark verbreitet (Praxisnähe) Höhere Programmiersprache Objektorientierte Erweiterung: C++ Aber auch hardwarenahe Programmierung möglich (z.b. Mikrokontroller).

Mehr

Kurzeinführung in C/C++ Informationsquellen: - Webseite zur Vorlesung, Abschnitt Informationen zu C und C++ Einleitung

Kurzeinführung in C/C++ Informationsquellen: - Webseite zur Vorlesung, Abschnitt Informationen zu C und C++ Einleitung Informationsquellen: - Webseite zur Vorlesung, Abschnitt Informationen zu C und C++ 1 Einleitung Vorteile von Java: gut strukturiert mit hohem Funktionsumfang (mächtige Standardbibliothek) weitestgehend

Mehr

Pointer und Arrays. INE1, Montag M. Thaler, Office TG208. ZHAW, M. Thaler, K. Rege, G.

Pointer und Arrays. INE1, Montag M. Thaler, Office TG208.  ZHAW, M. Thaler, K. Rege, G. Pointer und Arrays INE1, Montag M. Thaler, tham@zhaw.ch Office TG208 http://www.zhaw.ch/~tham 1 Um was geht es? Variable Speicherplatz Datenwert über Name ansprechbar hat Typ hat Adresse (Speicheradresse)

Mehr

C - Grundlagen und Konzepte Modulare Programmierung und Bibliotheken

C - Grundlagen und Konzepte Modulare Programmierung und Bibliotheken C - Grundlagen und Konzepte Modulare Programmierung und Bibliotheken Stefan Grusche Arbeitsbereich Wissenschaftliches Rechnen Fachbereich Informatik Fakultät für Mathematik, Informatik und Naturwissenschaften

Mehr

C Kurzeinführung in die Programmiersprache C

C Kurzeinführung in die Programmiersprache C C Kurzeinführung in die Programmiersprache C C Kurzeinführung in die Programmiersprache C Literatur zur C-Programmierung: Darnell, Margolis. C: A Software Engineering Approach. Springer 1991 Kernighan,

Mehr

C Kurzeinführung in die Programmiersprache C. C-3 Datentypen und Variablen. C-2 Struktur eines C-Programms. C-1 Überblick. 1 Standardtypen in C

C Kurzeinführung in die Programmiersprache C. C-3 Datentypen und Variablen. C-2 Struktur eines C-Programms. C-1 Überblick. 1 Standardtypen in C C Kurzeinführung in die Programmiersprache C C Kurzeinführung in die Programmiersprache C Literatur zur C-Programmierung: Datentypen legen fest: Darnell, Margolis. C: A Software Engineering Approach. Springer

Mehr