Programmierung in C/C++
|
|
- Teresa Auttenberg
- vor 8 Jahren
- Abrufe
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
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
MehrZä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 --
MehrObjektorientierte 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
MehrZiel, 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
MehrVorkurs 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:
MehrJava 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
MehrEinfü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
MehrEinfü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.
MehrEinfache 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"
Mehr2. 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
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:
MehrEinfü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
MehrEinfü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
MehrObjektorientierte 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/
Mehr1 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
MehrVerhindert, 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:
MehrUnterprogramme. 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
MehrDas 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:
MehrModellierung 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; {
MehrRundung 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
MehrJavakurs 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,
Mehr1 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
MehrGroß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,
MehrJava 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
MehrTypumwandlungen 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
MehrVererbung & 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
MehrJava 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
MehrFolge 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
MehrBinä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
MehrArbeiten 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
MehrStudentische 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
MehrOutlook. 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
MehrKlausur 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
MehrGebundene Typparameter
Gebundene Typparameter interface StringHashable { String hashcode(); class StringHashMap { public void put (Key k, Value v) { String hash = k.hashcode();...... Objektorientierte
Mehrecaros2 - 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
Mehraffilinet_ 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
MehrEinfü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
MehrLineargleichungssysteme: Additions-/ Subtraktionsverfahren
Lineargleichungssysteme: Additions-/ Subtraktionsverfahren W. Kippels 22. Februar 2014 Inhaltsverzeichnis 1 Einleitung 2 2 Lineargleichungssysteme zweiten Grades 2 3 Lineargleichungssysteme höheren als
MehrInformatik 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
MehrJava 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
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:
MehrInstitut 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
MehrAnleitung ü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
Mehr2. 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)
MehrKlausur 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.:
MehrGrundlagen 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.
MehrC-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
MehrProgrammierkurs 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
MehrU08 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
MehrDatenaufbereitung 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
MehrDelegatesund Ereignisse
Delegatesund Ereignisse «Delegierter» Methoden Schablone Funktionszeiger Dr. Beatrice Amrhein Überblick Definition eines Delegat Einfache Delegate Beispiele von Delegat-Anwendungen Definition eines Ereignisses
MehrHandbuch 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
MehrSoftware 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
MehrDeklarationen 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.
MehrHandbuch. 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...
MehrAGROPLUS 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
MehrObjektorientierte 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 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
MehrInfo-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
MehrObjektorientierte 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
MehrIn 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.
MehrWPF 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,
MehrProf. 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
MehrDie 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
MehrJava: 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
MehrZwischenablage (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
MehrPrimzahlen 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
MehrHochschule 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
MehrMORE 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
MehrDas 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
MehrFlyer, 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
MehrKlausur 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)
MehrTesten 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
MehrSysteme 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
Mehr5 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
MehrUmleiten 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
MehrDer 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.
MehrFakultä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 **
MehrEinfü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
MehrWindows. 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
MehrTragen 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.
MehrStand: 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
MehrProgrammierkurs 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
MehrDer 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
MehrEndTermTest 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
MehrTYPO3-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
MehrWebalizer 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
MehrDer 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
MehrWie 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,
MehrII. 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
MehrGrundlagen 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
MehrProgrammieren 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
MehrKapitel 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
MehrProgramme 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
MehrDie 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
Mehr1. Ü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:
MehrM@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
MehrComputeranwendung 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
MehrMapra: 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
MehrWhitebox-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