In der Computersprache C ist die Standardmethode zur Behandlung von Matrizen durch
|
|
- Jonas Gärtner
- vor 8 Jahren
- Abrufe
Transkript
1 Kapitel Matrizen in C++ In der Computersprache C ist die Standardmethode zur Behandlung von Matrizen durch 1 const int n=10; 3 double a[n][n]; gegeben. Allerdings gibt es bei dieser Methode eine Reihe von Schwierigkeiten, insbesondere wenn wir das Array a an eine Funktion übergeben. Eine deutlich zufriedenstellendere Lösung kann mit Hilfe des Klassenkonzeptes erzielt werden. In den folgenden Abschnitten wollen wir eine Matrixklasse programmieren. Diese Klasse wird Ausgangspunkt für die meisten Programme dieses Kurses darstellen..1 Die Matrixklasse matrix Beginnen wir damit, die wichtigsten Elemente dieser Matrixklasse anzuführen. Der Einfachheit halber wollen wir nur reelle Matrizen (Variablentyp double) der Größe n n (Ordnung n) betrachten. Zuerst soll es möglich sein: eine Matrix einer bestimmten Größe zu erstellen (d.h., genügend Speicherplatz für die n n Matrixelemente zu reservieren); auf die Matrixelemente zuzugreifen (d.h., sie zu lesen oder zu verändern). Ein typisches Programm könnte dann von der Form 7
2 8 KAPITEL. MATRIZEN IN C++ 1 matrix a(3); // 3 x 3 Matrix 3 a(1,)=1; 4 a [0][1]=; sein. In der ersten Zeile wird eine 3 3 Matrix deklariert, wobei an dieser Stelle genügend Speicherplatz reserviert werden soll. Zeile 3 zeigt einen Zugriff auf das Matrixelement a 1. Weiters wäre es wünschenswert, dass wir auch in klassischer C-Form a[ i ][ j ] auf das Matrixelement a ij zugreifen können. Wir beginnen nun mit der Implementierung der Matrixklasse. Zuerst öffnen wir zwei Dateien matrix.h und matrix.cc. matrix.h ist die header-datei, in der die Klassendefinition (sowie kürzere Klassenfunktionen) stehen sollen. In matrix.cc werden die längeren Klassenfunktionen ausprogrammiert. Im Folgenden soll angenommen werden, dass Sie die Grundkonzepte von Klassen in C++ kennen und wissen, wie Sie mehrere Dateien kompilieren und binden können (z.b. unter Verwendung von Makefile)..1.1 Grundelemente der Matrixklasse Beginnen wir mit der Klasse matrix.h. Das Gerüst ist von der Form 1 #ifndef matrix h #define matrix h 3 4 class matrix { 5 public: 6 matrix(int n=0); 7 matrix(); 8 9 double& operator() (int i, int j); 10 double operator[] (int i); 11 1 int size () const {return n; } private: 15 int n; 16 double a; 17 }; #endif Die Bedeutung der Zeilen ist wie folgt:
3 .1. DIE MATRIXKLASSE matrix 9 Zeilen 1,, 19. Die übliche Struktur von header files, die verhindert, das eine header- Datei öfters als einmal eingelesen wird. Zeile 6. Konstruktor für die Matrix der Ordnung n. Zeile 7. Destruktor. Zeile 9. Zugriff auf Matrixelemente über a(i, j). Zeile 10. Zugriff auf Matrixelemente über a[ i ][ j ]. Zeile 1. Funktion, die die Ordnung n der Matrix liefert. Zeile 15. Ordnung n der Matrix (d.h., n n-matrix). Zeile 16. Zeiger auf Matrixelemente..1. Speicherung der Matrixelemente Betrachten wir die Matrix A = a 00 a 01 a 0 a 03 a 10 a 11 a 1 a 13 a 0 a 1 a a 3 a 30 a 31 a 3 a 33 wobei wir von der C-Notation Gebrauch gemacht haben, dass Indizes mit 0 beginnen. Wie können wir diese 4 4 Matrix abspeichern? Eine Möglichkeit besteht darin, die Matrixelemente hintereinander in einem Vektor der Länge n n = 16 zu speichern {a 00, a 01, a 0, a 03, a 10, a 11, a 1, a 13, a 0, a 1, a, a 3, a 30, a 31, a 3, a 33 }. Konstruktor und Destruktor. Im Konstruktor der Matrixklasse müssen wir somit einen Speicherplatz der Länge n n reservieren, der dann vom Destruktor wieder freigegeben wird 6 matrix(int n=0) : n( n ) { if (n) a=new double[n n]; } 7 matrix() { if (n) delete[] a; } operator(). Wie greifen wir auf das Matrixelement a ij zu? Offensichtlich über a[ i n+j]. Wir können somit die Klassenfunktion operator() implementieren. Weil sie so kurz ist, können wir sie gleich nach matrix.h schreiben. Zuerst fügen wir vor der Klassendefinition die Zeile
4 10 KAPITEL. MATRIZEN IN C++ #define index(i,j) (( i) n+(j)) ein. Und weiters 9 double& operator() (int i, int j) { return a[index(i,j )]; } operator[]. Schließlich wollen wir noch den normalen Indexoperator implementieren. Wie gehen wir vor? Wenn wir wollen, dass wir mit Hilfe von a[ i ][ j ] auf das Matrixelement a ij einer Matrix A zugreifen können, so muss operator[i] einen Zeiger liefern. Betrachten wir nochmals die Aufteilung des Speicherplatzes a a+n a+ n a+3 n { a 00, a 01, a 0, a 03, a 10, a 11, a 1, a 13, a 0, a 1, a, a 3, a 30, a 31, a 3, a 33 } Wir erkennen, dass der Zeiger a+i n auf den Beginn der i-te Zeile der Matrix A zeigt. Durch (a+i n)[j] können wir also auf a ij zugreifen. Somit können wir die Klassenfunktion 10 double& operator[] (int i) { return a+i n; } vervollständigen. Aufgabe.1 Vervollständigen Sie die Matrixklasse. Schreiben Sie ein Programm, das eine 3 3-Matrix deklariert und sie mit den Matrixelementen besetzt. A = Aufgabe. Betrachten Sie die folgende Funktion: 1 void f(const matrix& a) { 3 cout << a(0,0) << endl; 4 } Warum kommt es beim Kompilieren zu einer Fehlermeldung? Wie kann das Problem behoben werden?
5 .. ALGORITHMEN 11. Algorithmen In diesem Abschnitt wollen wir einige nützliche Funktionen der C++-Standardbibliothek besprechen, die in den header-dateien #include <algorithm> #include <numeric> definiert sind. Ausgansgpunkt sind die sogenannten Iteratoren. Das sind beliebige Objekte, für die gelten soll, dass sie: über den Zuordnungsoperator operator= auf einen bestimmten Anfangswert gesetzt werden können; über die Vergleichsoperatoren operator== und operator!= mit einem anderen Iterator verglichen werden können; über operator++ inkrementiert werden können; über operator einen Wert liefern. Offensichtlich sind Zeiger Iteratoren, da alle Anforderungen 1 double a[10], p; 3 for (p=a; p!=a+n; p++) p=0; erfüllt sind (es gibt allerdings noch eine Reihe weiterer Iteratoren, die Zugriff auf verschiedenst Objekte z.b. Container erlauben). Was können wir mit diesen Iteratoren machen? All die kleinen Aufgaben, die wir im Programmieralltag stets benötigen. In dem obigen Beispiel hätten wir auch 1 fill (a,a+n,0.); schreiben können unter Benutzung der Funktion 1 copy(inputiter first, InputIter last, const double& value); Hierbei wird der Speicherplatz in dem Bereich first bis last mit dem Wert value belegt. Zwei Dinge sind zu beachten, die allgemein für alle Funktionen von numeric und algorithm gelten: es erfolgt keine Überprüfung, ob der Speicherplatz, auf den das Programm zugreift, zuvor reserviert wurde;
6 1 KAPITEL. MATRIZEN IN C++ der letzte Iterator last zeigt auf das Element, das unmittelbar nach dem letzten Element steht, auf das zugegriffen werden soll (in dem obigen Beispiel a+n, d.h. das Element a[n]). Die am häufigsten verwendeten Funktionen sind 1 // aus numeric T accumulate(inputiter first, InputIter last, T init ); 3 T inner product(inputiter first1, InputIter last1, InputIter first, T init ); 4 5 // aus algorithm 6 count(inputiter first, InputIter last, const T& value); 7 copy(inputiter first, InputIter last, OutputIter result ); 8 bool equal(inputiter first1, InputIter last1, InputIter first ); 9 fill (OutputIter first, OutputIter last, const T& value); 10 InputIter max element(inputiter first, InputIter last ); 11 InputIter max element(inputiter first, InputIter last ); 1 replace(forwarditer first, ForwardIter last, const T& old value, const T& new value); 13 reverse(forwarditer first, ForwardIter last ); 14 sort(forwarditer first, ForwardIter last ); Hierbei bezeichnet T den Variablentyp (z.b. double), InputIter ist ein Iterator der nur gelesen wird, OutputIter einer der verändert wird, und ForwardIter einer der gelesen und verändert wird. Die Wirkung der Funktionen ist: accumulate: summiert den Inhalt von InputIter zu init ; inner product: bildet das innere Produkt ab von zwei Vektoren a und b; count: zählt, wie oft value vorkommt; copy: kopiert einen Bereich in einen anderen; equal: überprüft zwei Bereiche auf Gleichheit; fill: kopiert den Wert value in alle Elemente eines Bereiches; max element: liefert den Iterator auf das größte Element; min element: liefert den Iterator auf das kleinste Element; replace: ersetzt in einem Bereich old value durch new value; reverse: kehrt den Inhalt eines Bereiches um; sort: sortiert den Inhalt eines Bereiches in aufsteigender Reihenfolge. Wann immer möglich, wollen wir in den folgenden Programmen von diesen Funktionen Gebrauch machen.
7 .3. DIE VOLLSTÄNDIGE MATRIXKLASSE 13 Aufgabe.3 Betrachten Sie das Programm 1 #include <numeric> #include <algorithm> 3 4 void main() 5 { 6 int a [6]={0,1,,0,3,}; 7 int b [6]; 8 } Benutzen Sie die zuvor eingeführten Funktionen und kopieren Sie den Inhalt von a nach b; überprüfen Sie die beiden Arrays auf Gleichheit; drehen Sie die Reihenfolge von b um; bestimmen Sie die Summe 5 i=0 a i; bestimmen Sie das größte Element von b; sortieren Sie a; setzen Sie alle Elemente von b auf 0..3 Die vollständige Matrixklasse Damit wir die Funktionen von numeric und algorithm auch für die Matrixklasse verwenden können, führen wir zwei weitere Klassenfunktionen 1 double begin() const { return a; } double end() const { return a+n n; } ein, die auf den Beginn bzw. das Ende des Matrixspeicherplatzes zeigen. Mit Hilfe dieser zusätzlichen Funktionen, können wir dann z.b. alle Matrixelement auf einen bestimmten Wert setzen 1 matrix a(5); 3 copy(a.begin(),a.end (),0); Aufgabe.4 Schreiben Sie ein Programm, das den Inhalt einer Matrix A in eine zweite Matrix B kopiert.
8 14 KAPITEL. MATRIZEN IN C++ Für die häufigsten Matrixverknüpfungen wie Zuordnung A = B, Addition A + B, Subtraktion A B oder Multiplikation A B (entsprechend den Regeln der Matrixmultiplikation) ist es vernünftig, die entsprechenden Klassenoperatoren zu implementieren. Eine solche Implementierung ist in den Dateien zu finden. Die vollständige Klasse beinhaltet folgende Funktionen: 1 class matrix { 3 public: 4 matrix(int n); 5 matrix(const matrix& m); 6 matrix(const char filename); 7 matrix(); 8 9 double opertor[] (int i ); 10 const double operator[] (int i) const; 11 double& operator() (int i, int j); 1 double operator() (int i, int j ) const; const matrix& operator= (const matrix& m); const matrix& operator+= (const matrix& m); 17 const matrix& operator = (const matrix& m); 18 const matrix& operator = (const matrix& m); 19 0 matrix operator+ (const matrix& m) const; 1 matrix operator (const matrix& m) const; matrix operator (const matrix& m) const; 3 4 double begin() const; 5 double end() const; 6 7 int size (); 8 void write(); 9 }; Die Wirkung der Funktionen ist wie folgt: Zeile 4. Standardkonstruktor. Zeile 5. Konstruktor, wobei die Matrix dieselbe Ordnung n und Matrixelemente wie m erhält.
9 .3. DIE VOLLSTÄNDIGE MATRIXKLASSE 15 Zeile 6. Konstruktor, bei dem die Ordnung n und Matrixelemente aus einer Datei filename eingelesen werden. Der erste Eintrag in der Datei soll die Ordnung n sein, gefolgt von den n n Matrixelementen. Beispielsweise erhält mit der Datei matrix.dat die Matrix a in dem Programm 1 matrix a( matrix.dat ); die Form Zeilen 9 1. Zugriff auf Matrixelement über a(i, j) und a[ i ][ j ]. Zeile 14. Zuordnungsoperator, der es erlaubt, Ordnung n und Inhalt einer Matrix m in die aktuelle Matrix zu kopieren. Zeilen 16. Addition, Subtraktion und Multiplikation (entsprechend c ij = k a ikb kj ) von Matrizen; z.b. 1 matrix a(3), b(3), c (3); 3 a+=b; c=a+b; 4 a =b; c=a b; 5 a =b; c=a b; Bei all diesen Operationen wird überprüft, ob die Matrizen dieselbe Ordnung n haben. Zeilen 4, 5. Funktionen, die den Beginn begin() bzw. das Ende end() des Speicherplatzes liefern, an dem die Matrixelemente abgespeichert sind. Zeile 7. Ordnung n der Matrix. Zeile 8. Einfache Ausgaberoutine für Matrix. Aufgabe.5 Erstellen Sie zwei Dateien matrix.dat und diag.dat mit Inhalt und : lesen Sie die Matrizen m und e in einem Programm ein, und geben Sie ihren Inhalt am Bildschirm aus; multiplizieren Sie die beiden Matrizen; zeigen Sie, dass gilt m e = e m; addieren Sie m und e.
10 16 KAPITEL. MATRIZEN IN C++.4 Matrizen in Fortran90 Es gibt eine Reihe anderer Programmiersprachen, in denen die wichtigsten Matrixoperationen bereits implemetiert sind. Besonders einfach ist das Rechnen mit Matrizen in fortran90, auf das wir hier kurz eingehen wollen. Beispielsweise werden in dem Programm 1 program main 3 real, dimension(0:,0:) :: a, b, c 4 5 a=0 6 b=1 7 8 a(0,0)= c=matmul(a,b) 11 1 print,c end program in der Zeile 3 die Matrizen a,b,c der Größe 3 3 definiert (Indizes von 0 bis ), deren Matrixelemente in Zeilen 5 und 6 auf eine Konstante gesetzt werden; in Zeile 8 wird das Element a 00 gesetzt; in Zeile 10 erfolgt eine Matrixmultiplikation von a und b; und schließlich wird die Matrix c in Zeile 1 ausgegeben. Wir sehen, dass all die Funktionen (und noch einige mehr), die wir in diesem Kapitel programmiert haben, in fortran90 bereits vorhanden sind. Dies ist auch einer der Gründe, weshalb sich die Programmiersprache fortran in der Physik großer Beliebtheit erfreut. Dennoch wird sich zeigen, dass wir mit der selbst erstellten Matrixklasse matrix alle Probleme vollständig befriedigend lösen können.
Professionelle Seminare im Bereich MS-Office
Der Name BEREICH.VERSCHIEBEN() ist etwas unglücklich gewählt. Man kann mit der Funktion Bereiche zwar verschieben, man kann Bereiche aber auch verkleinern oder vergrößern. Besser wäre es, die Funktion
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
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
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.
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 --
MehrZeichen bei Zahlen entschlüsseln
Zeichen bei Zahlen entschlüsseln In diesem Kapitel... Verwendung des Zahlenstrahls Absolut richtige Bestimmung von absoluten Werten Operationen bei Zahlen mit Vorzeichen: Addieren, Subtrahieren, Multiplizieren
MehrÜ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:
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
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)
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 **
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:
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
MehrWas 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?
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
MehrWintersemester 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
MehrInhalt. 1 Einleitung AUTOMATISCHE DATENSICHERUNG AUF EINEN CLOUDSPEICHER
AUTOMATISCHE DATENSICHERUNG AUF EINEN CLOUDSPEICHER Inhalt 1 Einleitung... 1 2 Einrichtung der Aufgabe für die automatische Sicherung... 2 2.1 Die Aufgabenplanung... 2 2.2 Der erste Testlauf... 9 3 Problembehebung...
MehrStellen 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.
MehrEinrichten einer Festplatte mit FDISK unter Windows 95/98/98SE/Me
Einrichten einer Festplatte mit FDISK unter Windows 95/98/98SE/Me Bevor Sie die Platte zum ersten Mal benutzen können, muss sie noch partitioniert und formatiert werden! Vorher zeigt sich die Festplatte
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
Mehr1. Man schreibe die folgenden Aussagen jeweils in einen normalen Satz um. Zum Beispiel kann man die Aussage:
Zählen und Zahlbereiche Übungsblatt 1 1. Man schreibe die folgenden Aussagen jeweils in einen normalen Satz um. Zum Beispiel kann man die Aussage: Für alle m, n N gilt m + n = n + m. in den Satz umschreiben:
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
MehrInformatik 2 Labor 2 Programmieren in MATLAB Georg Richter
Informatik 2 Labor 2 Programmieren in MATLAB Georg Richter Aufgabe 3: Konto Um Geldbeträge korrekt zu verwalten, sind zwecks Vermeidung von Rundungsfehlern entweder alle Beträge in Cents umzuwandeln und
MehrMathematik: Mag. Schmid Wolfgang Arbeitsblatt 3 1. Semester ARBEITSBLATT 3 RECHNEN MIT GANZEN ZAHLEN
ARBEITSBLATT 3 RECHNEN MIT GANZEN ZAHLEN Wir wollen nun die Rechengesetze der natürlichen Zahlen auf die Zahlenmenge der ganzen Zahlen erweitern und zwar so, dass sie zu keinem Widerspruch mit bisher geltenden
MehrDatenbank-Verschlüsselung mit DbDefence und Webanwendungen.
Datenbank-Verschlüsselung mit DbDefence und Webanwendungen. In diesem Artikel werden wir Ihnen zeigen, wie Sie eine Datenbank verschlüsseln können, um den Zugriff einzuschränken, aber trotzdem noch eine
MehrErstellen 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
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
MehrAnwendungsbeispiele Buchhaltung
Rechnungen erstellen mit Webling Webling ist ein Produkt der Firma: Inhaltsverzeichnis 1 Rechnungen erstellen mit Webling 1.1 Rechnung erstellen und ausdrucken 1.2 Rechnung mit Einzahlungsschein erstellen
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.
MehrDHBW Karlsruhe, Vorlesung Programmieren, Klassen (2)
DHBW Karlsruhe, Vorlesung Programmieren, Klassen (2) Aufgabe 3 Bankkonto Schreiben Sie eine Klasse, die ein Bankkonto realisiert. Attribute für das Bankkonto sind der Name und Vorname des Kontoinhabers,
MehrHandbuch zur Anlage von Turnieren auf der NÖEV-Homepage
Handbuch zur Anlage von Turnieren auf der NÖEV-Homepage Inhaltsverzeichnis 1. Anmeldung... 2 1.1 Startbildschirm... 3 2. Die PDF-Dateien hochladen... 4 2.1 Neue PDF-Datei erstellen... 5 3. Obelix-Datei
MehrErstellen eines Screenshot
Blatt 1 von 5 Erstellen eines Screenshot Einige Support-Probleme lassen sich besser verdeutlichen, wenn der Supportmitarbeiter die aktuelle Bildschirmansicht des Benutzers sieht. Hierzu bietet Windows
MehrFotos in Tobii Communicator verwenden
Fotos in Tobii Communicator verwenden Hier wird beschrieben wie man Fotos in Tobii Communicator verwenden kann und was man zur Nutzung beachten sollte. Fotonutzung in Tobii Communicator In einigen Fällen
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
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
MehrAnwendungsbeispiele Buchhaltung
Kostenstellen in Webling Webling ist ein Produkt der Firma: Inhaltsverzeichnis 1 Kostenstellen 1.1 Was sind Kostenstellen? 1.2 Kostenstellen in der 2 Kostenstellen in Webling 2.1 Kostenstellen erstellen
MehrIhre Interessentendatensätze bei inobroker. 1. Interessentendatensätze
Ihre Interessentendatensätze bei inobroker Wenn Sie oder Ihre Kunden die Prozesse von inobroker nutzen, werden Interessentendatensätze erzeugt. Diese können Sie direkt über inobroker bearbeiten oder mit
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
MehrUniversal Dashboard auf ewon Alarmübersicht auf ewon eigener HTML Seite.
ewon - Technical Note Nr. 003 Version 1.2 Universal Dashboard auf ewon Alarmübersicht auf ewon eigener HTML Seite. Übersicht 1. Thema 2. Benötigte Komponenten 3. Downloaden der Seiten und aufspielen auf
MehrDr. Monika Meiler. Inhalt
Inhalt 11 Dynamische Feldvereinbarung... 11-2 11.1 Dynamische Vereinbarung von Vektoren... 11-3 11.2 Dynamische Vereinbarung von Matrizen... 11-5 11.3 Die Kommandozeile... 11-8 Propädeutikum 11-1/8 11
MehrIm Folgenden wird Ihnen an einem Beispiel erklärt, wie Sie Excel-Anlagen und Excel-Vorlagen erstellen können.
Excel-Schnittstelle Im Folgenden wird Ihnen an einem Beispiel erklärt, wie Sie Excel-Anlagen und Excel-Vorlagen erstellen können. Voraussetzung: Microsoft Office Excel ab Version 2000 Zum verwendeten Beispiel:
Mehr1 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
MehrWas man mit dem Computer alles machen kann
Was man mit dem Computer alles machen kann Wie komme ich ins Internet? Wenn Sie einen Computer zu Hause haben. Wenn Sie das Internet benutzen möchten, dann brauchen Sie ein eigenes Programm dafür. Dieses
MehrFolge 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,
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
MehrAustausch- bzw. Übergangsprozesse und Gleichgewichtsverteilungen
Austausch- bzw. Übergangsrozesse und Gleichgewichtsverteilungen Wir betrachten ein System mit verschiedenen Zuständen, zwischen denen ein Austausch stattfinden kann. Etwa soziale Schichten in einer Gesellschaft:
MehrWintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf http://informatik.swoke.de. Seite 1 von 18
Kapitel 3 Datentypen und Variablen Seite 1 von 18 Datentypen - Einführung - Für jede Variable muss ein Datentyp festgelegt werden. - Hierdurch werden die Wertemenge und die verwendbaren Operatoren festgelegt.
MehrJede Zahl muss dabei einzeln umgerechnet werden. Beginnen wir also ganz am Anfang mit der Zahl,192.
Binäres und dezimales Zahlensystem Ziel In diesem ersten Schritt geht es darum, die grundlegende Umrechnung aus dem Dezimalsystem in das Binärsystem zu verstehen. Zusätzlich wird auch die andere Richtung,
MehrUpdatehinweise für die Version forma 5.5.5
Updatehinweise für die Version forma 5.5.5 Seit der Version forma 5.5.0 aus 2012 gibt es nur noch eine Office-Version und keine StandAlone-Version mehr. Wenn Sie noch mit der alten Version forma 5.0.x
MehrBerechnungen in Access Teil I
in Access Teil I Viele Daten müssen in eine Datenbank nicht eingetragen werden, weil sie sich aus anderen Daten berechnen lassen. Zum Beispiel lässt sich die Mehrwertsteuer oder der Bruttopreis in einer
Mehr1 Mathematische Grundlagen
Mathematische Grundlagen - 1-1 Mathematische Grundlagen Der Begriff der Menge ist einer der grundlegenden Begriffe in der Mathematik. Mengen dienen dazu, Dinge oder Objekte zu einer Einheit zusammenzufassen.
MehrObjektorientierte Programmierung mit C++ Zusammenfassung der wichtigsten Topics rund um die objektorientierte Programmierung mit C++11
Objektorientierte Programmierung mit C++ Zusammenfassung der wichtigsten Topics rund um die objektorientierte Programmierung mit C++11 Wozu objektorientiertes Programmieren? Die Welt besteht für den Menschen
MehrKapiteltests zum Leitprogramm Binäre Suchbäume
Kapiteltests zum Leitprogramm Binäre Suchbäume Björn Steffen Timur Erdag überarbeitet von Christina Class Binäre Suchbäume Kapiteltests für das ETH-Leitprogramm Adressaten und Institutionen Das Leitprogramm
Mehr)XQNWLRQVWDVWH8PEXFKHQ
Kassensystem (X&D6RIW Š )XQNWLRQVWDVWH8PEXFKHQ Diese Funktion erlaubt es Ihnen, bestimmte gebuchte Artikel auf einen anderen Platz umzubuchen. Sie können variabel Artikel und Mengen auf einen anderen Tisch
MehrSo die eigene WEB-Seite von Pinterest verifizieren lassen!
So die eigene WEB-Seite von Pinterest verifizieren lassen! Quelle: www.rohinie.eu Die eigene Seite auf Pinterest verifizieren Es ist offiziell. Vielleicht haben auch Sie in den vergangenen Wochen die Informationen
MehrOP-LOG www.op-log.de
Verwendung von Microsoft SQL Server, Seite 1/18 OP-LOG www.op-log.de Anleitung: Verwendung von Microsoft SQL Server 2005 Stand Mai 2010 1 Ich-lese-keine-Anleitungen 'Verwendung von Microsoft SQL Server
MehrNeue Kennwortfunktionalität. Kurzanleitung. 2012 GM Academy. v1.0
Neue Kennwortfunktionalität Kurzanleitung 2012 GM Academy v1.0 Neue Kennwortfunktionalität Diese Kurzanleitung soll erläutern, wie die neue Kennwort Regelung funktionieren wird. Die GM Academy führt eine
MehrEinrichtung des Cisco VPN Clients (IPSEC) in Windows7
Einrichtung des Cisco VPN Clients (IPSEC) in Windows7 Diese Verbindung muss einmalig eingerichtet werden und wird benötigt, um den Zugriff vom privaten Rechner oder der Workstation im Home Office über
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
MehrInstallation 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
Mehrgeben. Die Wahrscheinlichkeit von 100% ist hier demnach nur der Gehen wir einmal davon aus, dass die von uns angenommenen
geben. Die Wahrscheinlichkeit von 100% ist hier demnach nur der Vollständigkeit halber aufgeführt. Gehen wir einmal davon aus, dass die von uns angenommenen 70% im Beispiel exakt berechnet sind. Was würde
MehrOrdner Berechtigung vergeben Zugriffsrechte unter Windows einrichten
Ordner Berechtigung vergeben Zugriffsrechte unter Windows einrichten Was sind Berechtigungen? Unter Berechtigungen werden ganz allgemein die Zugriffsrechte auf Dateien und Verzeichnisse (Ordner) verstanden.
MehrSchrittweise Anleitung zur Installation von Zertifikaten der Bayerischen Versorgungskammer im Mozilla Firefox ab Version 2.0
Schrittweise Anleitung zur Installation von Zertifikaten der Bayerischen Versorgungskammer im Mozilla Firefox ab Version 2.0 Diese Anleitung führt Sie Schritt für Schritt durch die komplette Installationsprozedur
MehrLeitfaden trixikfz Online
Leitfaden trixikfz Online Inhalt Eine neue Berechnung durchführen... 2 Angebote erstellen, Leistungsdetails zum Tarif, Deckungsauftrag erstellen... 6 Angebot erstellen... 7 Leistungsdetails zum Tarif...
MehrHilfe zur Urlaubsplanung und Zeiterfassung
Hilfe zur Urlaubsplanung und Zeiterfassung Urlaubs- und Arbeitsplanung: Mit der Urlaubs- und Arbeitsplanung kann jeder Mitarbeiter in Coffee seine Zeiten eintragen. Die Eintragung kann mit dem Status anfragen,
MehrÜbungen zu C++ Kapitel 1
Übungen zu C++ Kapitel 1 Aufgabe 1 Ergänze den Text. a) Die sechs logischen Einheiten eines Computers sind Eingabe-Einheit, Ausgabe-Einheit, RAM, ALU, CPU, Plattenspeicher. b) Die Programme, welche Hochsprachenprogramme
MehrWollen Sie einen mühelosen Direkteinstieg zum Online Shop der ÖAG? Sie sind nur einen Klick davon entfernt!
Wollen Sie einen mühelosen Direkteinstieg zum Online Shop der ÖAG? Sie sind nur einen Klick davon entfernt! Sehr geehrte(r) Geschäftspartner(in), Um Ihre Transaktionen schneller durchzuführen, bieten wir
MehrMit der Maus im Menü links auf den Menüpunkt 'Seiten' gehen und auf 'Erstellen klicken.
Seite erstellen Mit der Maus im Menü links auf den Menüpunkt 'Seiten' gehen und auf 'Erstellen klicken. Es öffnet sich die Eingabe Seite um eine neue Seite zu erstellen. Seiten Titel festlegen Den neuen
MehrDurchführung der Datenübernahme nach Reisekosten 2011
Durchführung der Datenübernahme nach Reisekosten 2011 1. Starten Sie QuickSteuer Deluxe 2010. Rufen Sie anschließend über den Menüpunkt /Extras/Reisekosten Rechner den QuickSteuer Deluxe 2010 Reisekosten-Rechner,
MehrBeheben von verlorenen Verknüpfungen 20.06.2005
Vor folgender Situation ist sicher jeder Solid Edge-Anwender beim Öffnen von Baugruppen oder Drafts schon einmal gestanden: Die Ursache dafür kann sein: Die Dateien wurden über den Explorer umbenannt:
MehrICS-Addin. Benutzerhandbuch. Version: 1.0
ICS-Addin Benutzerhandbuch Version: 1.0 SecureGUARD GmbH, 2011 Inhalt: 1. Was ist ICS?... 3 2. ICS-Addin im Dashboard... 3 3. ICS einrichten... 4 4. ICS deaktivieren... 5 5. Adapter-Details am Server speichern...
MehrFachbericht zum Thema: Anforderungen an ein Datenbanksystem
Fachbericht zum Thema: Anforderungen an ein Datenbanksystem von André Franken 1 Inhaltsverzeichnis 1 Inhaltsverzeichnis 1 2 Einführung 2 2.1 Gründe für den Einsatz von DB-Systemen 2 2.2 Definition: Datenbank
MehrVirtueller Seminarordner Anleitung für die Dozentinnen und Dozenten
Virtueller Seminarordner Anleitung für die Dozentinnen und Dozenten In dem Virtuellen Seminarordner werden für die Teilnehmerinnen und Teilnehmer des Seminars alle für das Seminar wichtigen Informationen,
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)
MehrAbituraufgabe zur Stochastik, Hessen 2009, Grundkurs (TR)
Abituraufgabe zur Stochastik, Hessen 2009, Grundkurs (TR) Eine Firma stellt USB-Sticks her. Sie werden in der Fabrik ungeprüft in Packungen zu je 20 Stück verpackt und an Händler ausgeliefert. 1 Ein Händler
Mehr1. Weniger Steuern zahlen
1. Weniger Steuern zahlen Wenn man arbeitet, zahlt man Geld an den Staat. Dieses Geld heißt Steuern. Viele Menschen zahlen zu viel Steuern. Sie haben daher wenig Geld für Wohnung, Gewand oder Essen. Wenn
MehrLineare Gleichungssysteme
Lineare Gleichungssysteme 1 Zwei Gleichungen mit zwei Unbekannten Es kommt häufig vor, dass man nicht mit einer Variablen alleine auskommt, um ein Problem zu lösen. Das folgende Beispiel soll dies verdeutlichen
MehrSecond Steps in eport 2.0 So ordern Sie Credits und Berichte
Second Steps in eport 2.0 So ordern Sie Credits und Berichte Schritt 1: Credits kaufen, um Zugangscodes generieren zu können Wählen Sie Credits verwalten und klicken Sie auf Credits kaufen. Geben Sie nun
MehrUserManual. Handbuch zur Konfiguration einer FRITZ!Box. Autor: Version: Hansruedi Steiner 2.0, November 2014
UserManual Handbuch zur Konfiguration einer FRITZ!Box Autor: Version: Hansruedi Steiner 2.0, November 2014 (CHF 2.50/Min) Administration Phone Fax Webseite +41 56 470 46 26 +41 56 470 46 27 www.winet.ch
MehrSEMINAR Modifikation für die Nutzung des Community Builders
20.04.2010 SEMINAR Modifikation für die Nutzung des Community Builders Step by Step Anleitung ecktion SEMINAR Modifikation für die Nutzung des Community Builders Step by Step Anleitung Bevor Sie loslegen
MehrKlausur WS 2006/07 Programmiersprache Java Objektorientierte Programmierung II 15. März 2007
Fachhochschule Bonn-Rhein-Sieg University of Applied Sciences Fachbereich Informatik Prof. Dr. Peter Becker Klausur WS 2006/07 Programmiersprache Java Objektorientierte Programmierung II 15. März 2007
MehrDatenbanken Kapitel 2
Datenbanken Kapitel 2 1 Eine existierende Datenbank öffnen Eine Datenbank, die mit Microsoft Access erschaffen wurde, kann mit dem gleichen Programm auch wieder geladen werden: Die einfachste Methode ist,
MehrGimp Kurzanleitung. Offizielle Gimp Seite: http://www.gimp.org/
Gimp Kurzanleitung Offizielle Gimp Seite: http://www.gimp.org/ Inhalt Seite 2 Seite 3-4 Seite 5-6 Seite 7 8 Seite 9 10 Seite 11-12 Ein Bild mit Gimp öffnen. Ein Bild mit Gimp verkleinern. Ein bearbeitetes
Mehr2. Speichern und öffnen
2. Speichern und öffnen In diesem Modul lernen Sie, ein Dokument zum ersten Mal zu speichern, zu öffnen, nochmals zu speichern unter demselben Namen, nachdem Sie etwas geändert haben, zu speichern als
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
MehrEinrichten des Elektronischen Postfachs
Einrichten des Elektronischen Postfachs Für die Einrichtung des Elektronischen Postfachs melden Sie sich wie gewohnt in unserem Online-Banking auf www.sparkasse-unnakamen.de an. Wechseln Sie über Postfach
MehrARCO Software - Anleitung zur Umstellung der MWSt
ARCO Software - Anleitung zur Umstellung der MWSt Wieder einmal beschert uns die Bundesverwaltung auf Ende Jahr mit zusätzlicher Arbeit, statt mit den immer wieder versprochenen Erleichterungen für KMU.
MehrGezielt über Folien hinweg springen
Gezielt über Folien hinweg springen Nehmen wir an, Sie haben eine relativ große Präsentation. Manchmal möchten Sie über Folien hinweg zu anderen Folien springen. Das kann vorkommen, weil Sie den gesamten
MehrEs 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
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
MehrInformatik Grundlagen, WS04, Seminar 13
Informatik Grundlagen, WS04, Seminar 13 Informatik Informatik Grundlagen, Seminar 13 WS04 1 Was wir heute besprechen Nachbesprechen von Übungsblatt 11 Rekursion Grundprinzipien Übung Besprechung Übungsblatt
MehrM. 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
MehrGrundlagen. Kapitel 1
Grundlagen Dieses Kapitel umfasst grundlegende Fragen und Aufgaben zur Erstellung von C++-Programmen. Hierzu zählen auch das Inkludieren von Header-Dateien Eine Header-Datei beinhaltet Informationen, die
MehrAnleitung zum Einspielen der Demodaten
Anleitung zum Einspielen der Demodaten Die Demodaten finden Sie unter: http://www.rza.at/rza-software/fakturierungssoftware/basickasse.html Sie können zwischen den Demodaten Baeckerei_Konditorei oder Demodaten
MehrFolgende Einstellungen sind notwendig, damit die Kommunikation zwischen Server und Client funktioniert:
Firewall für Lexware professional konfigurieren Inhaltsverzeichnis: 1. Allgemein... 1 2. Einstellungen... 1 3. Windows XP SP2 und Windows 2003 Server SP1 Firewall...1 4. Bitdefender 9... 5 5. Norton Personal
MehrEH2000 Ablauf am Morgen
EH2000 Ablauf am Morgen Preiswartung 2. Button IMPORT drücken 3. Button ZEITUNGEN drücken 4. Button STAMM AKTUALISIEREN drücken 5. Button BEENDEN drücken 6. Button BEENDEN/VERBINDUNG TRENNEN drücken 1.
MehrInternationales 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Über das Menü Zusätze Importe Import aus Fink Stunderfassung Lohnartenumschlüsselung gelangen Sie zu folgendem Eingabebildschirm:
1. Lohnartenumschlüsselung: Über das Menü Zusätze Importe Import aus Fink Stunderfassung Lohnartenumschlüsselung gelangen Sie zu folgendem Eingabebildschirm: Definieren Sie im Feld Dateiname den Speicherort
MehrProgrammieren. 10. Tutorium 4./ 5. Übungsblatt Referenzen
Programmieren 10. Tutorium 4./ 5. Übungsblatt Inhalt I. Übungsblatt 4 II. III. - Rückgabe und Besprechung - Vorbereitung auf Wiederholung/ Nachtrag - Operatorpräzedenzen IV. Übungsblatt 5 - Vorstellung
MehrAufruf der Buchungssystems über die Homepage des TC-Bamberg
Aufruf der Buchungssystems über die Homepage des TC-Bamberg Das Online-Buchungssystem erreichen Sie einfach über die Homepage des TC-Bamberg (www.tennis-club-bamberg.de).über den Link (siehe Bild 1) gelangen
Mehr.htaccess HOWTO. zum Schutz von Dateien und Verzeichnissen mittels Passwortabfrage
.htaccess HOWTO zum Schutz von Dateien und Verzeichnissen mittels Passwortabfrage Stand: 21.06.2015 Inhaltsverzeichnis 1. Vorwort...3 2. Verwendung...4 2.1 Allgemeines...4 2.1 Das Aussehen der.htaccess
Mehr