Übung 1: String-Klasse

Größe: px
Ab Seite anzeigen:

Download "Übung 1: String-Klasse"

Transkript

1 Programmieren in C++ Prof. Dr. Christoph Stamm, Prof. Horst Veitschegger Übung 1: String-Klasse Lernziele Sie repetieren den Stoff aus der Vorlesung: Struktur eines C++-Programms, einfache und strukturierte Datentypen, Zeiger, Referenzen, Arrays, C-Strings und Klassen. Sie entwickeln eine eigene String-Klasse für nicht veränderbare Zeichenketten ähnlich der Klasse String aus Java. Sie schreiben eine kleine Konsolenanwendung und verwenden dabei Ihre String-Klasse. Sie testen Ihre String-Klasse mit Unit-Tests. Sie verstehen das Potential der Move-Semantik und die Auswirkungen auf die Performance. 1 Tutorial und Aufgaben 1.1 C-Strings und String-Funktionen Ein C-String ist ein Character-Array, von dem nur die Anfangsadresse bekannt ist. Die Länge des Arrays ist statisch, jedoch nicht explizit im Array festgehalten. Um dennoch unterschiedlich lange Zeichenketten in einem solchen C-String abspeichern zu können, wird das Ende der Zeichenkette durch ein '\0' Zeichen gekennzeichnet. Solche C-Strings werden von C/C++ direkt unterstützt. Für den Umgang mit ihnen gibt es eine Reihe von globalen String-Funktionen in der C-Standardbibliothek (<cstring>). Eine Bündelung der String-Funktionen mit der Datenstruktur zu einer Klasse String macht also Sinn. Selbstverständlich gibt es in der C++-Standardbibliothek (<string>) bereits eine solche Klasse. Diese Strings sind veränderbar und entsprechen in etwa der Klasse StringBuilder aus Java. 1.2 String-Klasse In dieser Übung sollen Sie schrittweise eine eigene String-Klasse für unveränderbare Strings entwickeln und diese eingehend testen. Diese Klasse soll also im Wesentlichen der Klasse String aus Java entsprechen. Dabei lernen Sie verschiedenste (neue) C++-Techniken, den Debugger und das Unit- Testsystem von Visual Studio 1 kennen. Eröffnen Sie ein leeres C++ Konsolenprojekt mit einem eigenen Verzeichnis für die Solution. Der Solution werden wir später noch ein Testprojekt hinzufügen. Fügen Sie dem Konsolenprojekt dann drei Dateien hinzu: MyString.h, MyString.cpp und main.cpp 2. Während die beiden ersten Dateien für die Spezifikation und die Implementierung der String-Klasse dienen, nutzen wir main.cpp für eine erste kleine Konsolenanwendung, um ein paar einfache Tests (vorerst noch ohne Unit-Test) auf der Konsole auszuführen. Definieren Sie in der Datei MyString.h eine eigene String-Klasse. Wenn Sie hinter dem Klassennamen final hinschreiben, dann kann die Klasse nicht als Basisklasse verwendet werden. class String final { // private Datenstruktur public: // öffentliche Methoden ; 1 Die hier gemachten Beschreibungen beziehen sich auf Visual Studio Sie müssen nicht unbedingt mit Visual Studio arbeiten. Sie benötigen jedoch ein Werkzeug, welches Unit-Tests und Code- Coverage-Analysis ermöglicht. Zudem ist es sinnvoll, dass Sie in Ihrer Informatikausbildung noch andere IDEs ausser Eclipse kennenlernen. 2 Ihre Klasse soll schlicht und einfach String heissen. Um Verwechslungen mit vorhandenen Header- Files zu vermeiden, verwenden wir für die Dateien den Namen MyString. In C++ muss die Datei nicht den Namen der Klasse tragen. 1

2 1.2.1 Datenstruktur Unsere String-Datenstruktur soll den Java-Strings konzeptionell entsprechen. Das heisst, sie soll ein nicht veränderbares Character-Array (m_string) verwalten. Im Unterschied zu Java verwenden wir hier den 8-Bit Datentyp char, wobei es ohne weiteres möglich wäre, diesen durch den 16-Bit Datentyp wchar_t zu ersetzen. Zur Speicherung des Character-Arrays könnte ein C++-Container verwendet werden. Um den Umgang mit Arrays und Zeigerobjekten zu üben, verwenden wir hier ein herkömmliches, nicht null-terminiertes C-Array. Bekanntlich speichern C-Arrays die Arraylänge nicht im Array. Daher müssen wir in unserer Datenstruktur ein Längenfeld m_len vom Typ size_t 3 vorsehen. Ausgelegt auf eine effiziente Implementierung der Methode substring speichern wir noch ein drittes Attribut ab, nämlich die Startposition m_start des Strings. Damit können wir auf das jeweilige Anlegen eines neuen Character-Arrays verzichten und stattdessen das bereits vorhandene Character-Array wiederverwenden und einfach angeben, an welcher Array-Position der Teilstring beginnt. Character-Arrays können in C/C++ ganz einfach durch einen rohen Zeiger vom Typ char* repräsentiert werden. Ein solcher Rohzeiger wäre hier aber mit grosser Vorsicht zu verwenden, weil mehrere String-Objekte auf den gleichen C-String verweisen dürfen, wie wir das eben für Teilstrings definiert haben. Hier bietet sich also für m_string eines der neuen Zeigerobjekte von C++11 bestens an: shared_ptr<char>. Dieses smarte Zeigerobjekt registriert, wenn der Zeiger kopiert wird. Dadurch wird sichergestellt, dass das Array erst dann vom Heap gelöscht wird, wenn kein String-Objekt mehr darauf verweist Konstruktoren und Destruktor Vorerst wollen wir drei verschiedene Konstruktoren anbieten: den Standardkonstruktor, den Kopierkonstruktor und einen Typkonvertierungs-Konstruktor, mit dem konstante C-Strings in Instanzen unserer String-Klasse umgewandelt werden können. Der Standardkonstruktor benötigt keine Argumente und repräsentiert einen leeren String (Länge = 0). Ein Character-Array muss daher nicht alloziert werden. Der Kopierkonstruktor soll eine flache Kopie erstellen, denn es kann problemlos das gleiche Character-Array wiederverwendet werden. Grundsätzlich könnte der vom System automatisch erstelle Kopierkonstruktor verwendet werden. Damit Sie besser verstehen, wann dieser Konstruktor aufgerufen wird und hinein debuggen können, empfehlen wir Ihnen, diesen selber zu programmieren und eventuell mit einer Konsolenausgabe zu versehen. Der Typkonvertierungs-Konstruktor nimmt einen herkömmlichen C-String vom Typ const char* entgegen und erzeugt eine tiefe Kopie, da unser String-Objekt unabhängig vom Übergabeparameter bleiben soll. Weil die Länge des übergebenen C-Strings oft nicht bekannt ist, muss zuerst der 0- Character gesucht werden. Achten Sie darauf, dass auch ein leerer C-String "" übergeben werden kann. Der kritische Punkt in diesem Konstruktor ist die korrekte Erzeugung des Zeigerobjekts shared_ptr<char> m_string. Dieses Zeigerobjekt verwaltet streng genommen nur einen Zeiger auf einen einzelnen Character und nicht auf ein ganzes Character-Array, denn der generische Typ des Zeigerobjekts ist char. Leider ist es nicht möglich, einen shared_ptr<char[]> (beachten Sie die eckigen Klammern hinter char) zu verwenden. Dieser Umstand wird spätestens beim automatischen Speicherabbau zum Problem, weil dann nur ein einzelner Character auf dem Heap freigegeben wird und nicht das ganze Array. Um dieses Problem zu lösen, kann dem Konstruktor von shared_ptr<> ein zweites Argument, ein sogenannter Deleter, mitgegeben werden, welcher dann für den korrekten Speicherabbau zuständig ist. Es gibt aber noch einen zweiten Lösungsansatz. Im Gegensatz zu shared_ptr<> kann unique_ptr<> mit C-Arrays korrekt verfahren, wenn der generische Typ des Zeigerobjekts ein Array-Typ ist. Die Anweisung unique_ptr<char[]>(new char[m_len]) erzeugt ein Character-Array auf dem Heap und das Zeigerobjekt stellt im Destruktor sicher, dass das ganze Array wieder vom Heap entfernt wird. Unser Attribut m_string soll aber vom Typ shared_ptr<char> sein. Das ist jedoch unproblematisch, weil der Konstruktor von shared_ptr<char> auch einen unique_ptr<char[]> als Parameter akzeptiert. Bleibt schliesslich noch der Destruktor. Was gibt es hier zu tun? Was wäre anders, wenn wir einen rohen Zeiger anstatt dem shared_ptr<char> für das Character-Array in unserer Datenstruktur verwendet hätten? Auch hier empfehlen wir Ihnen, diesen Destruktor aus didaktischen Gründen zu implementieren, damit Sie hineindebuggen und überprüfen können, ob wirklich das Character-Array freigegeben wird Methoden Bevor Sie die Methoden der Klasse implementieren, empfehlen wir Ihnen Kapitel 1.3 durchzuarbeiten. Dort entwickeln Sie eine kleine Konsolenanwendung, welche die String-Klasse verwendet. 3 size_t ist ein vorzeichenloser Typ für ganzzahlige Grössenangaben 2

3 Ihre String-Klasse soll die nachfolgenden Instanz- und Klassen-Methoden anbieten. Beachten Sie, dass alle Instanzmethoden ein const am Ende haben. Damit wird ausgedrückt, dass diese Methoden das this-objekt nicht verändern, also nur lesenden Zugriff haben. // Instanz-Methoden char charat(size_t index) const; // bei falschem Index: wirft exception int compareto(const String& s) const; // C++ untypische Funktion: gibt -1, 0, 1 zurück String concat(char c) const; // hängt c ans Ende und gibt neuen String zurück String concat(const String& s) const; size_t length() const; // gibt die Länge des Strings zurück // Substring des Bereichs [beg, end) // falls beg m_len oder end beg: gibt leeren String zurück String substring(size_t beg, size_t end) const; // erzeugt 0-terminierten C-String, kopiert Inhalt und gibt Zeigerobjekt zurück unique_ptr<char[]> tocstring() const; // Gleichheitsoperator (Inline-Implementation schon gegeben) bool operator==(const String& s) const { return compareto(s) == 0; // Ausgabe-Operator für Output-Streams (Inline-Implementation schon gegeben) friend ostream& operator<<(ostream& os, const String& s) { const size_t end = s.m_start + s.m_len; const char* const sc = s.m_string.get(); for(size_t i=s.m_start; i < end; i++) os << sc[i]; return os; // Klassen-Methode static String valueof(int i); // erzeugt eine String-Repräsentation von i Übernehmen Sie die obenstehenden Methoden-Spezifikationen in Ihre Klassendefinition (MyString.h) und implementieren Sie dann sorgfältig die einzelnen Methoden innerhalb von MyString.cpp. Die Methode compareto(const String& s) ist für C++ untypisch, weil üblicherweise die herkömmlichen relationalen Operatoren für den gleichen Zweck eingesetzt werden. Wie dies in der Praxis aussehen könnte, zeigt der Gleichheitsoperator dessen Implementierung mithilfe von compareto bereits gegeben ist. Der Rückgabewert von compareto ist wie folgt zu wählen: -1) der this-string liegt lexikografisch vor dem String s; 0) beide Strings sind gleich; 1) s liegt lexikografisch vor dem this-string. Die Methode tocstring soll das Gegenstück zum Typkonvertierungs-Konstruktor darstellen. Damit wir Funktionen, welche einen herkömmlichen C-String benötigen, auch mit unserer String-Klasse bedienen können, bieten wir die Methode tocstring an, welche einen 0-terminierten C-String erzeugt und zurückliefert. Eine mögliche Implementierung dieser Methode könnte wie folgt aussehen: unique_ptr<char[]> String::toCString() const { unique_ptr<char[]> r = unique_ptr<char[]>(new char[m_len + 1]); const char * const tc = m_string.get(); //for (size_t i=0; i < m_len; i++) r[i] = tc[m_start + i]; memcpy(r.get(), tc + m_start, m_len); r[m_len] = '\0'; return move(r); Um sicherzustellen, dass der Aufrufer dieser Methode nicht vergisst, den extra allozierten C-String freizugeben, geben wir ein Zeigerobjekt zurück, welches für den automatischen Speicherabbau sorgen wird: String s("abc"); { auto up = s.tocstring(); // hier wird der C-String auf dem Heap angelegt cout << up.get() << endl; // Ausgabe des C-Strings auf der Konsole // hier wird der C-String wieder vom Heap entfernt 1.3 Testprogramm Editieren Sie die Datei main.cpp in der nachfolgenden Art, führen Sie den Build-Prozess aus und starten Sie die Ausführung zuerst ohne und danach mit Debugger. Gehen Sie mit F11 in die einzelnen 3

4 Methoden hinein, um zu sehen, wie Ihre Konstruktoren ausgeführt werden. So lange keine Laufzeitfehler auftreten ist so weit alles ok. Natürlich sagt das noch nichts über die Korrektheit der Implementierung aus. Sobald Sie mehr Methoden der Klasse implementiert haben, sollten Sie dieses Testprogramm um die neuen Methoden bereichern. #include "stdafx.h" // diese Zeile nur, fall Ihr Projekt eine solche Datei enthält #include "MyString.h" // die hier verwende Klasse heisst String using namespace std; // wird evtl. erst später verwendet int main() { String s0; String s1(""); String s2("abc"); String s00(s0); String s11(s1); String s22(s2); 1.4 Unit-Tests In diesem Abschnitt lernen Sie, wie Sie in VS 2012 ein natives C++ Unit-Test-Projekt anlegen und ausführen können. Zur Erklärung gehen wir von folgender Dateistruktur aus: \Uebung1 - \MyString - \UnitTest Der Ordner Uebung1 enthält die Solution-Datei Uebung1.sln und der Ordner MyString das Projekt MyString.vcxproj und die entsprechenden Quellcode-Dateien. Der Unterordner UnitTest wird erst jetzt durch Erstellung eines neuen Projektes erzeugt. Mit Rechtsklick im Solution Explorer auf Solution Uebung1 können Sie Add/New Project auswählen. Wählen Sie dann unter Visual C++/Test das Native Unit Test Project aus. Ändern Sie den Projektnamen zu UnitTest und drücken Sie auf OK. Nun wird das Projekt im oben gezeigten Ordner mit der Testdatei unittest1.cpp automatisch angelegt. Editieren Sie die Testdatei wie nachfolgend. Beachten Sie bitte, dass vorerst MyString.h nicht bekannt ist, weil diese Datei in einem anderen Verzeichnis liegt. #include "stdafx.h" #include "CppUnitTest.h" #include "MyString.h" using namespace Microsoft::VisualStudio::CppUnitTestFramework; namespace UnitTest { TEST_CLASS(MyString) { public: TEST_METHOD(Construction) { String s0; String s1(""); String s2("abc"); String s00(s0); String s11(s1); String s22(s2); TEST_METHOD(Length) { Assert::IsTrue(String().length() == 0); Assert::IsTrue(String("").length() == 0); Assert::IsTrue(String("abc").length() == 3); ; Damit Sie Ihre String-Klasse in diesem Unit-Testprojekt verwenden können, müssen Sie über die Projekteinstellungen dem Compiler und Linker die nachfolgenden Angaben machen: 4

5 Im oberen Dialog sagen Sie dem Compiler wo er die Include-Datei MyString.h findet und dem Linker, wo er die Library oder Object-Datei findet. Im unteren Dialog sagen Sie dem Linker, in welcher Kompilationseinheit (MyString.obj) sich der entsprechende Object-Code befindet. Entwickeln Sie nun verschiedene, sinnvolle Testmethoden analog zu TEST_METHOD(Construction), um Ihre Methoden zu testen. Mehr Informationen dazu finden Sie hier: Die Code-Abdeckung Ihrer Tests können Sie mit dem Code-Coverage-Tool ( TEST\Analyze Code Coverage\All Tests ) überprüfen. Bei einer Abdeckung von nahezu 100% Ihrer String-Klasse wissen Sie, dass die Tests das überprüfen, was Sie programmiert haben. Das bedeutet aber noch lange nicht, dass der Code das tut, was er tun sollte. Um das herauszufinden, müssen die Tests nicht vom Programmierer, sondern vom Anwender oder Auftraggeber angefertigt werden. Aus diesem Grund werden Sie nach Abgabe Ihrer String-Klasse von uns einen Unit-Test erhalten, den Sie ausführen müssen. Falls unsere Tests nicht alle erfolgreich sind und die Code-Coverage ungenügend ist, so müssen Sie Ihren Code nochmals überarbeiten. Geben Sie den überarbeiteten Code mit den markierten Änderungen, zusammen mit einem Screenshot ab, wo die erfüllten Tests und die Code-Coverage- Results ersichtlich sind. 1.5 Verfeinerung der String-Klasse Kehren wir zu unserer String-Klasse zurück. Bis jetzt haben wir zwei wichtigen Aspekten noch zu wenig Beachtung geschenkt: der Unveränderbarkeit von String-Objekten und der Move-Semantik. Wenden wir uns zuerst der Unveränderbarkeit zu. Wir haben in unserem Klassen-Design vorgesehen, dass von String nicht abgeleitet werden kann und dass die Instanzmethoden nur lesenden Zugriff auf die Instanz haben. So weit so gut. Wie sieht es aber mit dem vom System automatisch angebotenen Zuweisungsoperator aus? Würde nicht gerade eine Zuweisung der Art String s1 = "abc", s2 = "def"; s1 = s2; die Unveränderbarkeit von s1 auf fundamentale Art verletzen? Bevor wir diese Frage aus C++-Sicht beantworten, betrachten wir zuerst was Java in genau dieser Situation tun würde. In Java sind s1 und s2 Referenzen auf String-Objekte, die auf dem Heap verwaltet werden. Ein String-Objekt selber enthält dann eine Referenz auf eine unveränderbare Zeichenkette (String-Literal). Dadurch ist es 5

6 möglich, dass ein mittels s1.substring() neu erzeugtes String-Objekt auf das gleiche String-Literal verweist, wie das von s1 referenzierte String-Objekt. Die Zuweisung s1 := s2 verändert an den beiden String-Objekten und somit auch an den beiden String-Literalen gar nichts. Die Referenz s1 zeigt nun einfach auch auf das von s2 referenzierte String-Objekt. Der Garbage-Collector kann dann das unreferenzierte String-Objekt vom Heap wegräumen. Ob das String-Literal selber entfernt werden kann, hängt davon ab, in welchem Speicher das String-Literal angelegt worden ist und ob es noch andere String-Objekte gibt, welche auf das gleiche String-Literal verweisen. Bei unserer C++ String-Klasse sieht das sehr ähnlich aus. Nur sind s1 und s2 keine Referenzen, sondern die eigentlichen String-Objekte, die auf dem Stack liegen. Die darin verwendeten Character- Arrays (entsprechen den String-Literalen in Java) liegen hingegen auf dem Heap. Die Zuweisung s1 := s2 verändert zwar das String-Objekt s1, indem eine flache Kopie von s2 erstellt wird, lässt aber das von s1 bisher verwendete Character-Array unverändert oder löscht es allenfalls vom Heap, falls es anderweitig nicht mehr gebraucht wird. Dieses automatische Aufräumen wird durch die Verwendung der smarten Zeigerobjekte erreicht. Das heisst, die Ausführung der Zuweisung ist zwar aus speichertechnischen Gründen unproblematisch, verletzt aber die Unveränderbarkeit des String-Objekts welche eventuell zu rigid formuliert worden ist, weil nur die Unveränderbarkeit des Character-Arrays notwendig ist. Möchte man trotzdem den Einsatz des Zuweisungsoperators verhindern, welche Möglichkeiten bieten sich dazu? Erarbeiten Sie dazu zwei mögliche Vorschläge aus Move-Semantik Die Move-Semantik ist vor allem für Objekte wichtig, bei denen der Kopierkonstruktor eine tiefe Kopie eines grossen Objektes anlegt. Das ist in unserer String-Klasse nicht der Fall. Dennoch kann die Move-Semantik helfen, überflüssige Kopien von temporären Objekten zu vermeiden. Das wollen wir an folgendem Beispiel ausprobieren: int main() { String s = String("ab").concat("cd").concat("ef"); cout << s << endl; Überlegen wir uns mal genau, welche String-Objekte mit welchen Konstruktoren erstellt und wann welche Objekte wieder gelöscht werden. Gehen wir vorerst davon aus, dass für unsere String-Klasse keine Move- Semantik zur Verfügung steht. String("ab") ruft offensichtlich den Typkonvertierungs-Konstruktor auf. Die Methode concat erwartet eine Referenz auf ein String-Objekt. Als Parameter übergeben wir aber einen C-String. Das bedeutet, das System ruft den Typkonvertierungs-Konstruktor je einmal implizit für "cd" und "ef" auf und erzeugt temporäre String-Objekte auf dem Stack. Nun kann String("ab").concat("cd") ausgeführt werden. In concat wird zuerst mit dem Standardkonstruktor ein neues, leeres String-Objekt erzeugt. In diesem wird dann ein Character-Array mit dem Inhalt "abcd" angelegt und das neue String-Objekt wird byvalue zurückgegeben. Das bedeutet konkret, dass auf dem Stack eine mit dem Kopierkonstruktor erzeugte temporäre Kopie des zurückgegebenen Objektes gespeichert wird und das lokale String- Objekt ("abcd") der Methode concat mit dem Destruktor zerstört wird. Der gleiche Ablauf wiederholt sich für den zweiten Aufruf von concat, wobei diesmal der Kopierkonstruktor von s aufgerufen wird. Wiederum wird das lokale String-Objekt ("abcdef") der Methode concat mit dem Destruktor zerstört. Zudem können alle temporären String-Objekte ("abcd", "ab", "cd", "ef") zerstört werden. Ganz zum Schluss, nachdem s auf der Konsole ausgegeben worden ist, wird auch noch s zerstört, weil das Programm zu Ende ist. Implementieren Sie nun den Verschiebekonstruktor für Ihre String-Klasse, so dass er auch eine kurze Meldung auf die Konsole ausgibt und führen Sie dann dasselbe Programm wie oben aus. Dokumentieren Sie in der gezeigten Form (Screenshot und Text), was nun genau passiert. 2 Zusammenfassung der Aufgaben Hier finden Sie nochmals eine Zusammenstellung aller Aufgaben. 1. String-Klasse vorerst ohne Move-Semantik entwickeln. 2. Eigene Unit-Tests entwickeln und String-Klasse damit testen. 3. Vorschlag ausarbeiten, wie der Einsatz des Zuweisungsoperators unterbunden werden kann. 4. Verschiebekonstruktor für die String-Klasse entwickeln und Unterschied dokumentieren. 5. Vollständige String-Klasse, Unit-Tests, Unit-Test-Resultate und Code-Coverage abgeben. 6. Von uns zur Verfügung gestellte Unit-Tests ausführen. 7. Falls die Tests nicht erfolgreich sind, passen Sie Ihre String-Klasse an. 8. Überarbeitete String-Klasse, Unit-Test-Resultate und Code-Coverage abgeben. 6

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

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

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

Ü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 zum Arbeiten mit Microsoft Visual C++ 2010 Express Edition

Einführung zum Arbeiten mit Microsoft Visual C++ 2010 Express Edition In den nachfolgenden Schritten finden Sie beschrieben, wie Sie in der Entwicklungsumgebung Microsoft Visual Studio 2010 eine Projektmappe, ein Projekt und einen ersten Quellcode erstellen, diesen kompilieren,

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

Menü Macro. WinIBW2-Macros unter Windows7? Macros aufnehmen

Menü Macro. WinIBW2-Macros unter Windows7? Macros aufnehmen Menü Macro WinIBW2-Macros unter Windows7?... 1 Macros aufnehmen... 1 Menübefehle und Schaltflächen in Macros verwenden... 4 Macros bearbeiten... 4 Macros löschen... 5 Macro-Dateien... 5 Macros importieren...

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

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

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

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

Starten Sie Eclipse: Hier tragen sie Ihr Arbeitsverzeichnis ein. Zu Hause z.b. c:\workspace.

Starten Sie Eclipse: Hier tragen sie Ihr Arbeitsverzeichnis ein. Zu Hause z.b. c:\workspace. Starten Sie Eclipse: Abgesehen vom Kommandozeilenfenster, auf welches wir später eingehen, öffnet sich ein Dialog (in der FH vermutlich nicht, überspringen Sie in diesem Fall): Hier tragen sie Ihr Arbeitsverzeichnis

Mehr

Stundenerfassung Version 1.8 Anleitung Arbeiten mit Replikaten

Stundenerfassung Version 1.8 Anleitung Arbeiten mit Replikaten Stundenerfassung Version 1.8 Anleitung Arbeiten mit Replikaten 2008 netcadservice GmbH netcadservice GmbH Augustinerstraße 3 D-83395 Freilassing Dieses Programm ist urheberrechtlich geschützt. Eine Weitergabe

Mehr

Gruppenrichtlinien und Softwareverteilung

Gruppenrichtlinien und Softwareverteilung Gruppenrichtlinien und Softwareverteilung Ergänzungen zur Musterlösung Bitte lesen Sie zuerst die gesamte Anleitung durch! Vorbemerkung: Die Begriffe OU (Organizational Unit) und Raum werden in der folgenden

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

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 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

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

Datensicherung. Beschreibung der Datensicherung

Datensicherung. Beschreibung der Datensicherung Datensicherung Mit dem Datensicherungsprogramm können Sie Ihre persönlichen Daten problemlos Sichern. Es ist möglich eine komplette Datensicherung durchzuführen, aber auch nur die neuen und geänderten

Mehr

FuxMedia Programm im Netzwerk einrichten am Beispiel von Windows 7

FuxMedia Programm im Netzwerk einrichten am Beispiel von Windows 7 FuxMedia Programm im Netzwerk einrichten am Beispiel von Windows 7 Die Installation der FuxMedia Software erfolgt erst NACH Einrichtung des Netzlaufwerks! Menüleiste einblenden, falls nicht vorhanden Die

Mehr

4 Aufzählungen und Listen erstellen

4 Aufzählungen und Listen erstellen 4 4 Aufzählungen und Listen erstellen Beim Strukturieren von Dokumenten und Inhalten stellen Listen und Aufzählungen wichtige Werkzeuge dar. Mit ihnen lässt sich so ziemlich alles sortieren, was auf einer

Mehr

4. BEZIEHUNGEN ZWISCHEN TABELLEN

4. BEZIEHUNGEN ZWISCHEN TABELLEN 4. BEZIEHUNGEN ZWISCHEN TABELLEN Zwischen Tabellen können in MS Access Beziehungen bestehen. Durch das Verwenden von Tabellen, die zueinander in Beziehung stehen, können Sie Folgendes erreichen: Die Größe

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

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

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

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

Mehr

Abschluss Version 1.0

Abschluss Version 1.0 Beschreibung Der Abschluss wird normalerweise nur einmal jährlich durchgeführt. Dieses Tech-Note soll helfen, diesen doch seltenen aber periodisch notwendigen Vorgang problemlos durchzuführen. Abschlussvarianten

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

Installation und Inbetriebnahme von Microsoft Visual C++ 2010 Express

Installation und Inbetriebnahme von Microsoft Visual C++ 2010 Express Howto Installation und Inbetriebnahme von Microsoft Visual C++ 2010 Express Peter Bitterlich Markus Langer 12. Oktober 2012 Zusammenfassung Dieses Dokument erklärt Schritt für Schritt die Installation

Mehr

Folge 18 - Vererbung

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

Mehr

Informationen zur Verwendung von Visual Studio und cmake

Informationen zur Verwendung von Visual Studio und cmake Inhaltsverzeichnis Informationen zur Verwendung von Visual Studio und cmake... 2 Erste Schritte mit Visual Studio... 2 Einstellungen für Visual Studio 2013... 2 Nutzung von cmake... 6 Installation von

Mehr

Handbuch ECDL 2003 Basic Modul 5: Datenbank Access starten und neue Datenbank anlegen

Handbuch ECDL 2003 Basic Modul 5: Datenbank Access starten und neue Datenbank anlegen Handbuch ECDL 2003 Basic Modul 5: Datenbank Access starten und neue Datenbank anlegen Dateiname: ecdl5_01_02_documentation_standard.doc Speicherdatum: 14.02.2005 ECDL 2003 Basic Modul 5 Datenbank - Access

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

AutoCAD 2007 - Dienstprogramm zur Lizenzübertragung

AutoCAD 2007 - Dienstprogramm zur Lizenzübertragung AutoCAD 2007 - Dienstprogramm zur Lizenzübertragung Problem: Um AutoCAD abwechselnd auf mehreren Rechnern einsetzen zu können konnte man bis AutoCAD 2000 einfach den Dongle umstecken. Seit AutoCAD 2000i

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

Software-Engineering und Optimierungsanwendungen in der Thermodynamik

Software-Engineering und Optimierungsanwendungen in der Thermodynamik Software-Engineering und Optimierungsanwendungen in der Thermodynamik Software-Engineering 5 Programmentwicklung und Debuggen mit IDE und CASE-Tools Übungen Prof. Dr. Rolf Dornberger OPTSWE_SWE: 5 Programmentwicklung

Mehr

Ordnung auf/im (Win-)PC bzw. der Festplatte

Ordnung auf/im (Win-)PC bzw. der Festplatte Ordnung auf/im (Win-)PC bzw. der Festplatte Ein Versuch da was zu (er)klären von Uwe Troll Vorbemerkung: Alles was später hier gezeigt wird, wird auf Ihrem PC anders aussehen! Das Prinzip bleibt aber gleich.

Mehr

Objektorientierte Programmierung mit C++ Vector und List

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

Mehr

2. Im Admin Bereich drücken Sie bitte auf den roten Button Webseite bearbeiten, sodass Sie in den Bearbeitungsbereich Ihrer Homepage gelangen.

2. Im Admin Bereich drücken Sie bitte auf den roten Button Webseite bearbeiten, sodass Sie in den Bearbeitungsbereich Ihrer Homepage gelangen. Bildergalerie einfügen Wenn Sie eine Vielzahl an Bildern zu einem Thema auf Ihre Homepage stellen möchten, steht Ihnen bei Schmetterling Quadra das Modul Bildergalerie zur Verfügung. Ihre Kunden können

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

TESTEN SIE IHR KÖNNEN UND GEWINNEN SIE!

TESTEN SIE IHR KÖNNEN UND GEWINNEN SIE! 9 TESTEN SIE IHR KÖNNEN UND GEWINNEN SIE! An den SeniorNETclub 50+ Währinger Str. 57/7 1090 Wien Und zwar gleich in doppelter Hinsicht:!"Beantworten Sie die folgenden Fragen und vertiefen Sie damit Ihr

Mehr

Lösungsvorschlag zum Übungsblatt 1 zur Vorlesung Informatik II / WS2001/02

Lösungsvorschlag zum Übungsblatt 1 zur Vorlesung Informatik II / WS2001/02 Lösungsvorschlag zum Übungsblatt 1 zur Vorlesung Informatik II / WS2001/02 Prof. Dr.-Ing. Holger Vogelsang (FH-Karlsruhe) Dipl.-Inform. (FH) Gudrun Keller (FH-Karlsruhe) Dipl.-Inform. Mathias Supp (.riess

Mehr

Der neue persönliche Bereich/die CommSy-Leiste

Der neue persönliche Bereich/die CommSy-Leiste Der neue persönliche Bereich/die CommSy-Leiste Mit der neue CommSy-Version wurde auch der persönliche Bereich umstrukturiert. Sie finden all Ihre persönlichen Dokumente jetzt in Ihrer CommSy-Leiste. Ein

Mehr

192.168.0.1. Wenn wir also versuchen auf einen anderen PC zuzugreifen, dann können wir sowohl per Name als auch mit der Adresse suchen.

192.168.0.1. Wenn wir also versuchen auf einen anderen PC zuzugreifen, dann können wir sowohl per Name als auch mit der Adresse suchen. Windows Netzwerk Sie haben einen oder mehrere PC mit einander verbunden? Dann sollte man das auch nutzen. Generelles: Ein PC hat in der Regel IMMER eine feste Nummer / Adresse (egal ob wechselnd oder immer

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

Erstellen der Barcode-Etiketten:

Erstellen der Barcode-Etiketten: Erstellen der Barcode-Etiketten: 1.) Zuerst muss die Schriftart Code-39-Logitogo installiert werden! Das ist eine einmalige Sache und muss nicht zu jeder Börse gemacht werden! Dazu speichert man zunächst

Mehr

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

Es sollte die MS-DOS Eingabeaufforderung starten. Geben Sie nun den Befehl javac ein. Schritt 1: Installation des Javacompilers JDK. Der erste Start mit Eclipse Bevor Sie den Java-Compiler installieren sollten Sie sich vergewissern, ob er eventuell schon installiert ist. Gehen sie wie folgt

Mehr

Wordpress: Blogbeiträge richtig löschen, archivieren und weiterleiten

Wordpress: Blogbeiträge richtig löschen, archivieren und weiterleiten Wordpress: Blogbeiträge richtig löschen, archivieren und weiterleiten Version 1.0 Wordpress: Blogbeiträge richtig löschen, archivieren und weiterleiten In unserer Anleitung zeigen wir Dir, wie Du Blogbeiträge

Mehr

1 Einleitung. Lernziele. automatische Antworten bei Abwesenheit senden. Einstellungen für automatische Antworten Lerndauer. 4 Minuten.

1 Einleitung. Lernziele. automatische Antworten bei Abwesenheit senden. Einstellungen für automatische Antworten Lerndauer. 4 Minuten. 1 Einleitung Lernziele automatische Antworten bei Abwesenheit senden Einstellungen für automatische Antworten Lerndauer 4 Minuten Seite 1 von 18 2 Antworten bei Abwesenheit senden» Outlook kann während

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

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

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

Mehr

L10N-Manager 3. Netzwerktreffen der Hochschulübersetzer/i nnen Mannheim 10. Mai 2016

L10N-Manager 3. Netzwerktreffen der Hochschulübersetzer/i nnen Mannheim 10. Mai 2016 L10N-Manager 3. Netzwerktreffen der Hochschulübersetzer/i nnen Mannheim 10. Mai 2016 Referentin: Dr. Kelly Neudorfer Universität Hohenheim Was wir jetzt besprechen werden ist eine Frage, mit denen viele

Mehr

Bereich METIS (Texte im Internet) Zählmarkenrecherche

Bereich METIS (Texte im Internet) Zählmarkenrecherche Bereich METIS (Texte im Internet) Zählmarkenrecherche Über die Zählmarkenrecherche kann man nach der Eingabe des Privaten Identifikationscodes einer bestimmten Zählmarke, 1. Informationen zu dieser Zählmarke

Mehr

Internationales Altkatholisches Laienforum

Internationales Altkatholisches Laienforum Internationales Altkatholisches Laienforum Schritt für Schritt Anleitung für die Einrichtung eines Accounts auf admin.laienforum.info Hier erklären wir, wie ein Account im registrierten Bereich eingerichtet

Mehr

HANDBUCH PHOENIX II - DOKUMENTENVERWALTUNG

HANDBUCH PHOENIX II - DOKUMENTENVERWALTUNG it4sport GmbH HANDBUCH PHOENIX II - DOKUMENTENVERWALTUNG Stand 10.07.2014 Version 2.0 1. INHALTSVERZEICHNIS 2. Abbildungsverzeichnis... 3 3. Dokumentenumfang... 4 4. Dokumente anzeigen... 5 4.1 Dokumente

Mehr

Flash Videos einbinden

Flash Videos einbinden Flash Videos einbinden Im Kapitel Videos einbinden ( - ) haben Sie gesehen, wie man einfach und ohne Zusatzprogramme kleine Videoclips auf seiner einbinden kann. Ich persönlich würde jedem dieses Verfahren

Mehr

Downloadfehler in DEHSt-VPSMail. Workaround zum Umgang mit einem Downloadfehler

Downloadfehler in DEHSt-VPSMail. Workaround zum Umgang mit einem Downloadfehler Downloadfehler in DEHSt-VPSMail Workaround zum Umgang mit einem Downloadfehler Downloadfehler bremen online services GmbH & Co. KG Seite 2 Inhaltsverzeichnis Vorwort...3 1 Fehlermeldung...4 2 Fehlerbeseitigung...5

Mehr

5. Tutorium zu Programmieren

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

Mehr

teamsync Kurzanleitung

teamsync Kurzanleitung 1 teamsync Kurzanleitung Version 4.0-19. November 2012 2 1 Einleitung Mit teamsync können Sie die Produkte teamspace und projectfacts mit Microsoft Outlook synchronisieren.laden Sie sich teamsync hier

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

Hilfen zur Verwendung der Word-Dokumentvorlage des BIS-Verlags

Hilfen zur Verwendung der Word-Dokumentvorlage des BIS-Verlags Hilfen zur Verwendung der Word-Dokumentvorlage des BIS-Verlags 2013 style_sheet_bis_verlag_20130513 Arbeiten mit der Dokumentvorlage des BIS-Verlags... 3 Dokumentvorlage Wofür?... 3 Wohin mit der Dokumentvorlage...

Mehr

Anleitung Postfachsystem Inhalt

Anleitung Postfachsystem Inhalt Anleitung Postfachsystem Inhalt 1 Allgemeines... 2 2 Einloggen... 2 3 Prüfen auf neue Nachrichten... 2 4 Lesen von neuen Nachrichten... 3 5 Antworten auf Nachrichten... 4 6 Löschen von Nachrichten... 4

Mehr

Erstellen einer digitalen Signatur für Adobe-Formulare

Erstellen einer digitalen Signatur für Adobe-Formulare Erstellen einer digitalen Signatur für Adobe-Formulare (Hubert Straub 24.07.13) Die beiden Probleme beim Versenden digitaler Dokumente sind einmal die Prüfung der Authentizität des Absenders (was meist

Mehr

Mediator 9 - Lernprogramm

Mediator 9 - Lernprogramm Mediator 9 - Lernprogramm Ein Lernprogramm mit Mediator erstellen Mediator 9 bietet viele Möglichkeiten, CBT-Module (Computer Based Training = Computerunterstütztes Lernen) zu erstellen, z. B. Drag & Drop

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

Speicher in der Cloud

Speicher in der Cloud Speicher in der Cloud Kostenbremse, Sicherheitsrisiko oder Basis für die unternehmensweite Kollaboration? von Cornelius Höchel-Winter 2013 ComConsult Research GmbH, Aachen 3 SYNCHRONISATION TEUFELSZEUG

Mehr

Benutzerhandbuch DesignMaster II

Benutzerhandbuch DesignMaster II Benutzerhandbuch DesignMaster II Vielen Dank für Ihre Entscheidung zum Design Master! Zusätzliche Anleitungen finden Sie auf der Webseite: http://www.craftrobo.de Stand: Juni 2010 medacom graphics GmbH

Mehr

CodeSaver. Vorwort. Seite 1 von 6

CodeSaver. Vorwort. Seite 1 von 6 CodeSaver Vorwort Die Flut der Passwörter nimmt immer mehr zu. Kontopasswörter, Passwörter für Homepages, Shellzugriffe, Registrierungscodes für Programme und und und. Da ich aber nicht sonderlich viel

Mehr

State Machine Workflow mit InfoPath Formularen für SharePoint 2010 Teil 6

State Machine Workflow mit InfoPath Formularen für SharePoint 2010 Teil 6 State Machine Workflow mit InfoPath Formularen für SharePoint 2010 Teil 6 Abstract: Im sechsten Teil der Workflow Serie verbinden wir die Formulare aus dem vorigen Teil mit unserem Workflow. Teil 6: InfoPath

Mehr

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

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

Mehr

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

Dokumentenverwaltung

Dokumentenverwaltung Aktivieren der Dokumentenverwaltung Dokumentenverwaltung Die Dokumentenverwaltung ist ein Modul und wird über Ihre Lizenzdatei freigeschaltet. Ist die Dokumentenverwaltung in der Lizenzdatei nicht aktiviert,

Mehr

Das DAAD-PORTAL. Prozess der Antragstellung in dem SAPbasierten Bewerbungsportal des DAAD.

Das DAAD-PORTAL. Prozess der Antragstellung in dem SAPbasierten Bewerbungsportal des DAAD. Das DAAD-PORTAL Prozess der Antragstellung in dem SAPbasierten Bewerbungsportal des DAAD. November 2012 Man findet das neue Portal auf der Webseite vom DAAD : www.daad.de/ Danach erscheint ein neues Fenster,

Mehr

Anleitung zur Daten zur Datensicherung und Datenrücksicherung. Datensicherung

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

Mehr

Historical Viewer. zu ETC5000 Benutzerhandbuch 312/15

Historical Viewer. zu ETC5000 Benutzerhandbuch 312/15 Historical Viewer zu ETC5000 Benutzerhandbuch 312/15 Inhaltsverzeichnis 1 Allgemeine Hinweise... 3 1.1 Dokumentation...3 2 Installation... 3 3 Exportieren der Logdatei aus dem ETC 5000... 3 4 Anlegen eines

Mehr

1. Adressen für den Serienversand (Briefe Katalogdruck Werbung/Anfrage ) auswählen. Die Auswahl kann gespeichert werden.

1. Adressen für den Serienversand (Briefe Katalogdruck Werbung/Anfrage ) auswählen. Die Auswahl kann gespeichert werden. Der Serienversand Was kann man mit der Maske Serienversand machen? 1. Adressen für den Serienversand (Briefe Katalogdruck Werbung/Anfrage ) auswählen. Die Auswahl kann gespeichert werden. 2. Adressen auswählen,

Mehr

Windows 7 Ordner und Dateien in die Taskleiste einfügen

Windows 7 Ordner und Dateien in die Taskleiste einfügen WI.005, Version 1.1 07.04.2015 Kurzanleitung Windows 7 Ordner und Dateien in die Taskleiste einfügen Möchten Sie Ordner oder Dateien direkt in die Taskleiste ablegen, so ist das nur mit einem Umweg möglich,

Mehr

Universal Gleismauer Set von SB4 mit Tauschtextur u. integrierten Gleismauerabschlüssen!

Universal Gleismauer Set von SB4 mit Tauschtextur u. integrierten Gleismauerabschlüssen! Stefan Böttner (SB4) März 2013 Universal Gleismauer Set von SB4 mit Tauschtextur u. integrierten Gleismauerabschlüssen! Verwendbar ab EEP7.5(mitPlugin5) + EEP8 + EEP9 Abmessung: (B 12m x H 12m) Die Einsatzhöhe

Mehr

Nicht kopieren. Der neue Report von: Stefan Ploberger. 1. Ausgabe 2003

Nicht kopieren. Der neue Report von: Stefan Ploberger. 1. Ausgabe 2003 Nicht kopieren Der neue Report von: Stefan Ploberger 1. Ausgabe 2003 Herausgeber: Verlag Ploberger & Partner 2003 by: Stefan Ploberger Verlag Ploberger & Partner, Postfach 11 46, D-82065 Baierbrunn Tel.

Mehr

P&P Software - Adressexport an Outlook 05/29/16 14:44:26

P&P Software - Adressexport an Outlook 05/29/16 14:44:26 Adressexport an Outlook Wozu? Aus EASY können viele Daten im Excelformat ausgegeben werden. Diese Funktion kann zum Beispiel zum Export von Lieferantenadressen an Outlook genutzt werden. Hinweis Wir können

Mehr

Animationen erstellen

Animationen erstellen Animationen erstellen Unter Animation wird hier das Erscheinen oder Bewegen von Objekten Texten und Bildern verstanden Dazu wird zunächst eine neue Folie erstellt : Einfügen/ Neue Folie... Das Layout Aufzählung

Mehr

Q & A: Representation Tool

Q & A: Representation Tool neoapps GmbH Sägewerkstraße 5 D-83416 Saaldorf-Surheim GmbH Tel: +49 (0)86 54-77 88 56-0 Fax: +49 (0)86 54-77 88 56-6 info@neoapps.de Q & A: Representation Tool REP ist ein Werkzeug für die schnellen und

Mehr

Institut für Programmierung und Reaktive Systeme 26. April 2013. Programmieren II. 10. Übungsblatt

Institut für Programmierung und Reaktive Systeme 26. April 2013. Programmieren II. 10. Übungsblatt Technische Universität Braunschweig Dr. Werner Struckmann Institut für Programmierung und Reaktive Systeme 26. April 2013 Programmieren II 10. Übungsblatt Hinweis: Insgesamt werden in diesem Semester fünf

Mehr

Step by Step Softwareverteilung unter Novell. von Christian Bartl

Step by Step Softwareverteilung unter Novell. von Christian Bartl Step by Step Softwareverteilung unter Novell von Softwareverteilung unter Novell 1) Starten von einfachen *.EXE-Dateien: Starten sie ConsoleOne Erstellen sie eine eigene Organisationseinheit für ihre Anwendungen

Mehr

Medea3 Print-Client (m3_print)

Medea3 Print-Client (m3_print) Medea3 Print-Client (m3_print) Installationsanleitung Installationsanleitung m3_print.exe...2 1. Installieren von Ghostskript und Ghostview...2 1. Ghostskript...2 2. Ghostview...3 2. Kopieren des Print-Client-Programms...6

Mehr

! " # $ " % & Nicki Wruck worldwidewruck 08.02.2006

!  # $  % & Nicki Wruck worldwidewruck 08.02.2006 !"# $ " %& Nicki Wruck worldwidewruck 08.02.2006 Wer kennt die Problematik nicht? Die.pst Datei von Outlook wird unübersichtlich groß, das Starten und Beenden dauert immer länger. Hat man dann noch die.pst

Mehr

1. Einführung 2. 2. Erstellung einer Teillieferung 2. 3. Erstellung einer Teilrechnung 6

1. Einführung 2. 2. Erstellung einer Teillieferung 2. 3. Erstellung einer Teilrechnung 6 Inhalt 1. Einführung 2 2. Erstellung einer Teillieferung 2 3. Erstellung einer Teilrechnung 6 4. Erstellung einer Sammellieferung/ Mehrere Aufträge zu einem Lieferschein zusammenfassen 11 5. Besonderheiten

Mehr

Hex Datei mit Atmel Studio 6 erstellen

Hex Datei mit Atmel Studio 6 erstellen Hex Datei mit Atmel Studio 6 erstellen Es werden generell keine Atmel Studio Dateien ins Repository geladen, da jeder seine Dateien an anderen Orten liegen hat und weil nicht jeder das Atmel Studio 6 benutzt.

Mehr

Anleitung zur Verwendung der VVW-Word-Vorlagen

Anleitung zur Verwendung der VVW-Word-Vorlagen Anleitung zur Verwendung der VVW-Word-Vorlagen v1.0. Jun-15 1 1 Vorwort Sehr geehrte Autorinnen und Autoren, wir haben für Sie eine Dokumentenvorlage für Microsoft Word entwickelt, um Ihnen die strukturierte

Mehr

1 Einleitung. Lernziele. Symbolleiste für den Schnellzugriff anpassen. Notizenseiten drucken. eine Präsentation abwärtskompatibel speichern

1 Einleitung. Lernziele. Symbolleiste für den Schnellzugriff anpassen. Notizenseiten drucken. eine Präsentation abwärtskompatibel speichern 1 Einleitung Lernziele Symbolleiste für den Schnellzugriff anpassen Notizenseiten drucken eine Präsentation abwärtskompatibel speichern eine Präsentation auf CD oder USB-Stick speichern Lerndauer 4 Minuten

Mehr

Jederzeit Ordnung halten

Jederzeit Ordnung halten Kapitel Jederzeit Ordnung halten 6 auf Ihrem Mac In diesem Buch war bereits einige Male vom Finder die Rede. Dieses Kapitel wird sich nun ausführlich diesem so wichtigen Programm widmen. Sie werden das

Mehr

Lernerfolge sichern - Ein wichtiger Beitrag zu mehr Motivation

Lernerfolge sichern - Ein wichtiger Beitrag zu mehr Motivation Lernerfolge sichern - Ein wichtiger Beitrag zu mehr Motivation Einführung Mit welchen Erwartungen gehen Jugendliche eigentlich in ihre Ausbildung? Wir haben zu dieser Frage einmal die Meinungen von Auszubildenden

Mehr

Was meinen die Leute eigentlich mit: Grexit?

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

Mehr

Schrittweise Anleitung zur Erstellung einer Angebotseite 1. In Ihrem Dashboard klicken Sie auf Neu anlegen, um eine neue Seite zu erstellen.

Schrittweise Anleitung zur Erstellung einer Angebotseite 1. In Ihrem Dashboard klicken Sie auf Neu anlegen, um eine neue Seite zu erstellen. Schrittweise Anleitung zur Erstellung einer Angebotseite 1. In Ihrem Dashboard klicken Sie auf Neu anlegen, um eine neue Seite zu erstellen. Klicken Sie auf Neu anlegen, um Ihre neue Angebotseite zu erstellen..

Mehr

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

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

Mehr

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

Hochschule Aalen. OpenVPN. Anleitung zur Installation

Hochschule Aalen. OpenVPN. Anleitung zur Installation Hochschule Aalen OpenVPN Anleitung zur Installation Gold, Sabine / Holst, Matthias Januar 2016 Vorwort Bestimmte Dienste der Hochschule sind nicht über das Internet erreichbar, sondern können nur hausintern

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

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

Dateimanagement in Moodle Eine Schritt-für

Dateimanagement in Moodle Eine Schritt-für Übersicht: Lehrende können Dateien in einen Moodle-Kurs hochladen, in Verzeichnissen verwalten und für Studierende zugänglich machen. Jeder Moodle-Kurs hat einen Hauptordner Dateien im Administrationsblock.

Mehr