Meeting C++ C++11 R-Value Referenzen

Größe: px
Ab Seite anzeigen:

Download "Meeting C++ C++11 R-Value Referenzen"

Transkript

1 Meeting C++ Detlef Wilkening Inhalt Motivation L-Values und R-Values R-Value Referenzen Move Semantik std::move Funktionen mit R-Value-Referenz Parametern Fazit Fragen 1

2 Motivation Einer der Haupt-Performance Probleme in C++ sind Kopien Überflüssige Kopien An vielen Stellen werden Kopien erzeugt Auch viele Stellen, an denen es der Einsteiger nicht erwartet Und Kopien können teuer sein Beispiele: Zeichenketten-Literal in Vektor rein pushen Vektor Reallokation Swap Funktion String Addition 2

3 Zeichenketten-Literal in Vektor rein pushen vector<string> v; v.push_back("c++"); Vektor Reallokation 3

4 Swap Funktion 1/6 Typische alte Implementierung Bilder siehe folgende 5 Folien void swap(t& lhs, T& rhs) T temp(lhs); lhs = rhs; rhs = temp; Swap Funktion 2/6 4

5 Swap Funktion 3/6 Swap Funktion 4/6 5

6 Swap Funktion 5/6 Swap Funktion 6/6 C + + B o o s t B o o s t string string C + + swap( string& lhs, string& rhs ) C + + string temp 6

7 String Addition 1/2 Bild siehe nächste Folie string operator + (const string&, const string&); string operator + (const string&, const char*); string s1("s1"); string s2("s2"); string s = s1 + "und" + s2; String Addition 2/2 7

8 Alle diese Beispiele zeichnen sich dadurch aus: Das Kopien angelegt werden Und die Kopien unter Umständen sehr teuer sind Z.B. bei Containern, Strings, Und die Kopien eigentlich gar nicht notwendig sind Warum sind die Kopien nicht notwendig? Die Originale werden danach gelöscht Effizienter wäre es, wenn man ihren Inhalt einfach "weiterverwenden" und/oder "moven" hätte können Siehe Bilder auf den nächsten Folien Zeichenketten-Literal in Vektor rein pushen Der Performance-Traum vom Moven vector<string> v; v.push_back("c++"); 8

9 Vektor Reallokation Der Performance-Traum vom Moven Swap Funktion 1/5 Bilder vom Move Performance-Traum auch auf den nächsten Folien 9

10 Swap Funktion 2/5 Swap Funktion 3/5 10

11 Swap Funktion 4/5 Swap Funktion 5/5 11

12 String Addition Der Performance-Traum vom Moven string s = s1 + "und" + s2; Wann macht moven Sinn? Die logischen Objekte haben Daten ausserhalb liegen Ausserhalb dem primären Speicherbereichs des Objektes Diese Daten müssen synchron zum Objekt gehandelt werden Typische Anzeichen für diese Objekte: Destruktor Kopier-Konstruktor Kopier-Zuweisungs-Operator Also: Regel der 3 Bei Objekten, die z.b. nur aus int bestehen, ist moven wie kopieren 12

13 L- und R-Values Was sind L-Values und R-Values? Es gibt eine einfache und eine exaktere Erklärung Zuerst die einfache Erklärung Sie reicht für viele Dinge quasi als Pi*Daumen Regel Alles was auf der linken Seite einer Zuweisung stehen kann, ist ein L-Value, der Rest ist ein R-Value. int n, n1, n2; n = n1 + n2; // Okay, n ist ein L-Value 3 = n1 + n2; // Fehler 3 ist R-Value 13

14 L-Values sind Objekte, die nach dem Anweisungs-Ende noch existieren Variablen, aber auch z.b. dereferenzierte Zeiger Elemente in Arrays oder Containern Funktions-Aufrufe, die eine Referenz zurückgeben, z.b. vector[idx], ++n R-Values sind Objekte, die nach dem Anweisungs-Ende (Semikolon) nicht mehr da sind Literale, z.b. 42 Funktions-Aufrufe, die eine Kopie zurückgeben, z.b. s1+s2, n++ Temporäre Objekte, z.b. string("temp") Hilfsregeln Hat es einen Namen? Wenn ja, dann ist es ein L-Value Wenn nein, dann ist es vielleicht ein R-Value Kann man die Adresse davon bekommen? Wenn ja, dann ist es ein L-Value Wenn nein, dann ist es ein R-Value Der Standard sagt: Die Adresse eines persistenten Objekts ist sinnvoll Die eines temporären Objekts ist gefährlich Achtung dies heißt nicht, dass man nicht über Tricks an die Adresse kommen kann. Aber eben nicht durch direkte Anwendung von & Oder temporäre Objekte nicht explizit ändern kann 14

15 Hinweis schon mal für später (Perfect Forwarding): Objekte mit Namen sind L-Values Also sind auch R-Value Referenz Variablen L-Values, denn sie haben einen Namen! R-Value Referenzen 15

16 R-Value Referenzen sind Referenzen, die an R-Values binden können Werden mit && definiert Es sind weiterhin normale Referenzen Müssen initialisiert werden Sind abhängig, dass die referenzierten Objekte lange genug leben Es kann const R-Value Referenzen geben Sind aber sehr ungewöhnlich Aber sie binden eben an R-Values Die alten C++03 Referenzen heißen nun L-Value Referenzen Non-Const L-Value Referenzen können nicht an R-Values binden void fct(string&); fct("c++"); // Fehler, da R-Value void fct(const string&); fct("c++"); // okay void fct(string&&); fct("c++"); // okay 16

17 L- und R-Values haben ein unterschiedliches Verhalten bei Der Initialisierung Beim Überladen Initialisierung Welche Referenz bindet an welche Values? & const & && const && L-Value x x x x const L-Value x x R-Value x x x const R-Value x x Zwei einfache Regeln Const muß respektiert werden Kein versehentliches Ändern von temporären Objekten 17

18 string mod_lval("c++"); const string const_lval("boost"); string mod_rval() return "STL"; const string const_rval() return "R-Value"; string& lr1 = mod_lval; string& lr2 = const_lval; string& lr3 = mod_rval(); string& lr4 = const_rval(); // Okay // Fehler // Fehler // Fehler const string& clr1 = mod_lval; const string& clr2 = const_lval; const string& clr3 = mod_rval(); const string& clr4 = const_rval(); // Okay // Okay // Okay // Okay 18

19 string&& rr1 = mod_lval; string&& rr2 = const_lval; string&& rr3 = mod_rval(); string&& rr4 = const_rval(); // Okay // Fehler // Okay // Fehler const string&& crr1 = mod_lval; const string&& crr2 = const_lval; const string&& crr3 = mod_rval(); const string&& crr4 = const_rval(); // Okay // Okay // Okay // Okay Überladen Welche Funktion wird von welchem Wert aufgerufen 2 Situationen Alle 4 Varianten überladen Diese Situation hat mehr theoretischen Wert Nur 2 Varianten überladen (const L-Value und R-Value Referenz) Dies ist die typische Situation in der Praxis 3 Regeln: L-Values binden lieber an L-Value Referenzen R-Values binden lieber an R-Value Referenzen Const muß respektiert werden 19

20 string mod_lval("c++"); const string const_lval("boost"); string mod_rval() return "STL"; const string const_rval() return "R-Value"; void overload(string& s)... void overload(const string& s)... void overload(string&& s)... void overload(const string&& s)... overload(mod_lval); overload(const_lval); overload(mod_rval); overload(const_rval); // => overload(string&) // => overload(const string&) // => overload(string&&) // => overload(const string&&) 20

21 void overload(const string& s)... void overload(string&& s)... overload(mod_lval); overload(const_lval); overload(mod_rval); overload(const_rval); // => overload(const string&) // => overload(const string&) // => overload(string&&) // => overload(const string&) Praktische Variante überladen auf const & && Nur modifizierbare R-Values binden an R-Value Referenzen Alles anderen Argumente binden an L-Value Referenzen Aber die modifizierbaren R-Values sind ja auch die, die überflüssige Kopien sind Die Regeln erlauben das Erkennen überflüssige Kopien durch den Compiler (zumindest zum Teil z.b. swap nicht) Dies ist die Grundlage der Move-Semantik 21

22 Noch eine Regel, bevor es weitergeht... Wenn Funktionen Wert-Rückgaben (Kopien) machen Dann sind dies überflüssige Kopien Wenn die Funktionen "const Typ" zurückgeben, dann bindet das nicht an R-Value Referenzen Dann kann keine Move-Semantik zuschlagen => Also sollten Funktionen nie Const-Wert-Rückgaben machen Move Semantik 22

23 Wie implementiert man nun eine Move-Semantik? Erkennen können wir Moveable Objekte durch R-Value Referenzen Implementiert werden muß: Move-Konstruktor Move-Zuweisungs-Operator = Beispiel Klasse mit einem dynamisch allokierten Integer Nicht sehr realistisch, aber schön einfach Realistisch wäre z.b. eine String-Klasse Auf den folgenden Folien: Erstmal die normale Implementierung Ohne Smart-Pointer, schön einfach Dann die Move-Semantik class DynamicInteger public: explicit DynamicInteger(int arg=0); DynamicInteger(const DynamicInteger& other); DynamicInteger& operator=(const DynamicInteger& other); ~DynamicInteger(); private: ; int* p; 23

24 DynamicInteger::DynamicInteger(int arg) p = new int(arg); DynamicInteger::DynamicInteger(const DynamicInteger& other) if (other.p) p = new int(*other.p); else p = 0; 24

25 DynamicInteger& DynamicInteger::operator=(const DynamicInteger& other) if (this==&other) return *this; delete p; // Hier könnte man p weiterverenden... // aber es geht um s Prinzip if (other.p) p = new int(*other.p); else p = 0; return *this; DynamicInteger::~DynamicInteger() delete p; 25

26 DynamicInteger create(int arg) return DynamicInteger(arg); // Mit RVO int main() // Int-Konstruktor mit 0 // Int-Konstruktor mit 42 DynamicInteger d1; // Kopier-Zuweisungs-Operator 42 d1 = create(42); // Destruktor: 42 // Destruktor: 42 Und nun zusätzlich mit Move-Semantik 26

27 class DynamicInteger public: explicit DynamicInteger(int arg=0); DynamicInteger(const DynamicInteger& other); DynamicInteger(DynamicInteger&& other); DynamicInteger& operator=(const DynamicInteger& other); DynamicInteger& operator=(dynamicinteger&& other); ~DynamicInteger(); private: int* p; ; DynamicInteger::DynamicInteger(DynamicInteger&& other) p = other.p; other.p = 0; 27

28 DynamicInteger& DynamicInteger::operator=(DynamicInteger&& other) if (this == &other) return *this; delete p; p = other.p; other.p = 0; return *this; DynamicInteger create(int arg) return DynamicInteger(arg); // Mit RVO int main() // Int-Konstruktor mit 0 // Int-Konstruktor mit 42 DynamicInteger d1; // Move-Zuweisungs-Operator 42 d1 = create(42); // Destruktor: null // Destruktor: 42 28

29 Move-Semantik Das Ziel-Objekt stiehlt beim moven die Daten vom Quell-Objekt und nullt sie Der Destruktor des Quell-Objektes hat dann nichts mehr zu tun. Achtung Der Move-Zuweisungs-Operator benötigt wie auch der Kopier-Konstruktor Überprüfung auf Zuweisung auf sich selbst Move-Konstruktoren und Move-Zuweisungs-Operatoren sollen keine Exceptions werfen Dies ist machbar, da man ja nur elementare und Zeiger-Typen verschiebt Nutzen Sie in C++11 das neue Schlüsselwort noexcept Automatische Erzeugung von Funktionen Die Regeln für die automatische Erzeugung von Funktionen (implizite Funktionen) werden vom Move-Konstruktor und dem Move-Zuweisungs- Operator nur bzgl. implizitem Standard-Konstruktor beeinflußt: Move-Konstruktor und Move-Zuweisungs-Operatoren werden niemals implizit erzeugt Jeder manuelle Konstruktor verbietet den automatischen Standard- Konstruktor auch der Move-Konstruktor. Der implizite Kopier-Konstruktor wird nicht vom Move-Konstruktor beeinflußt Sondern weiterhin nur durch manuelle Kopier-Konstruktoren Der implizite Kopier-Zuweisungs-Operator wird nicht vom Move- Zuweisungs-Operatore beeinflußt Sondern weiterhin nur durch den manuellen Kopier-Zuweisungs-Operator 29

30 std::move Okay, Literal per push_back in den Vektor ist jetzt effizient Aber was ist mit swap? Die überflüssige Kopie ist nicht weg! void swap(t& lhs, T& rhs) T temp(lhs); lhs = rhs; rhs = temp; 30

31 Problem lhs und rhs sind L-Values L-Values werden kopiert Move-Semantik kann nicht zuschlagen Lösung Mache L-Value explizit zu R-Value Wenn Move-Semantik vorhanden => dann wird gemovt Wenn keine Move-Semantik => dann wird kopiert R-Values binden auch an Const L-Value-Referenzen void swap(t& lhs, T& rhs) T temp(lhs); lhs = rhs; rhs = temp; Explizit L-Values zu R-Values machen std::move Aber Achtung das Quell-Objekt wird genullt Es ist hinterher also leer Hinweis statt move geht auch static_cast<src&&>(src); void swap(t& lhs, T& rhs) T tmp(std::move(lhs)); lhs = std::move(rhs); rhs = std::move(tmp); 31

32 std::move ist die Lösung für explizites Moven Immer wenn Sie moven könnten, falls Move-Semantik implementiert ist und sie ein L-Value haben Nutzen Sie std::move Aus dem Header <utility> Jetzt wissen wir auch, wie man Move-Semantik für Klassen mit Move-Semantik Attributen implementiert Der Compiler erzeugt nie Move-Funktionen Move-Konstruktor Move-Zuweisungs-Operator Move-Semantik muß immer manuell programmiert werden Klasse mit Movable-Member sollten selber movable sein Move-Semantik manuell implementieren 32

33 class DynamicPoint public: DynamicPoint(int xarg, int yarg) : x(xarg), y(yarg) DynamicPoint(DynamicPoint&& other); DynamicPoint& operator=(dynamicpoint&& other); // Weiteres... private: DynamicInteger x; DynamicInteger y; ; DynamicPoint::DynamicPoint(DynamicPoint && other) : x(std::move(other.x)), y(std::move(other.y)) DynamicPoint& DynamicPoint::operator=(DynamicPoint && other) x = std::move(other.x); y = std::move(other.y); return *this; 33

34 R-Value-Referenz Parameter Benötigt man R-Value Referenzen für Funktions-Parameter? Eher selten Meist reicht es, sich auf auf die Move-Semantik der Klassen zu verlassen Außer Ihre Funktion kann einen Vorteil aus dem expliziten Gebrauch von modifizierbaren R-Values ziehen. Beispiel: String-Addition Hier z.b. die Addition von temp(sl+ und ) und sr. string s, sl, sr; s = sl + "und" + sr; 34

35 string operator+(const string&, const string&); string operator+(const string&, const char*); string operator+(string&& lhs, const string& rhs) lhs += rhs; return lhs; // Nutzt lhs statt neuen String anzulegen string s, sl, sr; s = sl + "und" + sr; 35

36 Und R-Value-Referenzen als Funktions-Rückgaben? Tendenziell eher nicht sinnvoll Auch R-Value-Referenzen sind Referenzen Probleme mit der Lebensdauer sind vorprogrammiert Eher auf RVO, NRVO und Move-Semantik verlassen Aber prinzipiell möglich ist es Vielleicht gibt es wirklich Sonder-Sonder-Sonderfälle, wo das sinnvoll ist Fazit 36

37 Was fehlte? Viele Details Vor allem aber Perfect Forwarding Perfect Forwarding Ermöglicht in Funktions-Template die optimale Weiterleitung von Argumenten Const L-Value Referenz L-Value Referenz R-Value Referenz Der Compiler sucht nach Regeln die richtige Referenz aus Ermöglicht perfekte Factory Funktionen R-Value Referenzen sind nicht ganz trivial, aber R-Value Referenzen sind ein großer Schritt Kopien zu vermeiden Die C++11 Standard-Bibliothek nutzt sie überall Ein Umstieg auf C++11 bringt häufig schon einen Performance-Boost Spezielle Programme bringen es locker auf einen Faktor 10 Normale reale Programme von mir liegen zwischen Faktor 1 bis 1,8 37

38 Bibliotheks-Entwickler sollten R-Value Referenzen beherrschen und nutzen Move-Semantik in Bibliotheks-Klassen ermöglicht transparente Nutzung Für Einsteiger gibt es sicher wichtigere Themen C++ ist groß und hat viele wichtige Themen Aber schon der professionelle Programmierer sollte sie kennen Move-Semantik in eigene Klassen einbringen std::move nutzen Perfect-Forwarding in Factory-Funktionen Fragen? 38

Vorkurs C++ Programmierung

Vorkurs C++ Programmierung Vorkurs C++ Programmierung Klassen Letzte Stunde Speicherverwaltung automatische Speicherverwaltung auf dem Stack dynamische Speicherverwaltung auf dem Heap new/new[] und delete/delete[] Speicherklassen:

Mehr

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren Lineargleichungssysteme: Additions-/ Subtraktionsverfahren W. Kippels 22. Februar 2014 Inhaltsverzeichnis 1 Einleitung 2 2 Lineargleichungssysteme zweiten Grades 2 3 Lineargleichungssysteme höheren als

Mehr

Java: Vererbung. Teil 3: super() www.informatikzentrale.de

Java: Vererbung. Teil 3: super() www.informatikzentrale.de Java: Vererbung Teil 3: super() Konstruktor und Vererbung Kindklasse ruft SELBSTSTÄNDIG und IMMER zuerst den Konstruktor der Elternklasse auf! Konstruktor und Vererbung Kindklasse ruft SELBSTSTÄNDIG und

Mehr

Java Kurs für Anfänger Einheit 5 Methoden

Java Kurs für Anfänger Einheit 5 Methoden Java Kurs für Anfänger Einheit 5 Methoden Ludwig-Maximilians-Universität München (Institut für Informatik: Programmierung und Softwaretechnik von Prof.Wirsing) 22. Juni 2009 Inhaltsverzeichnis Methoden

Mehr

Was meinen die Leute eigentlich mit: Grexit?

Was meinen die Leute eigentlich mit: Grexit? Was meinen die Leute eigentlich mit: Grexit? Grexit sind eigentlich 2 Wörter. 1. Griechenland 2. Exit Exit ist ein englisches Wort. Es bedeutet: Ausgang. Aber was haben diese 2 Sachen mit-einander zu tun?

Mehr

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

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

Mehr

Zählen von Objekten einer bestimmten Klasse

Zählen von Objekten einer bestimmten Klasse Zählen von Objekten einer bestimmten Klasse Ziel, Inhalt Zur Übung versuchen wir eine Klasse zu schreiben, mit der es möglich ist Objekte einer bestimmten Klasse zu zählen. Wir werden den ++ und den --

Mehr

Verhindert, dass eine Methode überschrieben wird. public final int holekontostand() {...} public final class Girokonto extends Konto {...

Verhindert, dass eine Methode überschrieben wird. public final int holekontostand() {...} public final class Girokonto extends Konto {... PIWIN I Kap. 8 Objektorientierte Programmierung - Vererbung 31 Schlüsselwort: final Verhindert, dass eine Methode überschrieben wird public final int holekontostand() {... Erben von einer Klasse verbieten:

Mehr

Objektorientierte Programmierung

Objektorientierte Programmierung Objektorientierte Programmierung 1 Geschichte Dahl, Nygaard: Simula 67 (Algol 60 + Objektorientierung) Kay et al.: Smalltalk (erste rein-objektorientierte Sprache) Object Pascal, Objective C, C++ (wiederum

Mehr

Objektorientierte Programmierung. Kapitel 12: Interfaces

Objektorientierte Programmierung. Kapitel 12: Interfaces 12. Interfaces 1/14 Objektorientierte Programmierung Kapitel 12: Interfaces Stefan Brass Martin-Luther-Universität Halle-Wittenberg Wintersemester 2012/13 http://www.informatik.uni-halle.de/ brass/oop12/

Mehr

II. Grundlagen der Programmierung. 9. Datenstrukturen. Daten zusammenfassen. In Java (Forts.): In Java:

II. Grundlagen der Programmierung. 9. Datenstrukturen. Daten zusammenfassen. In Java (Forts.): In Java: Technische Informatik für Ingenieure (TIfI) WS 2005/2006, Vorlesung 9 II. Grundlagen der Programmierung Ekkart Kindler Funktionen und Prozeduren Datenstrukturen 9. Datenstrukturen Daten zusammenfassen

Mehr

Stellen Sie bitte den Cursor in die Spalte B2 und rufen die Funktion Sverweis auf. Es öffnet sich folgendes Dialogfenster

Stellen Sie bitte den Cursor in die Spalte B2 und rufen die Funktion Sverweis auf. Es öffnet sich folgendes Dialogfenster Es gibt in Excel unter anderem die so genannten Suchfunktionen / Matrixfunktionen Damit können Sie Werte innerhalb eines bestimmten Bereichs suchen. Als Beispiel möchte ich die Funktion Sverweis zeigen.

Mehr

Arbeiten mit UMLed und Delphi

Arbeiten mit UMLed und Delphi Arbeiten mit UMLed und Delphi Diese Anleitung soll zeigen, wie man Klassen mit dem UML ( Unified Modeling Language ) Editor UMLed erstellt, in Delphi exportiert und dort so einbindet, dass diese (bis auf

Mehr

Wintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf http://informatik.swoke.de. Seite 1 von 22

Wintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf http://informatik.swoke.de. Seite 1 von 22 Kapitel 19 Vererbung, UML Seite 1 von 22 Vererbung - Neben der Datenabstraktion und der Datenkapselung ist die Vererbung ein weiteres Merkmal der OOP. - Durch Vererbung werden die Methoden und die Eigenschaften

Mehr

5. Abstrakte Klassen. Beispiel (3) Abstrakte Klasse. Beispiel (2) Angenommen, wir wollen die folgende Klassenhierarchie implementieren:

5. Abstrakte Klassen. Beispiel (3) Abstrakte Klasse. Beispiel (2) Angenommen, wir wollen die folgende Klassenhierarchie implementieren: 5. Abstrakte Klassen Beispiel 5. Abstrakte Klassen 5. Abstrakte Klassen Beispiel Beispiel (3) Angenommen, wir wollen die folgende Klassenhierarchie implementieren: Probleme des Implementierungsvorschlags:

Mehr

Software Engineering Klassendiagramme Assoziationen

Software Engineering Klassendiagramme Assoziationen Software Engineering Klassendiagramme Assoziationen Prof. Adrian A. Müller, PMP, PSM 1, CSM Fachbereich Informatik und Mikrosystemtechnik 1 Lesen von Multiplizitäten (1) Multiplizitäten werden folgendermaßen

Mehr

Einführung in die Programmierung

Einführung in die Programmierung : Inhalt Einführung in die Programmierung Wintersemester 2008/09 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund - mit / ohne Parameter - mit / ohne Rückgabewerte

Mehr

Folge 19 - Bäume. 19.1 Binärbäume - Allgemeines. Grundlagen: Ulrich Helmich: Informatik 2 mit BlueJ - Ein Kurs für die Stufe 12

Folge 19 - Bäume. 19.1 Binärbäume - Allgemeines. Grundlagen: Ulrich Helmich: Informatik 2 mit BlueJ - Ein Kurs für die Stufe 12 Grundlagen: Folge 19 - Bäume 19.1 Binärbäume - Allgemeines Unter Bäumen versteht man in der Informatik Datenstrukturen, bei denen jedes Element mindestens zwei Nachfolger hat. Bereits in der Folge 17 haben

Mehr

Objektorientierte Programmierung für Anfänger am Beispiel PHP

Objektorientierte Programmierung für Anfänger am Beispiel PHP Objektorientierte Programmierung für Anfänger am Beispiel PHP Johannes Mittendorfer http://jmittendorfer.hostingsociety.com 19. August 2012 Abstract Dieses Dokument soll die Vorteile der objektorientierten

Mehr

Erstellen einer Collage. Zuerst ein leeres Dokument erzeugen, auf dem alle anderen Bilder zusammengefügt werden sollen (über [Datei] > [Neu])

Erstellen einer Collage. Zuerst ein leeres Dokument erzeugen, auf dem alle anderen Bilder zusammengefügt werden sollen (über [Datei] > [Neu]) 3.7 Erstellen einer Collage Zuerst ein leeres Dokument erzeugen, auf dem alle anderen Bilder zusammengefügt werden sollen (über [Datei] > [Neu]) Dann Größe des Dokuments festlegen beispielsweise A4 (weitere

Mehr

Folge 18 - Vererbung

Folge 18 - Vererbung Workshop Folge 18 - Vererbung 18.1 Ein einfacher Fall der Vererbung Schritt 1 - Vorbereitungen Besorgen Sie sich - vielleicht aus einer der Übungen der Folge 17 - ein fertiges und lauffähiges Listenprojekt,

Mehr

5. Abstrakte Klassen

5. Abstrakte Klassen 5. Abstrakte Klassen Beispiel 5. Abstrakte Klassen Angenommen, wir wollen die folgende Klassenhierarchie implementieren: Vogel Amsel Drossel Fink Peter Becker, Programiersprache Java FH Bonn-Rhein-Sieg,

Mehr

Grundlagen von Python

Grundlagen von Python Einführung in Python Grundlagen von Python Felix Döring, Felix Wittwer November 17, 2015 Scriptcharakter Programmierparadigmen Imperatives Programmieren Das Scoping Problem Objektorientiertes Programmieren

Mehr

Zwischenablage (Bilder, Texte,...)

Zwischenablage (Bilder, Texte,...) Zwischenablage was ist das? Informationen über. die Bedeutung der Windows-Zwischenablage Kopieren und Einfügen mit der Zwischenablage Vermeiden von Fehlern beim Arbeiten mit der Zwischenablage Bei diesen

Mehr

Die Post hat eine Umfrage gemacht

Die Post hat eine Umfrage gemacht Die Post hat eine Umfrage gemacht Bei der Umfrage ging es um das Thema: Inklusion Die Post hat Menschen mit Behinderung und Menschen ohne Behinderung gefragt: Wie zufrieden sie in dieser Gesellschaft sind.

Mehr

Informatik 2 Labor 2 Programmieren in MATLAB Georg Richter

Informatik 2 Labor 2 Programmieren in MATLAB Georg Richter Informatik 2 Labor 2 Programmieren in MATLAB Georg Richter Aufgabe 3: Konto Um Geldbeträge korrekt zu verwalten, sind zwecks Vermeidung von Rundungsfehlern entweder alle Beträge in Cents umzuwandeln und

Mehr

Der Aufruf von DM_in_Euro 1.40 sollte die Ausgabe 1.40 DM = 0.51129 Euro ergeben.

Der Aufruf von DM_in_Euro 1.40 sollte die Ausgabe 1.40 DM = 0.51129 Euro ergeben. Aufgabe 1.30 : Schreibe ein Programm DM_in_Euro.java zur Umrechnung eines DM-Betrags in Euro unter Verwendung einer Konstanten für den Umrechnungsfaktor. Das Programm soll den DM-Betrag als Parameter verarbeiten.

Mehr

Einführung in die Java- Programmierung

Einführung in die Java- Programmierung Einführung in die Java- Programmierung Dr. Volker Riediger Tassilo Horn riediger horn@uni-koblenz.de WiSe 2012/13 1 Wichtig... Mittags keine Pommes... Praktikum A 230 C 207 (Madeleine + Esma) F 112 F 113

Mehr

Objektorientierte Programmierung

Objektorientierte Programmierung Universität der Bundeswehr Fakultät für Informatik Institut 2 Priv.-Doz. Dr. Lothar Schmitz FT 2006 Zusatzaufgaben Lösungsvorschlag Objektorientierte Programmierung Lösung 22 (Java und UML-Klassendiagramm)

Mehr

Programmieren I. Strategie zum Entwurf von Klassen. Beispiele. Design von Klassen. Dr. Klaus Höppner. Beispiel: Bibliothek

Programmieren I. Strategie zum Entwurf von Klassen. Beispiele. Design von Klassen. Dr. Klaus Höppner. Beispiel: Bibliothek Programmieren I Dr. Klaus Höppner Hochschule Darmstadt Wintersemester 2008/2009 1 / 22 2 / 22 Strategie zum Entwurf von Klassen Beispiele Objektorientierte Sichtweise: Mit welchen Objekten habe ich es

Mehr

SEP 114. Design by Contract

SEP 114. Design by Contract Design by Contract SEP 114 Design by Contract Teile das zu entwickelnde Programm in kleine Einheiten (Klassen, Methoden), die unabhängig voneinander entwickelt und überprüft werden können. Einheiten mit

Mehr

Software Engineering Interaktionsdiagramme

Software Engineering Interaktionsdiagramme Software Engineering Interaktionsdiagramme Prof. Adrian A. Müller, PMP, PSM 1, CSM Fachbereich Informatik und Mikrosystemtechnik 1 Nachrichtenaustausch Welche Nachrichten werden ausgetauscht? (Methodenaufrufe)

Mehr

Binäre Bäume. 1. Allgemeines. 2. Funktionsweise. 2.1 Eintragen

Binäre Bäume. 1. Allgemeines. 2. Funktionsweise. 2.1 Eintragen Binäre Bäume 1. Allgemeines Binäre Bäume werden grundsätzlich verwendet, um Zahlen der Größe nach, oder Wörter dem Alphabet nach zu sortieren. Dem einfacheren Verständnis zu Liebe werde ich mich hier besonders

Mehr

Grundbegriffe der Informatik

Grundbegriffe der Informatik Grundbegriffe der Informatik Einheit 15: Reguläre Ausdrücke und rechtslineare Grammatiken Thomas Worsch Universität Karlsruhe, Fakultät für Informatik Wintersemester 2008/2009 1/25 Was kann man mit endlichen

Mehr

C++ - Operatoren. Eigene Klassen mit neuen Funktionen

C++ - Operatoren. Eigene Klassen mit neuen Funktionen C++ - Operatoren Eigene Klassen mit neuen Funktionen Übersicht Klassen bisher Eigene Operatoren definieren 2 Bisher Durch Kapselung, Vererbung und Polymorphy können nun eigene Klassen definiert werden,

Mehr

Übungen zu Einführung in die Informatik: Programmierung und Software-Entwicklung: Lösungsvorschlag

Übungen zu Einführung in die Informatik: Programmierung und Software-Entwicklung: Lösungsvorschlag Ludwig-Maximilians-Universität München WS 2015/16 Institut für Informatik Übungsblatt 9 Prof. Dr. R. Hennicker, A. Klarl Übungen zu Einführung in die Informatik: Programmierung und Software-Entwicklung:

Mehr

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

Java Kurs für Anfänger Einheit 4 Klassen und Objekte Java Kurs für Anfänger Einheit 4 Klassen und Ludwig-Maximilians-Universität München (Institut für Informatik: Programmierung und Softwaretechnik von Prof.Wirsing) 13. Juni 2009 Inhaltsverzeichnis klasse

Mehr

Programmieren in Java

Programmieren in Java Programmieren in Java objektorientierte Programmierung 2 2 Zusammenhang Klasse-Datei In jeder *.java Datei kann es genau eine public-klasse geben wobei Klassen- und Dateiname übereinstimmen. Es können

Mehr

Objektorientierte Programmierung mit C++ Vector und List

Objektorientierte Programmierung mit C++ Vector und List Vector und List Ziel, Inhalt Wir lernen die Klassen vector und list aus der Standard-C++ Library kennen und anwenden. In einer Übung wenden wir diese Klassen an um einen Medienshop (CD s und Bücher) zu

Mehr

Zeichen bei Zahlen entschlüsseln

Zeichen bei Zahlen entschlüsseln Zeichen bei Zahlen entschlüsseln In diesem Kapitel... Verwendung des Zahlenstrahls Absolut richtige Bestimmung von absoluten Werten Operationen bei Zahlen mit Vorzeichen: Addieren, Subtrahieren, Multiplizieren

Mehr

MORE Profile. Pass- und Lizenzverwaltungssystem. Stand: 19.02.2014 MORE Projects GmbH

MORE Profile. Pass- und Lizenzverwaltungssystem. Stand: 19.02.2014 MORE Projects GmbH MORE Profile Pass- und Lizenzverwaltungssystem erstellt von: Thorsten Schumann erreichbar unter: thorsten.schumann@more-projects.de Stand: MORE Projects GmbH Einführung Die in More Profile integrierte

Mehr

Das große ElterngeldPlus 1x1. Alles über das ElterngeldPlus. Wer kann ElterngeldPlus beantragen? ElterngeldPlus verstehen ein paar einleitende Fakten

Das große ElterngeldPlus 1x1. Alles über das ElterngeldPlus. Wer kann ElterngeldPlus beantragen? ElterngeldPlus verstehen ein paar einleitende Fakten Das große x -4 Alles über das Wer kann beantragen? Generell kann jeder beantragen! Eltern (Mütter UND Väter), die schon während ihrer Elternzeit wieder in Teilzeit arbeiten möchten. Eltern, die während

Mehr

Adobe Photoshop. Lightroom 5 für Einsteiger Bilder verwalten und entwickeln. Sam Jost

Adobe Photoshop. Lightroom 5 für Einsteiger Bilder verwalten und entwickeln. Sam Jost Adobe Photoshop Lightroom 5 für Einsteiger Bilder verwalten und entwickeln Sam Jost Kapitel 2 Der erste Start 2.1 Mitmachen beim Lesen....................... 22 2.2 Für Apple-Anwender.........................

Mehr

infach Geld FBV Ihr Weg zum finanzellen Erfolg Florian Mock

infach Geld FBV Ihr Weg zum finanzellen Erfolg Florian Mock infach Ihr Weg zum finanzellen Erfolg Geld Florian Mock FBV Die Grundlagen für finanziellen Erfolg Denn Sie müssten anschließend wieder vom Gehaltskonto Rückzahlungen in Höhe der Entnahmen vornehmen, um

Mehr

Fachgebiet Informationssysteme Prof. Dr.-Ing. N. Fuhr. Programmierung Prof. Dr.-Ing. Nobert Fuhr. Übungsblatt Nr. 6

Fachgebiet Informationssysteme Prof. Dr.-Ing. N. Fuhr. Programmierung Prof. Dr.-Ing. Nobert Fuhr. Übungsblatt Nr. 6 Gudrun Fischer Sascha Kriewel programmierung@is.informatik.uni-duisburg.de Anmeldung zur Klausur! Übungsblatt Nr. 6 Um an der Klausur teilzunehmen, müssen sich Studierende der angewandten Informatik in

Mehr

Software Engineering Klassendiagramme Einführung

Software Engineering Klassendiagramme Einführung Software Engineering Klassendiagramme Einführung Prof. Adrian A. Müller, PMP, PSM 1, CSM Fachbereich Informatik und Mikrosystemtechnik 1 Aufgabe Erstellen Sie eine Klasse Person in Java. Jede Person verfügt

Mehr

Leit-Bild. Elbe-Werkstätten GmbH und. PIER Service & Consulting GmbH. Mit Menschen erfolgreich

Leit-Bild. Elbe-Werkstätten GmbH und. PIER Service & Consulting GmbH. Mit Menschen erfolgreich Leit-Bild Elbe-Werkstätten GmbH und PIER Service & Consulting GmbH Mit Menschen erfolgreich Vorwort zu dem Leit-Bild Was ist ein Leit-Bild? Ein Leit-Bild sind wichtige Regeln. Nach diesen Regeln arbeiten

Mehr

Das Persönliche Budget in verständlicher Sprache

Das Persönliche Budget in verständlicher Sprache Das Persönliche Budget in verständlicher Sprache Das Persönliche Budget mehr Selbstbestimmung, mehr Selbstständigkeit, mehr Selbstbewusstsein! Dieser Text soll den behinderten Menschen in Westfalen-Lippe,

Mehr

Objektbasierte Entwicklung

Objektbasierte Entwicklung Embedded Software Objektbasierte Entwicklung Objektorientierung in C? Prof. Dr. Nikolaus Wulff Objektbasiert entwickeln Ohne C++ wird meist C im alten Stil programmiert. => Ein endlose while-schleife mit

Mehr

Thema: Winkel in der Geometrie:

Thema: Winkel in der Geometrie: Thema: Winkel in der Geometrie: Zuerst ist es wichtig zu wissen, welche Winkel es gibt: - Nullwinkel: 0 - spitzer Winkel: 1-89 (Bild 1) - rechter Winkel: genau 90 (Bild 2) - stumpfer Winkel: 91-179 (Bild

Mehr

Eva Douma: Die Vorteile und Nachteile der Ökonomisierung in der Sozialen Arbeit

Eva Douma: Die Vorteile und Nachteile der Ökonomisierung in der Sozialen Arbeit Eva Douma: Die Vorteile und Nachteile der Ökonomisierung in der Sozialen Arbeit Frau Dr. Eva Douma ist Organisations-Beraterin in Frankfurt am Main Das ist eine Zusammen-Fassung des Vortrages: Busines

Mehr

Würfelt man dabei je genau 10 - mal eine 1, 2, 3, 4, 5 und 6, so beträgt die Anzahl. der verschiedenen Reihenfolgen, in denen man dies tun kann, 60!.

Würfelt man dabei je genau 10 - mal eine 1, 2, 3, 4, 5 und 6, so beträgt die Anzahl. der verschiedenen Reihenfolgen, in denen man dies tun kann, 60!. 040304 Übung 9a Analysis, Abschnitt 4, Folie 8 Die Wahrscheinlichkeit, dass bei n - maliger Durchführung eines Zufallexperiments ein Ereignis A ( mit Wahrscheinlichkeit p p ( A ) ) für eine beliebige Anzahl

Mehr

Primzahlen und RSA-Verschlüsselung

Primzahlen und RSA-Verschlüsselung Primzahlen und RSA-Verschlüsselung Michael Fütterer und Jonathan Zachhuber 1 Einiges zu Primzahlen Ein paar Definitionen: Wir bezeichnen mit Z die Menge der positiven und negativen ganzen Zahlen, also

Mehr

Bauteilattribute als Sachdaten anzeigen

Bauteilattribute als Sachdaten anzeigen Mit den speedikon Attributfiltern können Sie die speedikon Attribute eines Bauteils als MicroStation Sachdaten an die Elemente anhängen Inhalte Was ist ein speedikon Attribut?... 3 Eigene Attribute vergeben...

Mehr

Datenbank-Verschlüsselung mit DbDefence und Webanwendungen.

Datenbank-Verschlüsselung mit DbDefence und Webanwendungen. Datenbank-Verschlüsselung mit DbDefence und Webanwendungen. In diesem Artikel werden wir Ihnen zeigen, wie Sie eine Datenbank verschlüsseln können, um den Zugriff einzuschränken, aber trotzdem noch eine

Mehr

Einführung in die Programmierung

Einführung in die Programmierung Technische Universität München WS 2003/2004 Institut für Informatik Prof. Dr. Christoph Zenger Testklausur Einführung in die Programmierung Probeklausur Java (Lösungsvorschlag) 1 Die Klasse ArrayList In

Mehr

Leichte-Sprache-Bilder

Leichte-Sprache-Bilder Leichte-Sprache-Bilder Reinhild Kassing Information - So geht es 1. Bilder gucken 2. anmelden für Probe-Bilder 3. Bilder bestellen 4. Rechnung bezahlen 5. Bilder runterladen 6. neue Bilder vorschlagen

Mehr

Anleitung zur Daten zur Datensicherung und Datenrücksicherung. Datensicherung

Anleitung zur Daten zur Datensicherung und Datenrücksicherung. Datensicherung Anleitung zur Daten zur Datensicherung und Datenrücksicherung Datensicherung Es gibt drei Möglichkeiten der Datensicherung. Zwei davon sind in Ges eingebaut, die dritte ist eine manuelle Möglichkeit. In

Mehr

Computeranwendung und Programmierung (CuP)

Computeranwendung und Programmierung (CuP) Computeranwendung und Programmierung (CuP) VO: Peter Auer (Informationstechnologie) UE: Norbert Seifter (Angewandet Mathematik) Organisatorisches (Vorlesung) Vorlesungszeiten Montag 11:15 12:45 Freitag

Mehr

In diesem Tutorial lernen Sie, wie Sie einen Termin erfassen und verschiedene Einstellungen zu einem Termin vornehmen können.

In diesem Tutorial lernen Sie, wie Sie einen Termin erfassen und verschiedene Einstellungen zu einem Termin vornehmen können. Tutorial: Wie erfasse ich einen Termin? In diesem Tutorial lernen Sie, wie Sie einen Termin erfassen und verschiedene Einstellungen zu einem Termin vornehmen können. Neben den allgemeinen Angaben zu einem

Mehr

Excel Funktionen durch eigene Funktionen erweitern.

Excel Funktionen durch eigene Funktionen erweitern. Excel Funktionen durch eigene Funktionen erweitern. Excel bietet eine große Anzahl an Funktionen für viele Anwendungsbereiche an. Doch es kommt hin und wieder vor, dass man die eine oder andere Funktion

Mehr

Viele Bilder auf der FA-Homepage

Viele Bilder auf der FA-Homepage Viele Bilder auf der FA-Homepage Standardmäßig lassen sich auf einer FA-Homepage nur 2 Bilder mit zugehörigem Text unterbringen. Sollen es mehr Bilder sein, muss man diese als von einer im Internet

Mehr

5. Tutorium zu Programmieren

5. Tutorium zu Programmieren 5. Tutorium zu Programmieren Dennis Ewert Gruppe 6 Universität Karlsruhe Institut für Programmstrukturen und Datenorganisation (IPD) Lehrstuhl Programmierparadigmen WS 2008/2009 c 2008 by IPD Snelting

Mehr

Javakurs 2013 Objektorientierung

Javakurs 2013 Objektorientierung Javakurs 2013 Objektorientierung Objektorientierte Programmierung I Armelle Vérité 7 März 2013 Technische Universität Berlin This work is licensed under the Creative Commons Attribution-ShareAlike 3.0

Mehr

Updatehinweise für die Version forma 5.5.5

Updatehinweise für die Version forma 5.5.5 Updatehinweise für die Version forma 5.5.5 Seit der Version forma 5.5.0 aus 2012 gibt es nur noch eine Office-Version und keine StandAlone-Version mehr. Wenn Sie noch mit der alten Version forma 5.0.x

Mehr

Einführung in die objektorientierte Programmierung mit Java. Klausur am 19. Oktober 2005

Einführung in die objektorientierte Programmierung mit Java. Klausur am 19. Oktober 2005 Einführung in die objektorientierte Programmierung mit Java Klausur am 19. Oktober 2005 Matrikelnummer: Nachname: Vorname: Semesteranzahl: Die Klausur besteht aus drei Frageblöcken zu den Inhalten der

Mehr

Das Typsystem von Scala. L. Piepmeyer: Funktionale Programmierung - Das Typsystem von Scala

Das Typsystem von Scala. L. Piepmeyer: Funktionale Programmierung - Das Typsystem von Scala Das Typsystem von Scala 1 Eigenschaften Das Typsystem von Scala ist statisch, implizit und sicher 2 Nichts Primitives Alles ist ein Objekt, es gibt keine primitiven Datentypen scala> 42.hashCode() res0:

Mehr

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

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

Mehr

.procmailrc HOWTO. zur Mailfilterung und Verteilung. Stand: 01.01.2011

.procmailrc HOWTO. zur Mailfilterung und Verteilung. Stand: 01.01.2011 .procmailrc HOWTO zur Mailfilterung und Verteilung Stand: 01.01.2011 Copyright 2002-2003 by manitu. Alle Rechte vorbehalten. Alle verwendeten Bezeichnungen dienen lediglich der Kennzeichnung und können

Mehr

Installationsanleitung Maschinenkonfiguration und PP s. Release: VISI 21 Autor: Anja Gerlach Datum: 18. Dezember 2012 Update: 18.

Installationsanleitung Maschinenkonfiguration und PP s. Release: VISI 21 Autor: Anja Gerlach Datum: 18. Dezember 2012 Update: 18. Installationsanleitung Maschinenkonfiguration und PP s Release: VISI 21 Autor: Anja Gerlach Datum: 18. Dezember 2012 Update: 18.Februar 2015 Inhaltsverzeichnis 1 Einbinden der Postprozessoren... 3 1.1

Mehr

Der Vollstreckungsbescheid. 12 Fragen und Antworten

Der Vollstreckungsbescheid. 12 Fragen und Antworten Der Vollstreckungsbescheid 12 Fragen und Antworten Was bewirkt der Vollstreckungsbescheid eigentlich? Anerkennung der Schuld durch eine neutrale, eine richterliche Instanz Kein späterer Widerspruch möglich

Mehr

Professionelle Seminare im Bereich MS-Office

Professionelle Seminare im Bereich MS-Office Der Name BEREICH.VERSCHIEBEN() ist etwas unglücklich gewählt. Man kann mit der Funktion Bereiche zwar verschieben, man kann Bereiche aber auch verkleinern oder vergrößern. Besser wäre es, die Funktion

Mehr

Die neue Aufgabe von der Monitoring-Stelle. Das ist die Monitoring-Stelle:

Die neue Aufgabe von der Monitoring-Stelle. Das ist die Monitoring-Stelle: Die neue Aufgabe von der Monitoring-Stelle Das ist die Monitoring-Stelle: Am Deutschen Institut für Menschen-Rechte in Berlin gibt es ein besonderes Büro. Dieses Büro heißt Monitoring-Stelle. Mo-ni-to-ring

Mehr

Einführung in die Java- Programmierung

Einführung in die Java- Programmierung Einführung in die Java- Programmierung Dr. Volker Riediger Tassilo Horn riediger horn@uni-koblenz.de WiSe 2012/13 1 Wichtig... Mittags Pommes... Praktikum A 230 C 207 (Madeleine) F 112 F 113 (Kevin) E

Mehr

Wir machen neue Politik für Baden-Württemberg

Wir machen neue Politik für Baden-Württemberg Wir machen neue Politik für Baden-Württemberg Am 27. März 2011 haben die Menschen in Baden-Württemberg gewählt. Sie wollten eine andere Politik als vorher. Die Menschen haben die GRÜNEN und die SPD in

Mehr

Zahlenwinkel: Forscherkarte 1. alleine. Zahlenwinkel: Forschertipp 1

Zahlenwinkel: Forscherkarte 1. alleine. Zahlenwinkel: Forschertipp 1 Zahlenwinkel: Forscherkarte 1 alleine Tipp 1 Lege die Ziffern von 1 bis 9 so in den Zahlenwinkel, dass jeder Arm des Zahlenwinkels zusammengezählt das gleiche Ergebnis ergibt! Finde möglichst viele verschiedene

Mehr

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

2. Semester, 2. Prüfung, Lösung 2. Semester, 2. Prüfung, Lösung Name Die gesamte Prüfung bezieht sich auf die Programmierung in C++! Prüfungsdauer: 90 Minuten Mit Kugelschreiber oder Tinte schreiben Lösungen können direkt auf die Aufgabenblätter

Mehr

M. Graefenhan 2000-12-07. Übungen zu C. Blatt 3. Musterlösung

M. Graefenhan 2000-12-07. Übungen zu C. Blatt 3. Musterlösung M. Graefenhan 2000-12-07 Aufgabe Lösungsweg Übungen zu C Blatt 3 Musterlösung Schreiben Sie ein Programm, das die Häufigkeit von Zeichen in einem eingelesenen String feststellt. Benutzen Sie dazu ein zweidimensionales

Mehr

Outlook-Daten komplett sichern

Outlook-Daten komplett sichern Outlook-Daten komplett sichern Komplettsicherung beinhaltet alle Daten wie auch Kontakte und Kalender eines Benutzers. Zu diesem Zweck öffnen wir OUTLOOK und wählen Datei -> Optionen und weiter geht es

Mehr

Abschlussprüfung Realschule Bayern II / III: 2009 Haupttermin B 1.0 B 1.1

Abschlussprüfung Realschule Bayern II / III: 2009 Haupttermin B 1.0 B 1.1 B 1.0 B 1.1 L: Wir wissen von, dass sie den Scheitel hat und durch den Punkt läuft. Was nichts bringt, ist beide Punkte in die allgemeine Parabelgleichung einzusetzen und das Gleichungssystem zu lösen,

Mehr

Warum Sie jetzt kein Onlinemarketing brauchen! Ab wann ist Onlinemarketing. So finden Sie heraus, wann Ihre Website bereit ist optimiert zu werden

Warum Sie jetzt kein Onlinemarketing brauchen! Ab wann ist Onlinemarketing. So finden Sie heraus, wann Ihre Website bereit ist optimiert zu werden CoachingBrief 02/2016 Warum Sie jetzt kein Onlinemarketing brauchen! Eine Frage gleich zu Anfang: Wie viele Mails haben Sie in dieser Woche erhalten, in denen behauptet wurde: Inhalt Ihre Webseite sei

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Algorithmen und Datenstrukturen Tafelübung 04 Referenzen, Overloading, Klassen(hierarchien) Clemens Lang T2 18. Mai 2010 14:00 16:00, 00.152 Tafelübung zu AuD 1/13 Organisatorisches Nächster Übungstermin

Mehr

Beschreibung E-Mail Regeln z.b. Abwesenheitsmeldung und Weiterleitung

Beschreibung E-Mail Regeln z.b. Abwesenheitsmeldung und Weiterleitung Outlook Weiterleitungen & Abwesenheitsmeldungen Seite 1 von 6 Beschreibung E-Mail Regeln z.b. Abwesenheitsmeldung und Weiterleitung Erstellt: Quelle: 3.12.09/MM \\rsiag-s3aad\install\vnc\email Weiterleitung

Mehr

Gutes Leben was ist das?

Gutes Leben was ist das? Lukas Bayer Jahrgangsstufe 12 Im Hirschgarten 1 67435 Neustadt Kurfürst-Ruprecht-Gymnasium Landwehrstraße22 67433 Neustadt a. d. Weinstraße Gutes Leben was ist das? Gutes Leben für alle was genau ist das

Mehr

Programmierkurs Java

Programmierkurs Java Programmierkurs Java Dr. Dietrich Boles Aufgaben zu UE16-Rekursion (Stand 09.12.2011) Aufgabe 1: Implementieren Sie in Java ein Programm, das solange einzelne Zeichen vom Terminal einliest, bis ein #-Zeichen

Mehr

Punkt 1 bis 11: -Anmeldung bei Schlecker und 1-8 -Herunterladen der Software

Punkt 1 bis 11: -Anmeldung bei Schlecker und 1-8 -Herunterladen der Software Wie erzeugt man ein Fotobuch im Internet bei Schlecker Seite Punkt 1 bis 11: -Anmeldung bei Schlecker und 1-8 -Herunterladen der Software Punkt 12 bis 24: -Wir arbeiten mit der Software 8-16 -Erstellung

Mehr

Welchen Nutzen haben Risikoanalysen für Privatanleger?

Welchen Nutzen haben Risikoanalysen für Privatanleger? Welchen Nutzen haben Risikoanalysen für Privatanleger? Beispiel: Sie sind im Sommer 2007 Erbe deutscher Aktien mit einem Depotwert von z. B. 1 Mio. geworden. Diese Aktien lassen Sie passiv im Depot liegen,

Mehr

Karten-Freischaltung mit dem UNLOCK MANAGER

Karten-Freischaltung mit dem UNLOCK MANAGER Karten-Freischaltung mit dem UNLOCK MANAGER WICHTIGE INFORMATION 1. Anzahl der Freischaltungen Die Karten können zweimal freigeschaltet werden. (z. B. Map Manager auf PC plus Map Manager auf Laptop oder

Mehr

Outlook. sysplus.ch outlook - mail-grundlagen Seite 1/8. Mail-Grundlagen. Posteingang

Outlook. sysplus.ch outlook - mail-grundlagen Seite 1/8. Mail-Grundlagen. Posteingang sysplus.ch outlook - mail-grundlagen Seite 1/8 Outlook Mail-Grundlagen Posteingang Es gibt verschiedene Möglichkeiten, um zum Posteingang zu gelangen. Man kann links im Outlook-Fenster auf die Schaltfläche

Mehr

Nicht über uns ohne uns

Nicht über uns ohne uns Nicht über uns ohne uns Das bedeutet: Es soll nichts über Menschen mit Behinderung entschieden werden, wenn sie nicht mit dabei sind. Dieser Text ist in leicht verständlicher Sprache geschrieben. Die Parteien

Mehr

Innere Klassen in Java

Innere Klassen in Java Innere Klassen in Java SS 2012 Prof. Dr. Margarita Esponda Innere Klassen Klassen- oder Interfacedefinitionen können zur besseren Strukturierung von Programmen verschachtelt werden Eine "Inner Class" wird

Mehr

13 OOP MIT DELPHI. Records und Klassen Ein Vergleich

13 OOP MIT DELPHI. Records und Klassen Ein Vergleich 13 OOP MIT DELPHI Delphi war früher "Object Pascal". Dieser Name impliziert eine Funktionalität, welche in der Welt der Programmierung nicht mehr wegzudenken ist: die objektorientierte Programmierung,

Mehr

Objektorientierte Programmierung mit C++ Zusammenfassung der wichtigsten Topics rund um die objektorientierte Programmierung mit C++11

Objektorientierte Programmierung mit C++ Zusammenfassung der wichtigsten Topics rund um die objektorientierte Programmierung mit C++11 Objektorientierte Programmierung mit C++ Zusammenfassung der wichtigsten Topics rund um die objektorientierte Programmierung mit C++11 Wozu objektorientiertes Programmieren? Die Welt besteht für den Menschen

Mehr

Urlaubsregel in David

Urlaubsregel in David Urlaubsregel in David Inhaltsverzeichnis KlickDown Beitrag von Tobit...3 Präambel...3 Benachrichtigung externer Absender...3 Erstellen oder Anpassen des Anworttextes...3 Erstellen oder Anpassen der Auto-Reply-Regel...5

Mehr

Anleitung über den Umgang mit Schildern

Anleitung über den Umgang mit Schildern Anleitung über den Umgang mit Schildern -Vorwort -Wo bekommt man Schilder? -Wo und wie speichert man die Schilder? -Wie füge ich die Schilder in meinen Track ein? -Welche Bauteile kann man noch für Schilder

Mehr

Was bedeutet Inklusion für Geschwisterkinder? Ein Meinungsbild. Irene von Drigalski Geschäftsführerin Novartis Stiftung FamilienBande.

Was bedeutet Inklusion für Geschwisterkinder? Ein Meinungsbild. Irene von Drigalski Geschäftsführerin Novartis Stiftung FamilienBande. Was bedeutet Inklusion für Geschwisterkinder? unterstützt von Ein Meinungsbild - Irene von Drigalski Geschäftsführerin Novartis Stiftung FamilienBande Haben Sie Kontakt zu Geschwistern schwer chronisch

Mehr

Studentische Lösung zum Übungsblatt Nr. 7

Studentische Lösung zum Übungsblatt Nr. 7 Studentische Lösung zum Übungsblatt Nr. 7 Aufgabe 1) Dynamische Warteschlange public class UltimateOrderQueue private Order[] inhalt; private int hinten; // zeigt auf erstes freies Element private int

Mehr

Diplomarbeit. Konzeption und Implementierung einer automatisierten Testumgebung. Thomas Wehrspann. 10. Dezember 2008

Diplomarbeit. Konzeption und Implementierung einer automatisierten Testumgebung. Thomas Wehrspann. 10. Dezember 2008 Konzeption und Implementierung einer automatisierten Testumgebung, 10. Dezember 2008 1 Gliederung Einleitung Softwaretests Beispiel Konzeption Zusammenfassung 2 Einleitung Komplexität von Softwaresystemen

Mehr

Unterrichtsmaterialien in digitaler und in gedruckter Form. Auszug aus:

Unterrichtsmaterialien in digitaler und in gedruckter Form. Auszug aus: Unterrichtsmaterialien in digitaler und in gedruckter Form Auszug aus: If-clauses - conditional sentences - Nie mehr Probleme mit Satzbau im Englischen! Das komplette Material finden Sie hier: School-Scout.de

Mehr