Technisches Programmieren in C++
|
|
|
- Judith Hausler
- vor 9 Jahren
- Abrufe
Transkript
1 Technisches Programmieren in C++ Karl Riedling Institut für Sensor- und Aktuatorsysteme 2 Allgemeines Die Rolle des Präprozessors in C C++- (und Standard-C-) Programme werden einer Vorverarbeitung im Präprozessor unterworfen. Dieser modifiziert den Quellcode als Textprozessor: Ersatz symbolischer Namen durch andere oder durch Konstanten; Expansion von Makros; Einbinden anderer Quelldateien; Ausblenden von Teilen des Quellcodes in Abhängigkeit vom Ergebnis der Prüfung einer Bedingung; Einstellung gewisser (implementierungsspezifischer) Compilerparameter. 5 Ziel dieser Vorverarbeitung ist es, Quellprogramme einfacher, leichter wartbar und portabler zu gestalten durch: Festlegung oder Änderung konstanter Programmparameter an einer leicht zugänglichen Stelle; Kompaktere Darstellung oft gebrauchter Code- Sequenzen durch Makros; Replizieren gewisser Deklarationen oder Definitionen mit verringerter Fehleranfälligkeit in einer beliebigen Anzahl von Übersetzungseinheiten; 6 1
2 Übersetzung von Programmen mit unterschiedlichen Parametern oder auch in unterschiedlichen Teilen. Adaptieren eines Programms an möglichst wenigen Stellen mit möglichst globaler Wirkung. werden ausschließlich vom Präprozessor interpretiert und aus seiner Ausgabedatei entfernt. Sie müssen grundsätzlich mit einem "#" beginnen, das das erste nicht-leere Zeichen der Zeile sein muss. Präprozessor-Befehle müssen in einer Zeile stehen. Sie können sich dann über mehrere Zeilen erstrecken, wenn das letzte Zeichen in der Zeile unmittelbar vor dem Zeilenvorschub ein "\" ist. Sie können Kommentare in "/* */" oder nach "//" enthalten. Die folgenden Präprozessor-Direktiven sind definiert: #define #endif #ifdef #line #elif #error #ifndef #pragma #else #if #include #undef 7 8 Der Präprozessor expandiert manifeste Konstanten und Makros in jenen Teilen des Programms, die keine Präprozessor-Direktiven sind. Manifeste Konstanten und Makros werden mit der #define-direktive definiert. Mit #define definierte Namen, die für eine Konstante stehen, sind manifeste Konstante; solche, die für einen Ausdruck oder Befehl stehen, sind Makros. Makros können eine beliebige Anzahl von Argumenten haben. Allgemeines Die Rolle des Präprozessors in C Die Rolle des Präprozessors in C++ Die Rolle des Präprozessors in C++ In Standard-C unerlässliche Funktionen des Präprozessors wurden in C++ durch Funktionen des Compilers ersetzt oder dupliziert: Standard-C: manifeste Konstanten (mit #define definiert) Makros C++: Konstante (mit dem Schlüsselwort const deklariert) inline-funktionen Vorteile der C++-Lösungen: Möglichkeit einer strikten Typenprüfung; Verfügbarkeit von Konstanten oder Enumeratoren mit ihren symbolischen Namen innerhalb eines symbolischen Debuggers; keine Probleme mit den Nebenwirkungen von Makro- Aufrufen
3 13 14 Die #define-direktive Die #define-direktive Definition eines symbolischen Namens für eine Konstante, einen Ausdruck oder einen Befehl (generell, für ein Token): #define Name Token-String Alle auf diese Definition folgenden Vorkommen von Name werden durch Token-String ersetzt, wenn Name tatsächlich ein Token bildet. Dies ist nicht der Fall wenn Name Teil eines anderen Namens ist; wenn Name innerhalb eines Strings vorkommt; wenn Name innerhalb eines Kommentars steht. Es ist zulässig, keinen Token-String in einer #define- Direktive anzugeben; in diesem Fall werden alle Vorkommen von Name entfernt. Trotzdem gilt Name aber als definiert (und wird von den Direktiven #if defined oder #ifdef als existent betrachtet). Formale Argumente eines Makros, die beliebig oft in Token-String vorkommen können, können unmittelbar anschließend an Name (ohne Leerzeichen) in Klammern und durch Kommas getrennt angeführt werden Die #define-direktive Funktionsartige Makros (wie max(a, b)) werden überall dort im Programmcode expandiert, wo ihrem Namen eine Parameterliste in Klammern folgt. Jedes formale Argument wird im Makro durch das korrespondierende aktuelle Argument ersetzt. Eine weitere Definition desselben Namens mit #define bewirkt eine Fehlermeldung, ausgenommen, beide Definitionen sind identisch
4 Der "Stringmacher"-Operator "#" Der "Stringmacher"-Operator "#" Der "Tokenverbindungs"-Operator "##" 19 Dieser Operator kann im "Körper" eines Makros einem formalen Argument vorangestellt werden. Bei der Expansion des Makros wird das aktuelle Argument an dieser Stelle des Makros in einen String umgewandelt (also mit """ "eingeklammert"). Leerzeichen vor dem ersten und nach dem letzten Token des Strings werden ignoriert. Wenn im aktuellen Argument die Zeichen """ oder "\" vorkommen, wird ihnen ein "\" vorangestellt. Das folgende Makro gibt das den Namen und den Wert einer Variablen oder eines Ausdrucks (von fundamentalem Typ) aus: 20 Der "Stringmacher"-Operator "#" Der "Stringmacher"-Operator "#" #include <iostream.h> #define ZeigeWert(x) cout << #x " = " \ << (x) << endl; // Fortsetzungszeile! int main () { int i = 13; double x = ; ZeigeWert (i); ZeigeWert (x); ZeigeWert (i * x); } Der Präprozessor macht aus main(): int main () { int i = 13; double x = ; cout << "i" " = " << ( i ) << endl; ; cout << "x" " = " << ( x ) << endl; ; cout << "i * x" " = " << ( i * x ) << endl; ; } Bei seiner Ausführung gibt das Programm aus: i = 13 x = i * x = Der "Tokenverbindungs"-Operator "##" Der "Stringmacher"-Operator "#" Der "Tokenverbindungs"-Operator "##" Dieser Operator erlaubt das Verbinden zweier getrennter Tokens zu einem einzigen. Die sich dabei ergebenden Tokens können ihrerseits die Namen von Makros oder manifesten Konstanten sein, die entsprechend umgesetzt werden. Da "##" zwei benachbarte Tokens verbinden muss, kann dieser Operator weder das erste noch das letzte Token in der Definition des Makros sein. Leerzeichen vor oder nach "##" sind zulässig
5 Die #undef-direktive Die #undef-direktive hebt die Definition eines mit #define definierten Namens wieder auf. Bei der Aufhebung der Definition eines funktionsartigen Makros mit #undef ist nur der Name des Makros anzugeben und keine Argumente! #undef kann auch verwendet werden, um Namen ungültig zu machen, die Elemente der Sprache selbst sind. Die Aufhebung der Definition eines Namens kann verwendet werden, um implementierungsspezifische Schlüsselworte zu entfernen oder zu ändern Die #undef-direktive Reservierte Schlüsselworte haben keine besondere Bedeutung für den Präprozessor und werden genauso behandelt wie irgendein anderer Name Vordefinierte Makros Vordefinierte Makros Einige Makros sind standardmäßig in jeden C- oder C++-Compiler eingebaut; sie können ohne vorherige explizite Definition verwendet werden. Weitere teils implementierungsspezifische vordefinierte Makros geben Type und Version des Compilers, Prozessor-Typ und Betriebssystem, für welche das Programm übersetzt wurde, und ähnliche Informationen an. cplusplus DATE FILE LINE STDC TIME Wird von einem C++-Compiler definiert, wenn er ein C++-Programm übersetzt. Übersetzungsdatum der aktuellen Übersetzungseinheit als String, z.b. "Oct ". Name der Quelldatei als String-Konstante. Aktuelle Zeilennummer in der Quelldatei als int-konstante. Mit dem Wert 1 definiert, wenn der Compiler den ANSI-C-Standard voll erfüllt. Übersetzungszeit der aktuellen Übersetzungseinheit als String-Konstante
6 Die Direktive "#include" bewirkt, dass der Präprozessor den Inhalt der mit #include angegebenen Datei an der Stelle der #include-direktive einbindet. Für den eigentlichen Compiler erscheint der Inhalt der Include-Datei (und weiterer von dieser mit #include eingebundener Dateien) als integraler Bestandteil der aktuellen Übersetzungseinheit. Anwendung von Include-Dateien ist üblicherweise das Einbinden der Definitionen von Konstanten oder Makros, von Definitionen von Funktionen (Prototypen) und Klassen oder von externen Variablen und Objekten Dies ist in den folgenden Fällen zweckmäßig: Wenn die Definitionen von Bibliotheksfunktionen benötigt werden, die mit dem Compiler ausgeliefert werden; Wenn ein Programm aus mehreren Übersetzungseinheiten besteht, und diese Übersetzungseinheiten Zugriff auf gemeinsame Konstanten oder Makros, auf globale Daten oder auf die Definition benutzerdefinierter Datentypen benötigen. Gelegentlich ist es zweckmäßig, auch Teile des Programmcodes mit #include einzubinden, beispielsweise, wenn mehrere Programme auf gemeinsame Code-Module zugreifen müssen, aber die Erstellung einer Funktionsbibliothek nicht sinnvoll oder möglich ist. Es existieren zwei Varianten der #include-direktive: #include "Dateiname" und #include <Dateiname> Diese beiden Varianten unterscheiden sich durch die Strategie, mit der der Präprozessor nach der einzubindenden Datei sucht: Bei der Form "#include "Dateiname"" sucht der Präprozessor (in der angegebenen Reihenfolge) im aktuellen Verzeichnis; in den Verzeichnissen, die mit einer Umgebungsvariablen definiert wurden, in der Reihenfolge ihrer Definition; in den Verzeichnissen, die mit dem Parameter -IVerzeichnis beim Aufruf des Compilers (oder Präprozessors) spezifiziert wurden. Bei der Form "#include <Dateiname>" sucht der Präprozessor in den Verzeichnissen, die mit einer Umgebungsvariablen definiert wurden, in der Reihenfolge ihrer Definition; in den Verzeichnissen, die mit dem Parameter -IVerzeichnis beim Aufruf des Compilers (oder Präprozessors) spezifiziert wurden; nicht im aktuellen Verzeichnis
7 Für Dateien, die mit #include eingebunden werden sollen, hat sich die Dateitype ".h" (für Header) eingebürgert. Es ist die Verwendung dieser Konvention aber keinesfalls zwingend Bedingte Übersetzung Bedingte Übersetzung erlauben eine bedingte Übersetzung: Teile eines Programms werden in Abhängigkeit vom Definitions-Status eines Namens (definiert oder nicht) oder dem ihm zugeordneten Wert verwendet oder übersprungen. Zwei Direktiven #if und #elif ("else if") prüfen den Wert eines Ausdrucks (der zum Zeitpunkt der Bearbeitung des Programms durch den Präprozessor definiert sein muss). Wenn dieser Wert von Null verschieden ist, wird der Teil des Quellcodes bis zur nächstgelegenen #else-, #elif- oder #endif-direktive an den Compiler weitergeleitet, anderenfalls ausgeblendet. Der Definitions-Status eines Namens kann mit den Direktiven #ifdef und #ifndef sowie mit #if und dem Präprozessor-Operator defined getestet werden. Nur wenn die Bedingung erfüllt ist, wird der Teil des Programms bis zur nächsten #else-, #elif- oder #endif-direktive bearbeitet Bedingte Übersetzung Bedingte Übersetzung Jedem #if, #ifdef oder #ifndef muss genau ein #endif entsprechen; dazwischen dürfen beliebig viele #elif-direktiven und als letzte maximal eine #else-direktive liegen. Innerhalb eines durch #if, #ifdef oder #ifndef einerseits und #endif andererseits "aufgespannten" Blocks dürfen weitere #if #endif-blöcke liegen; jede #elif- oder #else-direktive in diesen verschachtelten Blöcken bezieht sich auf das nächstgelegene vorhergehende #if. Es gelten die folgenden Einschränkungen für die mit #if oder #elif verwendeten Ausdrücke: Sie müssen ganzzahlig sein und dürfen nur ganzzahlige Konstanten, Zeichenkonstanten und den Operator defined enthalten. Die Verwendung von Type Casts sowie des Operators sizeof ist unzulässig. Numerische Werte werden intern als long oder unsigned long dargestellt
8 Die Direktive #line Die Direktive #error Die #pragma-direktiven Die Direktive #line Die vordefinierten Makros FILE und LINE repräsentieren den Namen der aktuellen Datei und die Nummer der aktuellen Zeile in dieser Datei. Diese Information kann mit der Direktive #line gezielt verändert werden. Die Zeilennummern werden ausgehend von der mit #line angegebenen Nummer weitergezählt. Die Direktive #line Die Direktive #error Die #pragma-direktiven Für diese Direktive sind die folgenden beiden Formen möglich: #line GanzeZahl und #line GanzeZahl "Dateiname" Die Direktive #error Die Direktive #error Mit der Direktive #error, der ein beliebiger String folgen kann, wird die Übersetzung eines Programms abgebrochen, wobei der mit der Direktive angegebene String ausgegeben wird. Typisch wird diese Direktive dazu verwendet, um nach Prüfung eines vordefinierten Makros die Übersetzung bei Bedarf abzubrechen: #if defined unix #error Tu nix mit UNIX! #endif Mit einem Unix-basierten C++-Compiler (z.b. GNU C++) übersetzt, bewirkt dieses Programm tatsächlich einen Abbruch und die Ausgabe des Kernspruchs: 7_02_09.cc:5: #error Tu nix mit UNIX! Hingegen wird das selbe Programm mit einem Windowsbasierten Compiler, für den der Name unix nicht definiert ist, fehlerfrei übersetzt
9 Die #pragma-direktiven Die Direktive #line Die Direktive #error Die #pragma-direktiven #pragma-direktiven haben grundsätzlich die Form #pragma Token-String Sie dienen dazu, um implementierungsspezifische Anpassungen der Funktionen des Compilers vorzunehmen. Im Gegensatz zu Befehlszeilen-Parametern des Compilers, die immer die gesamte Übersetzungseinheit beeinflussen, können sie auch lokale Veränderungen des Verhaltens des Compilers in Teilen einer Übersetzungseinheit erlauben
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
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
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
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
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.
Wintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf Seite 1 von 29
Kapitel 2 Einführung in C++ Seite 1 von 29 C++ Zeichensatz - Buchstaben: a bis z und A bis Z. - Ziffern: 0 bis 9 - Sonderzeichen: ; :,. # + - * / % _ \! < > & ^ ~ ( ) { } [ ]? Seite 2 von 29 Höhere Elemente
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
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
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
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
1. Vom Sourcecode zum Programm
1. Vom Sourcecode zum Programm 1.1 Programmablauf source1.cpp source2.cpp header.h makefile Compiler Präprozessor Übersetzer Assembler object.obj object.obj Linker library.dll programm.exe Abbildung: Erstellung
Einstieg in die Informatik mit Java
1 / 34 Einstieg in die Informatik mit Java Klassen mit Instanzmethoden Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 34 1 Definition von Klassen 2 Methoden 3 Methoden
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
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
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
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
Javaprogrammierung mit NetBeans. Variablen, Datentypen, Methoden
Javaprogrammierung mit NetBeans Variablen, Datentypen, Methoden Programmieren 2 Java Bezeichner Bezeichner: Buchstabe _ $ Buchstabe _ $ Ziffer Groß- und Kleinbuchstaben werden strikt unterschieden. Schlüsselwörter
9. Vektoren. (auch Felder/array)
9. Vektoren (auch Felder/array) Motivation Hat man mehrere Objekte gleichen Datentyps, so kann man sie explizit deklarieren, wenn die Anzahl bekannt ist double x1,x2,x3,x4; Nachteile: versagt, -wenn die
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..........................
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
Klassen mit Instanzmethoden
Klassen mit Instanzmethoden Gerd Bohlender Institut für Angewandte und Numerische Mathematik Vorlesung: Einstieg in die Informatik mit Java 3.12.07 G. Bohlender (IANM UNI Karlsruhe) OOP und Klassen 3.12.07
Propädeutikum. Dipl.-Inf. Frank Güttler
Propädeutikum 2015 Vorbereitungskurs Informatikstudium Erfolgreich Studieren Programmieren (C-Kurs) [email protected] Universität Leipzig Institut für Informatik Technische Informatik
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
Einführung in den Einsatz von Objekt-Orientierung mit C++ I
Einführung in den Einsatz von Objekt-Orientierung mit C++ I ADV-Seminar Leiter: Mag. Michael Hahsler Syntax von C++ Grundlagen Übersetzung Formale Syntaxüberprüfung Ausgabe/Eingabe Funktion main() Variablen
Programmierung mit C Zeiger
Programmierung mit C Zeiger Zeiger (Pointer)... ist eine Variable, die die Adresse eines Speicherbereichs enthält. Der Speicherbereich kann... kann den Wert einer Variablen enthalten oder... dynamisch
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]+
Grundlagen der Informatik 12. Strukturen
12. Strukturen Strukturen und deren Komponenten Strukturen im Projekt Dynamisch erstellte Strukturen Strukturen und Operatoren Strukturen und Funktionen Einfach verkettete Liste Grundlagen der Informatik
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).
Methoden. Gerd Bohlender. Einstieg in die Informatik mit Java, Vorlesung vom
Einstieg in die Informatik mit Java, Vorlesung vom 2.5.07 Übersicht 1 2 definition 3 Parameterübergabe, aufruf 4 Referenztypen bei 5 Überladen von 6 Hauptprogrammparameter 7 Rekursion bilden das Analogon
Herzlich willkommen!
Programmiertechnik 1 Herzlich willkommen! Dozent: Dipl.-Ing. Jürgen Wemheuer Teil 6: Zusammenfassung und Beispiele Mail: [email protected] Online: http://cpp.ewla.de/ Zusammenfassung (1) 2 1. Programm in
Angewandte Mathematik und Programmierung
Angewandte Mathematik und Programmierung Einführung in das Konzept der objektorientierten Anwendungen zu mathematischen Rechnens WS 2013/14 Operatoren Operatoren führen Aktionen mit Operanden aus. Der
Unterprogramme. Funktionen. Bedeutung von Funktionen in C++ Definition einer Funktion. Definition einer Prozedur
Unterprogramme Unterprogramme sind abgekapselte Programmfragmente, welche es erlauben, bestimmte Aufgaben in wiederverwendbarer Art umzusetzen. Man unterscheidet zwischen Unterprogrammen mit Rückgabewert
C++ - Objektorientierte Programmierung Konstruktoren und Destruktoren
C++ - Objektorientierte Programmierung Konstruktoren und Destruktoren hat eine Kantenlänge hat eine Füllfarbe Kantenlänge setzen Füllfarbe lesen Volumen berechnen Leibniz Universität IT Services Anja Aue
Mapra: C++ Teil 3. Felix Gruber. 29. April IGPM, RWTH Aachen. Felix Gruber (IGPM, RWTH Aachen) Mapra: C++ Teil 3 29.
Mapra: C++ Teil 3 Felix Gruber IGPM, RWTH Aachen 29. April 2015 Felix Gruber (IGPM, RWTH Aachen) Mapra: C++ Teil 3 29. April 2015 1 / 11 Themen vom letzten Mal Debuggen mit gdb Zusammengesetzte Datentypen
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)
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.
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
Informatik. Wiederholung Felder (Arrays), string. Vorlesung
Informatik Vorlesung 04 Wiederholung Felder (Arrays), string 19. November 2018 WiSe 2018 FB Ing - SB Umwelttechnik und Dienstleistung - Informatik Thomas Hoch 1 Ein C++ Programm: Wiederholung #include
Programmieren II Klassen. Programmieren II Klassen. Programmieren II Klassen. Programmieren II Klassen. Zur Erinnerung.
Vorbemerkungen Zur Erinnerung aktueller Standpunkt: Entwickler von (bibliotheken) jetzt sind wichtig interne Repräsentation der Daten Realisierung der gewünschten Funktionalität Bereitstellung geeigneter
Programmieren in C++ Templates
Programmieren in C++ Templates Inhalt Templates Funktions- und Klassen-Templates Spezialisierung von Templates Generische Klassen Einbinden von Templates Instantiierung (implizit und explizit) Templates
Ü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,
8. Referenzen und Zeiger
8. Referenzen und Zeiger Motivation Variable werden in C++ an speziellen Positionen im Speicher abgelegt. An jeder Position befindet sich 1 Byte. Sie sind durchnummeriert beginnend bei 0. Diese Positionen
Thema heute: Vererbung und Klassenhierarchien. Abgeleitete Klassen. Vererbung von Daten und Funktionen. Virtuelle Funktionen
1 Thema heute: Vererbung und Klassenhierarchien Abgeleitete Klassen Vererbung von Daten und Funktionen Virtuelle Funktionen 2 Vererbung oft besitzen verschiedene Datentypen einen gemeinsamen Kern Beispiel:
C++ Teil 2. Sven Groß. 16. Apr IGPM, RWTH Aachen. Sven Groß (IGPM, RWTH Aachen) C++ Teil Apr / 22
C++ Teil 2 Sven Groß IGPM, RWTH Aachen 16. Apr 2015 Sven Groß (IGPM, RWTH Aachen) C++ Teil 2 16. Apr 2015 1 / 22 Themen der letzten Vorlesung Hallo Welt Elementare Datentypen Ein-/Ausgabe Operatoren Sven
Übungen zur Vorlesung EidP (WS 2015/16) Blatt 6
Andre Droschinsky Ingo Schulz Dortmund, den 0. Dezember 2015 Übungen zur Vorlesung EidP (WS 2015/16) Blatt 6 Block rot Es können 4 + 1 Punkte erreicht werden. Abgabedatum: 10. Dezember 2015 2:59 Uhr Hinweise
Programmiersprachen Einführung in C
Programmiersprachen Einführung Teil 3: Prof. Dr. Jörg Schwenk Lehrstuhl für Netz- und Datensicherheit Gliederung Programmiersprachen 1. Von der Maschinensprache zu C 2. Die Struktur von C-Programmen 3.
Zeiger, Arrays und Strings in C und C++
Zeiger, Arrays und Strings in C und C++ 1 Zeiger in Java und C/C++ Zeigervariable (kurz: Zeiger, engl.: pointer): eine Variable, die als Wert eine Speicheradresse enthält Java: Zeiger werden implizit für
FACHHOCHSCHULE AUGSBURG Hochschule für Technik, Wirtschaft und Gestaltung
C Sprachelemente für Übung 2 Typumwandlungen (type casts) Bei Ausdrücken, in denen Operanden mit unterschiedlichem Typ vorkommen, werden diese vom Compiler vor der Ausführung automatisch in einen gemeinsamen
Inhaltsverzeichnis. Kapitel i: Schnelleinstieg 13. Kapitel 2: Was sind Programme? 17. Kapitel 3: Wie erstellt man eigene Programme?
Liebe Leserin, lieber Leser 10 Kapitel i: Schnelleinstieg 13 Kapitel 2: Was sind Programme? 17 Was ist ein Programm? 18 Sprechen Sie Computer? 18 Von der Idee zum Programm 19 Von Windows, Fenstern und
Unterlagen. CPP-Uebungen-08/
Unterlagen http://projects.eml.org/bcb/people/ralph/ CPP-Uebungen-08/ http://www.katjawegner.de/lectures.html Kommentare in C++ #include /* Dies ist ein langer Kommentar, der über zwei Zeilen
Deklarationen in C. Prof. Dr. Margarita Esponda
Deklarationen in C 1 Deklarationen Deklarationen spielen eine zentrale Rolle in der C-Programmiersprache. Deklarationen Variablen Funktionen Die Deklarationen von Variablen und Funktionen haben viele Gemeinsamkeiten.
Programmiertechnik. Teil 4. C++ Funktionen: Prototypen Overloading Parameter. C++ Funktionen: Eigenschaften
Programmiertechnik Teil 4 C++ Funktionen: Prototypen Overloading Parameter C++ Funktionen: Eigenschaften Funktionen (Unterprogramme, Prozeduren) fassen Folgen von Anweisungen zusammen, die immer wieder
Probeklausur Name: (c)
Einführung in die Praktische Informatik 30.1.2013 Probeklausur Name: Teil I: Datentypen (20 Punkte) Lösen sie die Probleme, indem sie die korrekten Lösungen ankreuzen bzw. in die vorgesehenen Freiräume
2 Eine einfache Programmiersprache
2 Eine einfache Programmiersprache Eine Programmiersprache soll Datenstrukturen anbieten Operationen auf Daten erlauben Kontrollstrukturen zur Ablaufsteuerung bereitstellen Als Beispiel betrachten wir
F Zeiger, Felder und Strukturen in C
F Zeiger, Felder und Strukturen in C F Zeiger, Felder und Strukturen in C F.1 Zeiger(-Variablen) 1 Einordnung Konstante: Bezeichnung für einen Wert a 0110 0001 Variable: Bezeichnung eines Datenobjekts
Quiz und Übungen. C++ Übung am 19. Mai 2016
Quiz und Übungen C++ Übung am 19. Mai 2016 Was ist der Unterschied zwischen kompilierenden und interpretierenden Programmiersprachen? Was ist der Unterschied zwischen kompilierenden und interpretierenden
Kapitel 4. Programmierkurs. Datentypen. Arten von Datentypen. Wiederholung Kapitel 4. Birgit Engels, Anna Schulze WS 07/08
Kapitel 4 Programmierkurs Birgit Engels, Anna Schulze Wiederholung Kapitel 4 ZAIK Universität zu Köln WS 07/08 1 / 23 2 Datentypen Arten von Datentypen Bei der Deklaration einer Variablen(=Behälter für
2 Eine einfache Programmiersprache
2 Eine einfache Programmiersprache Eine Programmiersprache soll Datenstrukturen anbieten Operationen auf Daten erlauben Kontrollstrukturen zur Ablaufsteuerung bereitstellen Als Beispiel betrachten wir
2 Eine einfache Programmiersprache. Variablen. Operationen Zuweisung. Variablen
Variablen Eine Programmiersprache soll Datenstrukturen anbieten Operationen auf Daten erlauben Kontrollstrukturen zur Ablaufsteuerung bereitstellen Variablen dienen zur Speicherung von Daten. Um Variablen
11. Übung Informatik II - Operatorfunktionen
Stand: 26. Juni 2015 Inhalt 1 2 3 Übersicht 1 2 3 Warum Operatoren überladen? Großteil der Operatoren (Arithmetik, Logik, Vergleiche) nur für Standarddatentypen (Zahlen, Zeiger) implementiert vergleichbare
Kapitel 2. Einfache Beispielprogramme
Kapitel 2 Einfache Beispielprogramme 2.1 Ausgabe auf dem Bildschirm 2.2 Lokale Variablen, Ausdrücke und Schleifen 2.3 Zahlen von der Tastatur einlesen 2.4 Formatierung bei der Ausgabe 2.5 Zusammenfassung
2 Eine einfache Programmiersprache
2 Eine einfache Programmiersprache Eine Programmiersprache soll Datenstrukturen anbieten Operationen auf Daten erlauben Kontrollstrukturen zur Ablaufsteuerung bereitstellen Als Beispiel betrachten wir
Kontrollstrukturen (1)
Kontrollstrukturen (1) Selektionen, if ermöglicht das alternative Ausführen von Programteilen in Abhängigkeit einer Bedingung if (Bedingung) Block 1 else Block 2 Ist die Bedingung wahr, also ungleich 0,
7 Funktionen. 7.1 Definition. Prototyp-Syntax: {Speicherklasse} {Typ} Name ({formale Parameter});
S. d. I.: Programieren in C Folie 7-1 7 Funktionen 7.1 Definition Prototyp-Syntax: Speicherklasse Typ Name (formale Parameter); der Funktions-Prototyp deklariert eine Funktion, d.h. er enthält noch nicht
2 Eine einfache Programmiersprache
2 Eine einfache Programmiersprache Eine Programmiersprache soll Datenstrukturen anbieten Operationen auf Daten erlauben Kontrollstrukturen zur Ablaufsteuerung bereitstellen Als Beispiel betrachten wir
Syntax und Kontrollstrukturen
Syntax und Kontrollstrukturen Praktikum C-Programmierung Eugen Betke, Nathanael Hübbe, Michael Kuhn, Jakob Lüttgau, Jannek Squar Wissenschaftliches Rechnen Fachbereich Informatik Universität Hamburg 2018-10-29
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,
Klausur: Grundlagen der Informatik I, am 27. März 2009 Gruppe: F Dirk Seeber, h_da, Fb Informatik. Nachname: Vorname: Matr.-Nr.
Seite 1 von 9 Hiermit bestätige ich, dass ich die Übungsleistungen als Voraussetzung für diese Klausur in folgender Übung erfüllt habe. Jahr: Übungsleiter: Unterschrift: 1. Aufgabe ( / 15 Pkt.) Was liefert
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
Einstieg in die Informatik mit Java
1 / 26 Einstieg in die Informatik mit Java Methoden Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 26 1 Methoden 2 Methodendefinition 3 Parameterübergabe, Methodenaufruf
4.2 Gleitkommazahlen. Der Speicherbedarf (in Bits) ist üblicherweise. In vielen Anwendungen benötigt man gebrochene Werte. Physikalische Größen
. Gleitkommazahlen In vielen Anwendungen benötigt man gebrochene Werte. Physikalische Größen Umrechnen von Einheiten und Währungen Jede Zahl x Q mit x 0 lässt sich folgendermaßen schreiben: x = s m e mit
magnum C++ WALTER SAUMWEBER kompakt komplett kompetent
magnum C++ WALTER SAUMWEBER kompakt komplett kompetent Quickview... 5 Liebe Leserin, lieber Leser... 13 Teil 1 Grundlagen... 15 1 Was ist Programmieren?... 17 1.1 Was ist eigentlich ein Computerprogramm?...
Programmierkurs C++ Variablen und Datentypen
Programmierkurs C++ Variablen und Datentypen Prof. Dr. Stefan Fischer Institut für Telematik, Universität zu Lübeck http://www.itm.uni-luebeck.de/people/fischer #2 Überblick Welche Datentypen gibt es in
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
C++ Teil 4. Sven Groß. 30. Apr IGPM, RWTH Aachen. Sven Groß (IGPM, RWTH Aachen) C++ Teil Apr / 16
C++ Teil 4 Sven Groß IGPM, RWTH Aachen 30. Apr 2015 Sven Groß (IGPM, RWTH Aachen) C++ Teil 4 30. Apr 2015 1 / 16 Themen der letzten Vorlesung Funktionen: Definition und Aufruf Wert- und Referenzparameter,
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,
javascript Coding-Guidelines 2. Ausgabe Februar 2015 Der Guideline beschreibt den verwendeten Coding-Stil von javascript als eigene Richtline.
javascript Coding-Guidelines 2. Ausgabe Februar 2015 Der Guideline beschreibt den verwendeten Coding-Stil von javascript als eigene Richtline. Inhalts-Verzeichnis 1. Allgemeine Richtlinien...1 1.1 Anzahl
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
