Programmierung in C/C++

Größe: px
Ab Seite anzeigen:

Download "Programmierung in C/C++"

Transkript

1 Programmierung in C/C++ Philipp Lucas Philipp Lucas, CDL, UdS 1

2 Heute Templates STL Philipp Lucas, CDL, UdS 2

3 Grundlagen In der Übung: IntArray für sicheren Zugriff auf Array von int. Wie sähen CharArray, VoidPArray, UserDefinedClassArray aus? Genauso. Lösung: Generische Container: Sammlung von etwas Welche Operationen sollen effizient sein? Einfügen, entfernen, Index-Zugriff,... Wieviel Speicherplatz soll benötigt werden? Wieviel Sicherheit sollen Operationen bieten? Typsicherheit, Zugriffssicherheit Implementierung: Je nach Möglichkeiten der Sprache Philipp Lucas, CDL, UdS 3

4 Generische Container Generische Arrays etc.: Container mit gewissen Zugriffsfunktionen Garantie von (asymptotischen) Laufzeiten für bestimmte Operationen Sprachabhängige Implementierung: Datenstruktur, die Object* enthält; Sprache stellt Typsicherheit beim Zugriff sicher Prinzipiell nicht möglich in C++ Datenstruktur, die void* enthält; Programmierer kümmert sich selbst um Typsicherheit (explizite Casts) häufig verwendet in C-Containerbibliotheken Datenstrukturen, die Objekte jeweils einen Typs enthalten; Typsicherheit direkt gegeben Der Weg der C++-Standardbibliothek Philipp Lucas, CDL, UdS 4

5 Generische Container in C++ Beispiel: Wachsendes Array mit gesichertem Zugriff: std::vector Arrays von int*, std::string, A*: std::vector<int*>, std::vector<std::string>, std::vector<a*> In einem Header (hier: <vector>) existiert ein Template (Schablone): Anweisung: Ein Array von einem Typ T sieht so aus:... Benutzung dieses Templates erzeugt Instanz für ein konkretes T Compiler erzeugt spezialisierten Code für die jeweilige Instanz Typüberprüfung und Spezialisierung also zur Compilezeit (OO-Polymorphismus findet zur Laufzeit statt.) Philipp Lucas, CDL, UdS 5

6 Generische Container in C++ (2) Technisch: Definition (schematisch): template<typename T> class std::vector{ T* _array; size_t _size; public: vector(size_t init); /* Legt Feld bestimmter Groesse an. */ T& operator[](size_t i) const { return _array[i]; } size_t size() const { return _size; } }; Benutzung: std::vector<int> int array(16); int array[4]=-3; Philipp Lucas, CDL, UdS 6

7 Generische Container in C++ (3) Compiler: Generiert automatisch Klasse class std::vector<int>{ int* _array; size_t _size; public: vector<int>(size_t init); /* Legt Feld bestimmter Groesse an. */ int& operator[](size_t i) const { return _array[i]; } size_t size() const { return _size; } }; Je eine Klasse für int-arrays, std::string*-arrays etc. Compiler generiert nur benutzten Code Philipp Lucas, CDL, UdS 7

8 Templates Template hier: Parametrisierung einer Klassendefinition durch Typen Sinn: Herausfaktorisierung gleichen Codes. Unterschiede zu OO: Klassenhierarchie: Gemeinsam genutzter Code einmal vorhanden in Oberklasse, kann von mehreren Unterklassen gemeinsam genutzt werden. Templateinstanziierung: Gleicher Code mehrfach vorhanden, wird eigens pro Instanz neu spezialisiert erzeugt (Es gibt Mittel und Wege dagegen.) Templates allgemein: Parametrisierung einer Klassendefinition oder einer Funktion durch Typen oder Konstanten Templates heute: Einfache Templates von Funktionen, Container Container-Funktionalität der C++-Standardbibliothek: Standard Template Library (STL) Philipp Lucas, CDL, UdS 8

9 Einfache Funktions-Templates Start: Funktion zum Vertauschen zweier Variableninhalte. Definition eines swap-templates: template<class T> void swap(t& a, T& b){ T x=a; a=b, b=x; } Syntax: template<templateparameter> Templatefunktion Templateparameter: Hier: Ein Typ, kenntlich durch class Konkreter Typ muß keine Klasse sein (z. B. int) typename statt class möglich, aber weniger gebräuchlich Innerhalb des Templates: Benutzung des Typparameters als Typ Philipp Lucas, CDL, UdS 9

10 Benutzung einfacher Funktions-Templates template<class T> void swap(t& a, T& b){ T x=a; a=b, b=x; } Benutzung: Implizite Instanziierung: swap(intvar1,intvar2); swap(ap1,ap2); Compiler 1. schaut sich die Typen der Argumente an und stellt fest, welches T für die Templateinstanziierung verwendet werden muß; 2. generiert Code für die spezialisierte Funktion, sofern noch nicht da; 3. generiert Aufruf der spezialisierten Funktion. Es ist keine vorherige explizite Instanziierung notwendig. Philipp Lucas, CDL, UdS 10

11 Benutzung einfacher Funktions-Templates (2) template<class T> T max(t a, T b){ return (a>b)?a:b; } Mögliche Probleme: max(floatvar,intvar): Es gibt kein passendes T Explizite Instanziierung bei der Benutzung: max<float>(floatvar,intvar) Anordnung, die Funktion T max(float a, float b) aufzurufen: Klappt nach automatischer Typumwandlung der intvar nach float max(pers struct1, pers struct2): Wenn kein operator> auf den Typen definiert ist: Fehler bei der Instanziierung Philipp Lucas, CDL, UdS 11

12 Funktionstemplates: Sortierfunktion template<class T> void sort(t* array, unsigned int size){ bool changed; do { changed = false; for(unsigned int i=0; i<size-1; ++i) if(array[i]>array[i+1]) swap(array[i],array[i+1]), changed = true; } while(changed); } Vergleich mit C-Version: Eine Funktion mit Funktionszeiger für Vergleich, Tausch: Nachteil: Mehrfacher Code für gleiche Funktionalität Vorteil: Spezialisierte Vergleichs- und Tauschfunktionen Philipp Lucas, CDL, UdS 12

13 Klassentemplates IDs eines Objektes: template<class T> class ID{ T _id; public: ID(const T& id) : _id(id) {} ID(const ID& id) : _id(id._id) {} virtual ~ID() {} ID& operator=(const ID& id) { _id = id._id; return this; } const T& id() const { return _id; } }; Philipp Lucas, CDL, UdS 13

14 Klassentemplates (2) Benutzung: class Person : public ID<std::string>{ unsigned int _age; public: Person(const std::string& name, const unsigned int age) : ID<std::string>(name), _age(age) {} virtual ~Person() {} }; class Car : public ID<unsigned int>{ std::string _builder; static unsigned int _max_id; public: Car(const std::string& builder) : ID<unsigned int>(++_max_id), _builder(builder) {} virtual ~Car() {} }; Philipp Lucas, CDL, UdS 14

15 Beispiel: Paare template<class First, class Right> class std::pair{ public: First first; Right second; pair() : first(first()), second(second()) {} pair(const First& f, const Second& s) : first(f), second(s) {} }; std::pair<int,std::string> test(234,"test"); assert(test.first==234); Philipp Lucas, CDL, UdS 15

16 STL Standard Template Library: Die Container-Klassen der C++-Standardbibliothek (obwohl die SL noch viel mehr auf T beruht) Listen: vector, list, deque, stack, queue, priority queue Mengen: set, multiset Tabellen: map, multimap Erhebliche Gemeinsamkeiten beim Zugriff: Iteratoren. Philipp Lucas, CDL, UdS 16

17 vector #include <vector> Arrays, die automatisch wachsen (ähnlich IntArray) einige spezifische vector-eigenschaften zahlreiche grundlegende Operationen wie auch bei anderen Containern std::vector<car*> all cars; typedef std::vector<int> int v; Philipp Lucas, CDL, UdS 17

18 Grundlegende Operationen template<class T> class std::vector{... void push_back(const T& element); // Am Schluss anfuegen. void pop_back(); // Letztes Element entfernen. T& operator[](size_type where); // Ungepruefter Zugriff. T& at(size_type where); // Gepruefter Zugriff. const T& operator[](size_type where) const; const T& at(size_type where) const; }; Philipp Lucas, CDL, UdS 18

19 Grundlegende Operationen (2) template<class T> class std::vector{... std::vector(const std::vector<t>& right); std::vector<t>& operator=(const std::vector<t>& right); // Beide: Komplette Kopie des Inhaltes size_type size(); // Laenge. bool empty(); // Leerheitsabfrage. bool operator==(const std::vector<t>& right); // Elementweise. bool operator!=(const std::vector<t>& right); // Elementweise. bool operator<(const std::vector<t>& right); // Lexikographisch. }; Philipp Lucas, CDL, UdS 19

20 Iteratoren Wichtiges generelles Konzept: Iteratoren zum Zugriff auf STL-Container. std::vector<int> intvec; std::vector<int>::iterator iter; iter = intvec.begin(); while(iter!=intvec.end()){ std::cout << "Element: " << *iter <<. << std::endl; ++iter; } Philipp Lucas, CDL, UdS 20

21 Iteratoren (2) Ein Iterator ist ein Objekt, welches auf etwas in einem Container zeigt. In der Regel nicht nur ein Zeiger auf den Datenwert (also hier: int*) T& operator*() zum Zugriff auf Element Überladung von operator->() ebenfalls (Ein Iterator ist trotzdem kein T*.) operator++(), operator--() zum Weiter- oder Zurückgehen operator==(), operator!=() zum Vergleich mit Iteratoren Spezielle Iteratoren: vector::begin() (erstes Element), vector::end() (direkt nach dem letzten Element) (also: *intvec.end() ist nicht gültig) Nicht unbedingt verfügbar: operator-(), operator<(), operator+=() etc. Philipp Lucas, CDL, UdS 21

22 Kurs: Programmierung in C/C++ Arten von Iteratoren Vorwärts oder rückwärts: std::vector<t>::iterator: begin() end() [0] [1] [2] std::vector<t>::reverse iterator: rbegin() rend() [2] [1] [0] Philipp Lucas, CDL, UdS 22

23 Arten von Iteratoren (2) Sind Veränderungen erlaubt oder nicht? std::vector<t>::const iterator, std::vector<t>::const reverse iterator: Keine Veränderungen der Werte erlaubt Betrifft Änderungen mit *: const T& std::vector<t>::const iterator::operator*(); Betrifft auch Änderungen wie das Löschen von Werten über den Iterator Iteration über const std::vector nur mit const-varianten möglich Empfehlung: Wann immer möglich const iterator nutzen Philipp Lucas, CDL, UdS 23

24 Löschen und Einfügen std::vector<t>::iterator std::vector<t>::insert(iterator iter, T element); std::vector<t>::iterator std::vector<t>::erase(iterator iter); insert: Einsetzen vor dem Iterator (also codepush back(x) ist insert(end(),x)) Iterator selbst wird ungültig Allgemein: Kann Verschieben von Speicherplatz verursachen Rückgabe: Iterator auf neues Element erase: Löscht gezeigtes Element aus dem Container Rückgabe: Iterator auf zuvor danach liegendes Element Sonst: Siehe insert Niemals ungültig gewordene Iteratoren verwenden! Sicherheitsregel: Bei Manipulation von Listen nur einen Iterator verwenden Philipp Lucas, CDL, UdS 24

25 Iteratoren in Templates Zur Manipulation von STL-Container verwendet man häufig Funktionen, die dann ihrerseites Templates sind: template<class T> void print_all(const std::vector<t>& vec){ for(typename std::vector<t>::const_iterator iter = vec.begin(); iter!=vec.end(); ++iter){ std::cout << *iter << ; } } typename nötig, um Compiler zu sagen, daß std::list<t>::const iterator ein Typ ist. Einfache Regel: typename vor allen internen templatisierten Typen. Philipp Lucas, CDL, UdS 25

26 Beachtenswertes operator[](where) führt keine Prüfung durch: Operation nur definiert für where<size() (auch beim Schreiben) Token-Falle: >> ist ein Operator-Token: std::vector<std::vector<int>> ist syntaktisch falsch Kopiererei: Objektsemantik mit Inhaltskopien: void print all(std::vector<int>);: Bei jedem Aufruf wird ein neuer Vektor mit dem kompletten, kopierten Inhalt des Operanden-Vektoren erzeugt (besser: print all(const std::vector<int>&) oder print all(const std::vector<int>*) Klasse sorgt selbst für Freigabe des Inhalts-Arrays in ihrem Destruktor Iteratoren unterschiedlicher Vektoren: for(intvec::const iterator iter = v1.begin(); iter!= v2.end(); ++iter) Philipp Lucas, CDL, UdS 26

27 Typischer Fehler class A { std::vector<std::string> objects; public: std::vector<std::string> objects() const { return objects; } }; Philipp Lucas, CDL, UdS 27

28 Typischer Fehler class A { std::vector<std::string> objects; public: std::vector<std::string> objects() const { return objects; } }; Ineffizienz: Neuanlegung und Kopie bei jedem Aufruf Problem bei Iteration: for(i = a.objects().begin(); i!= a.objects().end(); ++i) Jeder Aufruf ist neuer Vektor! Philipp Lucas, CDL, UdS 27

29 Typischer Fehler class A { std::vector<std::string> objects; public: const std::vector<std::string>& objects() const { return objects; } }; Arbeit auf dem eigentlichen Vektor, also keine Kopie und keine Probleme Übergabe als const&, also keine Überschreibung Philipp Lucas, CDL, UdS 27

30 Typsicherheit class X : public Y {...}; void print(y*); void print(const std::vector<y*>&); X* x; std::vector<x*>; print(x); // geht print(y); // geht nicht Philipp Lucas, CDL, UdS 28

31 Typsicherheit class X : public Y {...}; void print(y*); void print(const std::vector<const X*>&); X* x; std::vector<x*>; print(x); // geht print(y); // geht immer noch nicht Philipp Lucas, CDL, UdS 28

32 list #include <list> Ebenfalls sequentieller Container Implementierung als verkettete Liste: Kein operator[](), dafür push front, pop front Iteratoren, insert, erase wie bei vector size, clear ebenfalls verfügbar Objektsemantik wie bei Vektor (und bei anderen Containern): Kopie erzeugt neue Liste Stück für Stück Philipp Lucas, CDL, UdS 29

33 vector/list Operationen: vector list operator[] O(1) n. V. push back/pop back O(1) O(1) push front/pop front n. V. O(1) size O(1) O(1) Größe pro Element: Overhead bei list (Zeiger), nicht bei vector *: Manchmal Speicherallokation und -verschiebung noetig. Philipp Lucas, CDL, UdS 30

34 Listenoperationen template<class T> class std::list{... void splice(iterator to_el, list& from); void splice(iterator to_el, list& from, iterator which); void splice(iterator to_el, list& from, iterator from_start, iterator from_end); // Verschieben (nicht Kopieren) von Elementen einer Liste in diese Liste. void sort(list&); // Sortiere Liste, Sortierung mit < void merge(list&); // Verschmelze sortierte Liste, Sortierung mit < void reverse(); // Liste umdrehen. void unique(); // Entfernt hintereinanderliegende Duplikate mit == }; Philipp Lucas, CDL, UdS 31

35 set #include <set> Container ohne spezielle Reihenfolge Jedes Element kann nur einmal vorkommen Implementierung als Suchbaum: benötigt operator< auf Elementtyp Iteratoren, insert, erase wie üblich size, clear ebenfalls verfügbar Objektsemantik wie üblich Philipp Lucas, CDL, UdS 32

36 Mengenoperationen template<class T> class std::list{... iterator find(const T&) const; // Finde Element, oder liefere end(). size_type count(const T&) const; // Gib Anzahl der Vorkommen zurueck. void insert(const T&); // Fuege Element ein. }; Philipp Lucas, CDL, UdS 33

37 map #include <map> Hashtabelle: Speicher Schlüssel und Werte Kann jeden Schlüssel nur einmal enthalten Implementierung als Suchbaum: benötigt operator< auf Elementtyp operator[]() zum Einsetzen und Lesen von Werten Iteratoren, insert, erase wie üblich (aber mit Wert, siehe gleich) size, clear ebenfalls verfügbar Objektsemantik wie üblich Philipp Lucas, CDL, UdS 34

38 Tabellenoperationen template<class Key, class Value> class std::map{... typedef std::pair<const Key,Value> value_type; void insert(const value_type&); iterator find(const Key&) const; // Finde Element, oder liefere end(). size_type count(const T&) const; // Gib Anzahl der Vorkommen zurueck. void insert(const value_type&); // Fuege Element ein. Value& operator[](const Key&); // Elementzugriff mit Schluessel // legt ggf. neues Element an. }; Philipp Lucas, CDL, UdS 35

39 Iterieren über eine map Ist iter ein std::map<key,value>::iterator, so ist *iter ein std::pair<const Key,Value>. Diese Paar ist std::map<key,value>::value type. for(std::map<std::string, Person*>::iterator iter = personen.begin(); iter!=personen.end(); ++iter){ std::map<std::string, Person*>::value_type found = *iter; // value_type ist std::pair<const std::string, Person*>. std::cout << found.first << : << found.second->name();; } iter->second = NULL; // Setzt in der Map den Wert, der bei iter->first eingetragen ist. Gleicher Paar-Typ beim Einfügen mittels insert. Philipp Lucas, CDL, UdS 36

40 Beachtenswertes insert verändert nicht das Gespeicherte, wenn der Schlüssel schon drin ist: std::map<int,int> map; map[4]=2; map.insert(std::pair<int,int>(4,3)); // Immer noch map[4]==2 operator[] verändert das Gespeicherte, wenn der Schlüssel nicht drin ist: std::map<const char*,person*> map; if(map["hans Mustermann"]!=NULL) std::cout << "Gefunden!"; // Jetzt ist "Hans Mustermann" ist der map mit Wert NULL Daher: Kein Zugriff mit operator[] auf const std::map: Nur Zugriff über find() und den Iterator möglich Philipp Lucas, CDL, UdS 37

41 Sonstige Container Ein stack ist eine deque unter Umbenennung bestimmter Operationen (back ist top) und Weglassung anderer (operator[]). Eine queue ist eine deque ohne bestimmte Operationen (pop back). Eine priority queue ist eine als sortierter vector implementierte sortierte Liste. Ein multiset ist eine Menge, die Duplikate enthalten darf. Eine multimap Tabelle, bei der ein Schlüssel mehrere Einträge haben darf. Allgemein: Implementierungen teilweise als Templateparameter angebbar nicht behandelt in dieser Vorlesung Philipp Lucas, CDL, UdS 38

42 Das ist nicht die ganze Wahrheit Bisherige Beispiele: Nur Inhaltstypen als Template-Parameter Fehlermeldungen zeigen: Tatsächliche Templates haben mehr Parameter Mehr Klassen der Standardbibliothek Vereinfachungen bei Iteratoren, bei Konstruktoren, Operationen... Ziel: Sie sollen sichere Implementierungen üblicher Datenstrukturen kennen Sie sollen Vorteile und Nachteile kennen Sie sollen die üblichen Operationen mit diesen Strukturen kennen Philipp Lucas, CDL, UdS 39

43 Ausblick Exceptions Namespaces Diverses Philipp Lucas, CDL, UdS 40

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

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

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

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

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

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

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

Einführung in die Programmierung (EPR)

Einführung in die Programmierung (EPR) Goethe-Center for Scientific Computing (G-CSC) Goethe-Universität Frankfurt am Main Einführung in die Programmierung (EPR) (Übung, Wintersemester 2014/2015) Dr. S. Reiter, M. Rupp, Dr. A. Vogel, Dr. K.

Mehr

Einfache Arrays. Annabelle Klarl. Einführung in die Informatik Programmierung und Softwareentwicklung

Einfache Arrays. Annabelle Klarl. Einführung in die Informatik Programmierung und Softwareentwicklung Annabelle Klarl Zentralübung zur Vorlesung Einführung in die Informatik: http://www.pst.ifi.lmu.de/lehre/wise-13-14/infoeinf WS13/14 Action required now 1. Smartphone: installiere die App "socrative student"

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

Ü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

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

Einführung in die STL anhand eines ausgewählten Beispiels

Einführung in die STL anhand eines ausgewählten Beispiels Einführung in die STL anhand eines ausgewählten Beispiels Frank M. Thiesing http://home.t-online.de/home/ frank.thiesing/stl/stl-folien.pdf Inhalt Überblick über die C++ STL Container Iteratoren Algorithmen

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

1 Vom Problem zum Programm

1 Vom Problem zum Programm Hintergrundinformationen zur Vorlesung GRUNDLAGEN DER INFORMATIK I Studiengang Elektrotechnik WS 02/03 AG Betriebssysteme FB3 Kirsten Berkenkötter 1 Vom Problem zum Programm Aufgabenstellung analysieren

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

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

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

Modellierung und Programmierung 1

Modellierung und Programmierung 1 Modellierung und Programmierung 1 Prof. Dr. Sonja Prohaska Computational EvoDevo Group Institut für Informatik Universität Leipzig 19. November 2015 Gültigkeitsbereich (Scope) von Variablen { int m; {

Mehr

Rundung und Casting von Zahlen

Rundung und Casting von Zahlen W E R K S T A T T Rundung und Casting von Zahlen Intrexx 7.0 1. Einleitung In diesem Werkstattbeitrag erfahren Sie, wie Zahlenwerte speziell in Velocity, aber auch in Groovy, gerundet werden können. Für

Mehr

Javakurs zu Informatik I. Henning Heitkötter

Javakurs zu Informatik I. Henning Heitkötter Javakurs zu Informatik I Arrays vergleichen Implementieren Sie folgende Methode, die prüft, ob die Elemente der beiden Arrays an jeder Position übereinstimmen: public static boolean identisch(int[] a,

Mehr

1 topologisches Sortieren

1 topologisches Sortieren Wolfgang Hönig / Andreas Ecke WS 09/0 topologisches Sortieren. Überblick. Solange noch Knoten vorhanden: a) Suche Knoten v, zu dem keine Kante führt (Falls nicht vorhanden keine topologische Sortierung

Mehr

Große Übung Praktische Informatik 1

Große Übung Praktische Informatik 1 Große Übung Praktische Informatik 1 2005-12-08 fuessler@informatik.uni-mannheim.de http://www.informatik.uni-mannheim.de/pi4/people/fuessler 1: Announcements / Orga Weihnachtsklausur zählt als Übungsblatt,

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

Typumwandlungen bei Referenztypen

Typumwandlungen bei Referenztypen Typumwandlungen bei Referenztypen Genau wie es bei einfachen Typen Typumwandlungen gibt, gibt es auch bei Referenztypen Umwandlungen von einem Referenztypen in einen anderen Referenztypen, die wie bei

Mehr

Vererbung & Schnittstellen in C#

Vererbung & Schnittstellen in C# Vererbung & Schnittstellen in C# Inhaltsübersicht - Vorüberlegung - Vererbung - Schnittstellenklassen - Zusammenfassung 1 Vorüberlegung Wozu benötigt man Vererbung überhaubt? 1.Um Zeit zu sparen! Verwendung

Mehr

Java Generics & Collections

Java Generics & Collections Java Praktikum Effizientes Programmieren (Sommersemester 2015) Dennis Reuling Agenda 1 2 3 1 / 30 Praktikum Effizientes Programmieren (Sommersemester 2015) Java Subtyping Teil 1 2 / 30 Praktikum Effizientes

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

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

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

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

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

Klausur C-Programmierung / 15.02.2014 / Klingebiel / 60 Minuten / 60 Punkte

Klausur C-Programmierung / 15.02.2014 / Klingebiel / 60 Minuten / 60 Punkte Klausur C-Programmierung / 15.02.2014 / Klingebiel / 60 Minuten / 60 Punkte Musterlösung 1. Aufgabe (5 Punkte) Im folgenden Programmcode sind einige Fehler enthalten. Finden und markieren Sie mindestens

Mehr

Gebundene Typparameter

Gebundene Typparameter Gebundene Typparameter interface StringHashable { String hashcode(); class StringHashMap { public void put (Key k, Value v) { String hash = k.hashcode();...... Objektorientierte

Mehr

ecaros2 - Accountmanager

ecaros2 - Accountmanager ecaros2 - Accountmanager procar informatik AG 1 Stand: FS 09/2012 Inhaltsverzeichnis 1 Aufruf des ecaros2-accountmanager...3 2 Bedienung Accountmanager...4 procar informatik AG 2 Stand: FS 09/2012 1 Aufruf

Mehr

affilinet_ Flash-Spezifikationen

affilinet_ Flash-Spezifikationen affilinet_ Flash-Spezifikationen Inhaltsverzeichnis Allgemeines...2 Klickzählung...2 Lead/Sale Programme... 2 PPC und Kombi Programme...3 Übergabe von Formulardaten...4 clicktag Variante Sale/Lead Programm...4

Mehr

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

Einführung in die C++ Programmierung für Ingenieure Einführung in die C++ Programmierung für Ingenieure MATTHIAS WALTER / JENS KLUNKER Universität Rostock, Lehrstuhl für Modellierung und Simulation 14. November 2012 c 2012 UNIVERSITÄT ROSTOCK FACULTY OF

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

Informatik Repetitorium SS 2009. Volker Jaedicke Volker.Jaedicke@web.de 0179 1322692

Informatik Repetitorium SS 2009. Volker Jaedicke Volker.Jaedicke@web.de 0179 1322692 Informatik Repetitorium SS 2009 Volker Jaedicke Volker.Jaedicke@web.de 0179 1322692 Operatoren und Datentypen Beispiel: Anweisungen Variable int a float b int c a= a % (int) (++b-1/4) Vorher 36 3.5 c=b

Mehr

Java Einführung Collections

Java Einführung Collections Java Einführung Collections Inhalt dieser Einheit Behälterklassen, die in der Java API bereitgestellt werden Wiederholung Array Collections (Vector, List, Set) Map 2 Wiederholung Array a[0] a[1] a[2] a[3]...

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 13 Prof. Dr. R. Hennicker, A. Klarl Übungen zu Einführung in die Informatik: Programmierung und Software-Entwicklung:

Mehr

Institut für Programmierung und Reaktive Systeme 25. August 2014. Programmier-Labor. 04. + 05. Übungsblatt. int binarysearch(int[] a, int x),

Institut für Programmierung und Reaktive Systeme 25. August 2014. Programmier-Labor. 04. + 05. Übungsblatt. int binarysearch(int[] a, int x), Technische Universität Braunschweig Dr. Werner Struckmann Institut für Programmierung und Reaktive Systeme 25. August 2014 Programmier-Labor 04. + 05. Übungsblatt Aufgabe 21: a) Schreiben Sie eine Methode

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

2. Programmierung in C

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

Mehr

Klausur in Programmieren

Klausur in Programmieren Studiengang Sensorik/Sensorsystemtechnik Note / normierte Punkte Klausur in Programmieren Sommer 2009, 16. Juli 2009 Dauer: 1,5h Hilfsmittel: Keine (Wörterbücher sind auf Nachfrage erlaubt) Name: Matrikelnr.:

Mehr

Grundlagen der Informatik. Prof. Dr. Stefan Enderle NTA Isny

Grundlagen der Informatik. Prof. Dr. Stefan Enderle NTA Isny Grundlagen der Informatik Prof. Dr. Stefan Enderle NTA Isny 2 Datenstrukturen 2.1 Einführung Syntax: Definition einer formalen Grammatik, um Regeln einer formalen Sprache (Programmiersprache) festzulegen.

Mehr

C-Arrays vs. C++-Container

C-Arrays vs. C++-Container C-Arrays vs. C++-Container In C verwendet man (mangels Alternativen) sehr häufig das C-Array (= Feld): im Speicher hintereinander abgelegte Elemente vom gleichen Typ. Arrays haben einen Basistyp (Typ des

Mehr

Programmierkurs C++ Templates & STL (1/2)

Programmierkurs C++ Templates & STL (1/2) Programmierkurs C++ Templates & STL (1/2) Prof. Dr. Stefan Fischer Institut für Telematik, Universität zu Lübeck https://www.itm.uni-luebeck.de/people/fischer #2 Templates Die wichtigsten objekt-orientierten

Mehr

U08 Entwurfsmuster (II)

U08 Entwurfsmuster (II) U08 Entwurfsmuster (II) Inhalt der Übung Diskussion und Implementierung von Entwurfsmustern Übungsaufgaben Aufgabe 1 (Queue) Gegeben ist das folgende Analysemodell einer Warteschlange (Queue): Eine Warteschlange

Mehr

Datenaufbereitung in SPSS. Daten zusammenfügen

Datenaufbereitung in SPSS. Daten zusammenfügen Daten zusammenfügen I. Fälle hinzufügen Diese Schritte müssen Sie unternehmen, wenn die Daten in unterschiedlichen Dateien sind; wenn also die Daten von unterschiedlichen Personen in unterschiedlichen

Mehr

Delegatesund Ereignisse

Delegatesund Ereignisse Delegatesund Ereignisse «Delegierter» Methoden Schablone Funktionszeiger Dr. Beatrice Amrhein Überblick Definition eines Delegat Einfache Delegate Beispiele von Delegat-Anwendungen Definition eines Ereignisses

Mehr

Handbuch Fischertechnik-Einzelteiltabelle V3.7.3

Handbuch Fischertechnik-Einzelteiltabelle V3.7.3 Handbuch Fischertechnik-Einzelteiltabelle V3.7.3 von Markus Mack Stand: Samstag, 17. April 2004 Inhaltsverzeichnis 1. Systemvorraussetzungen...3 2. Installation und Start...3 3. Anpassen der Tabelle...3

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

Deklarationen in C. Prof. Dr. Margarita Esponda

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.

Mehr

Handbuch. NAFI Online-Spezial. Kunden- / Datenverwaltung. 1. Auflage. (Stand: 24.09.2014)

Handbuch. NAFI Online-Spezial. Kunden- / Datenverwaltung. 1. Auflage. (Stand: 24.09.2014) Handbuch NAFI Online-Spezial 1. Auflage (Stand: 24.09.2014) Copyright 2016 by NAFI GmbH Unerlaubte Vervielfältigungen sind untersagt! Inhaltsangabe Einleitung... 3 Kundenauswahl... 3 Kunde hinzufügen...

Mehr

AGROPLUS Buchhaltung. Daten-Server und Sicherheitskopie. Version vom 21.10.2013b

AGROPLUS Buchhaltung. Daten-Server und Sicherheitskopie. Version vom 21.10.2013b AGROPLUS Buchhaltung Daten-Server und Sicherheitskopie Version vom 21.10.2013b 3a) Der Daten-Server Modus und der Tresor Der Daten-Server ist eine Betriebsart welche dem Nutzer eine grosse Flexibilität

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

Über Arrays und verkettete Listen Listen in Delphi

Über Arrays und verkettete Listen Listen in Delphi Über Arrays und verkettete Listen Listen in Delphi Michael Puff mail@michael-puff.de 2010-03-26 Inhaltsverzeichnis Inhaltsverzeichnis 1 Einführung 3 2 Arrays 4 3 Einfach verkettete Listen 7 4 Doppelt verkettete

Mehr

Info-Veranstaltung zur Erstellung von Zertifikaten

Info-Veranstaltung zur Erstellung von Zertifikaten Info-Veranstaltung zur Erstellung von Zertifikaten Prof. Dr. Till Tantau Studiengangsleiter MINT Universität zu Lübeck 29. Juni 2011 Gliederung Zertifikate Wer, Wann, Was Ablauf der Zertifikaterstellung

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

In vergleichsbasierten Suchbäumen wird nicht in Schlüssel hineingeschaut.

In vergleichsbasierten Suchbäumen wird nicht in Schlüssel hineingeschaut. Binäre Suchbäume Tries (Folie 182, Seite 58 im Skript) In vergleichsbasierten Suchbäumen wird nicht in Schlüssel hineingeschaut. In Tries entspricht die ite Verzweigung dem iten Zeichen des Schlüssels.

Mehr

WPF Steuerelemente Listbox, ComboBox, ListView,

WPF Steuerelemente Listbox, ComboBox, ListView, WPF Steuerelemente Listbox, ComboBox, ListView, Dr. Beatrice Amrhein Überblick Einführung Listen ComboBox Tabellen 2 Einführung 3 Listen- und Tabellen-Elemente Listen und Tabellen-Elemente sind Steuerelemente,

Mehr

Prof. Dr. Uwe Schmidt. 21. August 2007. Aufgaben zur Klausur Objektorientierte Programmierung im SS 2007 (IA 252)

Prof. Dr. Uwe Schmidt. 21. August 2007. Aufgaben zur Klausur Objektorientierte Programmierung im SS 2007 (IA 252) Prof. Dr. Uwe Schmidt 21. August 2007 Aufgaben zur Klausur Objektorientierte Programmierung im SS 2007 (IA 252) Zeit: 75 Minuten erlaubte Hilfsmittel: keine Bitte tragen Sie Ihre Antworten und fertigen

Mehr

Die Programmiersprache C99: Zusammenfassung

Die Programmiersprache C99: Zusammenfassung Die Programmiersprache C99: Zusammenfassung Jörn Loviscach Versionsstand: 7. Dezember 2010, 19:30 Die nummerierten Felder sind absichtlich leer, zum Ausfüllen in der Vorlesung. Videos dazu: http://www.youtube.com/joernloviscach

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

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

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

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

Hochschule Darmstadt Informatik-Praktikum (INF 1) WS 2015/2016 Wirtschaftsingenieur Bachelor 5. Aufgabe Datenstruktur, Dateieingabe und -ausgabe Aufgabenstellung Für eine Hausverwaltung sollen für maximal 500 Wohnungen Informationen gespeichert werden, die alle nach der gleichen Weise wie folgt strukturiert sind: Art Baujahr Wohnung Whnginfo Nebenkosten

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 sogenannte Beamen ist auch in EEP möglich ohne das Zusatzprogramm Beamer. Zwar etwas umständlicher aber es funktioniert

Das sogenannte Beamen ist auch in EEP möglich ohne das Zusatzprogramm Beamer. Zwar etwas umständlicher aber es funktioniert Beamen in EEP Das sogenannte Beamen ist auch in EEP möglich ohne das Zusatzprogramm Beamer. Zwar etwas umständlicher aber es funktioniert Zuerst musst du dir 2 Programme besorgen und zwar: Albert, das

Mehr

Flyer, Sharepics usw. mit LibreOffice oder OpenOffice erstellen

Flyer, Sharepics usw. mit LibreOffice oder OpenOffice erstellen Flyer, Sharepics usw. mit LibreOffice oder OpenOffice erstellen Wir wollen, dass ihr einfach für eure Ideen und Vorschläge werben könnt. Egal ob in ausgedruckten Flyern, oder in sozialen Netzwerken und

Mehr

Klausur in Programmieren

Klausur in Programmieren Studiengang Sensorik/Sensorsystemtechnik Note / normierte Punkte Klausur in Programmieren Wintersemester 2010/11, 17. Februar 2011 Dauer: 1,5h Hilfsmittel: Keine (Wörterbücher sind auf Nachfrage erlaubt)

Mehr

Testen mit JUnit. Motivation

Testen mit JUnit. Motivation Test First Design for Test in Eclipse (eigentlich: ) zu einer Klasse Beispiel zur Demonstration Ergänzungen Test First "Immer dann, wenn Du in Versuchung kommst, etwas wie eine print- Anweisung oder einen

Mehr

Systeme 1. Kapitel 6. Nebenläufigkeit und wechselseitiger Ausschluss

Systeme 1. Kapitel 6. Nebenläufigkeit und wechselseitiger Ausschluss Systeme 1 Kapitel 6 Nebenläufigkeit und wechselseitiger Ausschluss Threads Die Adressräume verschiedener Prozesse sind getrennt und geschützt gegen den Zugriff anderer Prozesse. Threads sind leichtgewichtige

Mehr

5 DATEN. 5.1. Variablen. Variablen können beliebige Werte zugewiesen und im Gegensatz zu

5 DATEN. 5.1. Variablen. Variablen können beliebige Werte zugewiesen und im Gegensatz zu Daten Makro + VBA effektiv 5 DATEN 5.1. Variablen Variablen können beliebige Werte zugewiesen und im Gegensatz zu Konstanten jederzeit im Programm verändert werden. Als Variablen können beliebige Zeichenketten

Mehr

Umleiten von Eigenen Dateien per GPO

Umleiten von Eigenen Dateien per GPO Umleiten von Eigenen Dateien per GPO Vom Prinzip her ist das Umleiten der Eigenen Dateien über eine Gruppenrichtlinie schnell erledigt. Es gibt jedoch einige kleine Dinge, die zu beachten sind, um etwa

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

Fakultät Angewandte Informatik Lehrprofessur für Informatik 23.01.2012

Fakultät Angewandte Informatik Lehrprofessur für Informatik 23.01.2012 WS 2011/2012 Fakultät Angewandte Informatik Lehrprofessur für Informatik 23.01.2012 Prof. Dr. Robert Lorenz Musterlösung zur Vorlesung Informatik I, Extrablatt zu komplexen Datenstrukturen Aufgabe 45 **

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

Windows. Workshop Internet-Explorer: Arbeiten mit Favoriten, Teil 1

Windows. Workshop Internet-Explorer: Arbeiten mit Favoriten, Teil 1 Workshop Internet-Explorer: Arbeiten mit Favoriten, Teil 1 Wenn der Name nicht gerade www.buch.de oder www.bmw.de heißt, sind Internetadressen oft schwer zu merken Deshalb ist es sinnvoll, die Adressen

Mehr

Tragen Sie bitte im Anmeldefeld die Daten ein, die Sie von uns erhalten haben.

Tragen Sie bitte im Anmeldefeld die Daten ein, die Sie von uns erhalten haben. Online Katalog der Bildstelle Peine: http://nds-pe.datenbank-bildungsmedien.net/ Anmeldung: Klicken Sie bitte auf ganz rechts. Tragen Sie bitte im Anmeldefeld die Daten ein, die Sie von uns erhalten haben.

Mehr

Stand: 28.11.2012. Adressnummern ändern Modulbeschreibung

Stand: 28.11.2012. Adressnummern ändern Modulbeschreibung Seite 1 Inhalt Allgemein...3 Installation...3 manuelle Eingabe von alten und neuen Adressnummern...4 Vorbereiten von Adressnummern-Änderungen in Tabellen...5 Seite 2 Allgemein Das INKS-Modul ermöglicht

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

Der lokale und verteilte Fall

Der lokale und verteilte Fall Lokale Beans Der lokale und verteilte Fall RemoteClient Lokaler Client (JSP) RemoteSession/Entity-Bean Lokale Session/Entity-Bean 2 Lokale Beans Die bisher vorgestellten EJBswaren immer in der Lage auf

Mehr

EndTermTest PROGALGO WS1516 A

EndTermTest PROGALGO WS1516 A EndTermTest PROGALGO WS1516 A 14.1.2016 Name:................. UID:.................. PC-Nr:................ Beachten Sie: Lesen Sie erst die Angaben aufmerksam, genau und vollständig. Die Verwendung von

Mehr

TYPO3-Schulung für Redakteure Stand: 12.5.2009

TYPO3-Schulung für Redakteure Stand: 12.5.2009 TYPO3-Schulung für Redakteure Stand: 12.5.2009 Um sich in TYPO3 einzuloggen, rufen Sie bitte im Internet die Seite http://www.vdi.de/typo3 auf, geben Sie dort Ihren Benutzernamen und Ihr Passwort ein und

Mehr

Webalizer HOWTO. Stand: 18.06.2012

Webalizer HOWTO. Stand: 18.06.2012 Webalizer HOWTO Stand: 18.06.2012 Copyright 2003 by manitu. Alle Rechte vorbehalten. Alle verwendeten Bezeichnungen dienen lediglich der Kennzeichnung und können z.t. eingetragene Warenzeichen sein, ohne

Mehr

Der Jazz Veranstaltungskalender für Deutschland, Österreich und die Schweiz

Der Jazz Veranstaltungskalender für Deutschland, Österreich und die Schweiz Veranstaltung erstellen mit vorheriger Registrierung Wenn Sie sich bei Treffpunkt Jazz registrieren, genießen Sie folgende Vorteile: Sie können bereits eingestellte Veranstaltungen auch noch später ändern

Mehr

Wie halte ich Ordnung auf meiner Festplatte?

Wie halte ich Ordnung auf meiner Festplatte? Wie halte ich Ordnung auf meiner Festplatte? Was hältst du von folgender Ordnung? Du hast zu Hause einen Schrank. Alles was dir im Wege ist, Zeitungen, Briefe, schmutzige Wäsche, Essensreste, Küchenabfälle,

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

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

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

Kapitel 6: Graphalgorithmen Gliederung

Kapitel 6: Graphalgorithmen Gliederung Gliederung 1. Grundlagen 2. Zahlentheoretische Algorithmen 3. Sortierverfahren 4. Ausgewählte Datenstrukturen 5. Dynamisches Programmieren 6. Graphalgorithmen 7. String-Matching 8. Kombinatorische Algorithmen

Mehr

Programme im Griff Was bringt Ihnen dieses Kapitel?

Programme im Griff Was bringt Ihnen dieses Kapitel? 3-8272-5838-3 Windows Me 2 Programme im Griff Was bringt Ihnen dieses Kapitel? Wenn Sie unter Windows arbeiten (z.b. einen Brief schreiben, etwas ausdrucken oder ein Fenster öffnen), steckt letztendlich

Mehr

Die Backup-Voreinstellungen finden Sie in M-System Server unter dem Reiter "Wartung".

Die Backup-Voreinstellungen finden Sie in M-System Server unter dem Reiter Wartung. TechNote Backup Protrixx Software GmbH, 2013-09-23 Im Folgenden finden Sie die von uns empfohlenen Einstellungen des automatischen Backups in M-System. Der Zugriff auf die Backup-Einstellungen ist nur

Mehr

1. Übung zu "Numerik partieller Differentialgleichungen"

1. Übung zu Numerik partieller Differentialgleichungen 1. Übung zu "Numerik partieller Differentialgleichungen" Simon Gawlok, Eva Treiber Engineering Mathematics and Computing Lab 22. Oktober 2014 1 / 15 1 Organisatorisches 2 3 4 2 / 15 Organisatorisches Ort:

Mehr

M@school Software- und Druckerzuweisung Selbstlernmaterialien

M@school Software- und Druckerzuweisung Selbstlernmaterialien Bildung und Sport M@school Software- und Druckerzuweisung Selbstlernmaterialien Hinweise zum Skript: LMK = Linker Mausklick RMK = Rechter Mausklick LMT = Linke Maustaste RMT = Rechte Maustaste Um die Lesbarkeit

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

Mapra: C++ Teil 4. Felix Gruber. 6. Mai IGPM, RWTH Aachen. Felix Gruber (IGPM, RWTH Aachen) Mapra: C++ Teil 4 6.

Mapra: C++ Teil 4. Felix Gruber. 6. Mai IGPM, RWTH Aachen. Felix Gruber (IGPM, RWTH Aachen) Mapra: C++ Teil 4 6. Mapra: C++ Teil 4 Felix Gruber IGPM, RWTH Aachen 6. Mai 2015 Felix Gruber (IGPM, RWTH Aachen) Mapra: C++ Teil 4 6. Mai 2015 1 / 22 Themen vom letzten Mal Kompilieren mit Makefiles Ein-/Ausgabe über Dateien

Mehr

Whitebox-Vererbung vs. Blackbox-Vererbung. - Begriffsbestimmung - Vererbung öffentliche Vererbung private Vererbung - Zusammenfassung

Whitebox-Vererbung vs. Blackbox-Vererbung. - Begriffsbestimmung - Vererbung öffentliche Vererbung private Vererbung - Zusammenfassung Whitebox-Vererbung vs. Blackbox-Vererbung - Begriffsbestimmung - Vererbung öffentliche Vererbung private Vererbung - Zusammenfassung Begriffsbestimmung Whitebox- oder Glassbox-Testverfahren - auch Strukturtest-Verfahren

Mehr