Einführung in die Programmierung mit C++



Ähnliche Dokumente
Einführung in die Programmierung mit C++

Grundlagen der Informatik - 6. Praktikum

Programmentwicklung mit C++ (unter Unix/Linux)

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

C A R L V O N O S S I E T Z K Y. Boost C++ Libraries. Johannes Diemke. Department of Computer Science Learning and Cognitive Systems

C++ Grundlagen. ++ bedeutet Erweiterung zum Ansi C Standard. Hier wird eine Funktion eingeleitet

Vorkurs C++ Programmierung

YouTube: Video-Untertitel übersetzen

Verwalten Sie Ihre Homepage von überall zu jeder Zeit! Angebote und Informationen auf

Einführung in die C++ Programmierung für Ingenieure

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

DAP2-Programmierpraktikum Einführung in C++ (Teil 1)

Unterprogramme. Funktionen. Bedeutung von Funktionen in C++ Definition einer Funktion. Definition einer Prozedur

Zählen von Objekten einer bestimmten Klasse

Qt-Projekte mit Visual Studio 2005

Grundlagen. Kapitel 1

Softwarepraktikum: Einführung in Makefiles

2.4 Das erste C++-Programm *

Installation und Inbetriebnahme von Microsoft Visual C Express

Ziel, Inhalt. Programmieren in C++ Wir lernen wie man Funktionen oder Klassen einmal schreibt, so dass sie für verschiedene Datentypen verwendbar sind

Artikel Schnittstelle über CSV

Einführung in die Programmierung

Wintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf Seite 1 von 16

Wintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf Seite 1 von 18

Web-Kürzel. Krishna Tateneni Yves Arrouye Deutsche Übersetzung: Stefan Winter

Java Einführung Packages

Projektverwaltung Problem Lösung: Modulare Programmierung

Übungen zu C++ Kapitel 1

DER BESSER INFORMIERTE GEWINNT!

Objektorientierung: Klassen und Objekte

Wichtige Information zur Verwendung von CS-TING Version 9 für Microsoft Word 2000 (und höher)

Die Invaliden-Versicherung ändert sich

.NET Code schützen. Projekt.NET. Version 1.0

Version 0.3. Installation von MinGW und Eclipse CDT

SJ OFFICE - Update 3.0

Nuetzlicher Kleinkram

DLLs (dynamic loaded libraries) mit MingW erstellen

Pakete dienen dazu, die Software eines Projektes in größere inhaltlich zusammengehörige Bereiche mit eigenem Namen einzuteilen (siehe Java API).

Anleitung zur Datensicherung und -rücksicherung in der VR-NetWorld Software

Hochschule Darmstadt Informatik-Praktikum (INF 1) WS 2015/2016 Wirtschaftsingenieur Bachelor 5. Aufgabe Datenstruktur, Dateieingabe und -ausgabe

Hochschule Darmstadt Informatik-Praktikum (INF 1) WS 2014/2015 Wirtschaftsingenieur Bachelor 4. Aufgabe Datenstruktur, Dateieingabe und -ausgabe

Kompilieren und Linken

Grundlagen der Verwendung von make

Erstellung eines Banderole-Ads Stand 06/10

2. Semester, 2. Prüfung, Lösung

Software-Engineering und Optimierungsanwendungen in der Thermodynamik

Einführung in die Programmierung (EPR)

Design anpassen eine kurze Einführung

Produktinfo Zahlungsvorschlagsliste

OpenMAP WEBDrive Konfiguration. Oxinia GmbH , Version 1

Zum Abschluss wird gezeigt, wie aus einem C++ Quell-Programm ein ausführbares Programm erzeugt wird. 1. Installation von NetBeans...

Methoden. von Objekten definiert werden, Methoden,, Zugriffsmethoden und Read-Only

Aufgaben zum Datenmanagement

Dr. Monika Meiler. Inhalt

Anleitung zur Einrichtung von OpenCV

Einführung in die C++ Programmierung für Ingenieure

Kurze Einführung in die Programmiersprache C++ und in Root

INDEX. Öffentliche Ordner erstellen Seite 2. Offline verfügbar einrichten Seite 3. Berechtigungen setzen Seite 7. Öffentliche Ordner Offline

Erreichbarkeit von Klassenelementen. Daten verstecken und kapseln

Verbinden. der Firma

Robot Karol für Delphi

Programmablauf für die Batch Wlan Komplettpakete mit Windows CE

Tutorial Moodle 2 Gruppen, Gruppenschlüssel und Gruppierungen

Angewandte Mathematik und Programmierung

Bedienungsanleitung. Matthias Haasler. Version 0.4. für die Arbeit mit der Gemeinde-Homepage der Paulus-Kirchengemeinde Tempelhof

Standard-Kontaktformular

Neuer Releasestand Finanzbuchhaltung DAM-EDV E Inhaltsverzeichnis. 1. Neuerungen Schnittstelle Telebanking mit IBAN und BIC...

Wie erreiche ich was?

Page Hotelsoftware. Merkblatt für Mehrwertsteuer-Umstellung für Beherbergungsleistungen zum

Erste Schritte mit HG 2

Klausur in Programmieren

Trackaufzeichnungen können als Active-Logs oder mit eigenen Namen versehene und auf max. 500 Punkte begrenzte Saved-Tracks gespeichert werden.

Grundlagen von Python

Windows 8. Der Task-Manager. Dieses Dokument kann frei verwendet werden. Keine Lizenzen, kein Copyright. Do what you want with it.

SHAREPOINT Unterschiede zwischen SharePoint 2010 & 2013

BEO-SANKTIONSPRÜFUNG Eine Einführung zum Thema Sanktionsprüfung und eine Übersicht zur BEO-Lösung.

Javadoc. Programmiermethodik. Eva Zangerle Universität Innsbruck

Es sollte die MS-DOS Eingabeaufforderung starten. Geben Sie nun den Befehl javac ein.

Snippets - das Erstellen von "Code- Fragmenten" - 1

Änderungsbeschreibung HWS32 SEPA Überweisungen

Drei-Schichten-Architektur. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 16: 3-Schichten-Architektur 1 Fachkonzept - GUI

Historical Viewer. zu ETC5000 Benutzerhandbuch 312/15

Installation von MailON2!

Lehrstuhl für Datenverarbeitung. Technische Universität München. Grundkurs C++ Buildsysteme

Sichtbarkeit & statische Methoden. Einsatz von Sichtbarkeit Einsatz statischer Methoden programmatische Realisierung 2 Beispielaufgaben

Praktikum im Bereich Praktische Informatik Echtzeitgraphik in C++ und DirectX10. computer graphics & visualization

AIT AG Leitzstraße Stuttgart Germany +49 (0) Fax:

Java Kurs für Anfänger Einheit 4 Klassen und Objekte

Einstiegshilfe für das Übersenden elektronischer Teilnahmebestätigungen an ÄrztInnen

e LEARNING Kurz-Anleitung zum Erstellen eines Wikis 1. Wiki erstellen

Wichtig ist die Originalsatzung. Nur was in der Originalsatzung steht, gilt. Denn nur die Originalsatzung wurde vom Gericht geprüft.

KONVERTIERUNG VON EXTERNEN DTA DATEIEN (ÜBERWEISUNGEN)

Comtarsia SignOn Familie

Programmierung mit NQC: Kommunikation zwischen zwei RCX

Klausurteilnehmer. Wichtige Hinweise. Note: Klausur Informatik Programmierung, Seite 1 von 8 HS OWL, FB 7, Malte Wattenberg.

Eine Anwendung mit InstantRails 1.7

Alinof Key s Benutzerhandbuch

Objektorientierte Programmierung für Anfänger am Beispiel PHP

Klassenentwurf. Wie schreiben wir Klassen, die leicht zu verstehen, wartbar und wiederverwendbar sind? Objektorientierte Programmierung mit Java

Automatisches Beantworten von - Nachrichten mit einem Exchange Server-Konto

Transkript:

1 Seite 1 Einführung in die Programmierung mit C++ Teil IV - Weiterführende Themen 14. Modularisierung und Automatisierung Was heißt Modularisierung? Seite 2 bisher Programm komplett in einer Datei längere Programme werden unhandlich Aufteilung des Programms in mehrere Dateien, sogenannte Module thematisch sortiert jede Klasse in eigener Datei Quelltext ist in Modul gekapselt Schnittstellen zwischen Modulen werden über Headerdateien bekannt gegeben Module übernehmen Headerdateien für andere Module die benötigt werden eigene Headerdateien sollten Dateiendung.hpp haben eigene Headerdateien werden mit #include "header.hpp" eingebunden Systemheaderdateien werden mit #include <header> eingebunden

2 Beispiel I Seite 3 Vektorklasse: main.cpp #include <iostream> #include "vector.hpp" int main() { math::vector a( 1., 0. ), b( 0., 1. ), c = a + b; std::cout << a << " + " << b << " = " << c << std::endl; return 0; Beispiel II Seite 4 Vektorklasse: vector.cpp #include <iostream> #include <cmath> #include "vector.hpp" namespace math { vector vector::operator+( const vector & v ) const { return vector( x+v.x, y+v.y ); const vector & vector::operator+=( const vector & v ) { return *this = *this + v; float vector::operator*( const vector & v ) const { return x*v.x + y*v.y; float vector::abs() const { return std::sqrt( *this * *this ); std::ostream & operator<<( std::ostream & s, const vector & v ) { return s << "( " << v.x << ", " << v.y << " )";

3 Beispiel III Seite 5 Vektorklasse: vector.hpp namespace math { class vector { private: float x, y; public: vector() { x = 0; y = 0; vector( const vector & v ) { x = v.x; y = v.y; vector( float x, float y ) { this->x = x; this->y = y; vector operator+( const vector & ) const; const vector & operator+=( const vector & ); float operator*( const vector & ) const; float abs() const; friend std::ostream & operator<<( std::ostream &, const vector & ); ; Übersetzung von modularisierten Programmen Seite 6 einfachste Version main.cpp vector.cpp vector.hpp > g++ -o vector main.cpp vector.cpp >./vector ( 1, 0 ) + ( 0, 1 ) = ( 1, 1 ) > bei Änderung einer Datei Übersetzen und Binden aller Dateien nötig Übersetzen und Binden trennen > g++ -c main.cpp > g++ -c vector.cpp main.cpp main.o vector.cpp vector.hpp vector.o > g++ -o vector main.o vector.o nur geänderte Dateien müssen neu übersetzt werden

4 Automatisierung Seite 7 make kann sich wiederholende Vorgänge automatisieren Steuerung von make erfolgt über Makefile Makefile vector: main.o vector.o g++ -o $@ $^ main.o: main.cpp vector.hpp g++ -c $@ $< vector.o: vector.cpp vector.hpp g++ -c $@ $< clean: rm *.o Verwendung I Seite 8 make arbeitet regelbasiert Regel besteht aus Ziel gefolgt von Doppelpunkt und Quellen, die unmittelbar für Ziel benötigt werden Der Regel folgt Block aus Anweisungen, die aus Quellen Ziel erstellen Anweisungsblock muß mit Tabulator eingerückt werden! Im Anweisungsblock können sogenannte automatische Variablen verwendet werden $@ wird durch das Ziel ersetzt $< wird durch erste Quelle ersetzt $^ wird durch alle Quellen ersetzt durch Leerzeichen getrennt Es gibt auch Regeln ohne tatsächliches Ziel und Quellen dienen z.b. zum Aufräumen

5 Verwendung II Seite 9 Übersetzen und Binden des Programms > make vector g++ -c main.cpp g++ -c vector.cpp g++ -o vector main.o vector.o >./vector ( 1, 0 ) + ( 0, 1 ) = ( 1, 1 ) Aufräumen > make clean main.cpp vector vector.cpp vector.hpp