Matrix Klasse mit C++
-
Hi !!!
Ich bin leider ein C++ Anfänger (überhaupt ein Programmieranfänger), was insbesondere die Objektorientrierung angeht.
Nun soll ich folgendes Problem in C++ umsetzen und weiss nicht so ganz, wie ich daran gehen soll.Es soll eine Klasse Matrix geben. Von Ihr abgeleitet zwei Klassen: Explicit und Sparse.
In den Klassen sollen jeweils dieselben Funktionen existieren, z.B. Gauss- Verfahren um Lineare Gleichungssysteme zu lösen.
Die Matrizen, die verwendet werden, sind riesig, so locker 10000x10000 gross.
Die Benutzung soll z.B. so gehen, dass ich irgendwie sagen muss, nehme Matrix, die im Format Explicit dargestellt ist und benutze den Algorithmus Gauss aus der Klasse Explicit.Das ist das erste grosse Projekt (für mich ist es gross
) und ich habe leider keine Ahnung wie ich da beginnen soll.
Es wäre mir eine grosse Hilfe, wenn jemand mir da einen Tipp geben kann.Vielen Dank im Voraus.
-
Versteh ich nicht, wie kann jemand dir eine solche Aufgabe stellen wenn du
überhaupt keine Ahnung hast.

Solltest erst mal den Aufgabensteller fragen was der sich dabei gedacht hat.
Ist ja schon ne ganz schöne Unverschämtheit. Vielleicht lässt er/sie sich
ja noch runterhandeln, was die Aufgabenstellung angeht meine ich.
-
Das wird er wohl leider nicht machen.
Ich muss wohl in den sauren Apfel beissen und es versuchen zu lösen.
-
Mein Tip? Beschäftige dich mit Klassen, dann weißt du auch wie du deine Matrixklassen zu designen hast. Im Prinzip hast du schon genau das gesagt, was du auch in Code umsetzen mußt. Denn C++ Code lässt sich genau umgekehrt lesen: wenn du C++ Code siehst, kannst du diesen so interpretieren, wie du ebend deine Aufgabe formuliert hast.
Soweit ich weiß, gibts sogar in der C++ Standard Bibliothek sogar std::valarray (?) welches schon mal die Grundlagen bietet. Kann auch sein das ich mich täusche, und du dann doch std::vector nehmen kannst.
EIne Lösung wird dir hier aber niemand hinschreiben, weil wir keine Hausaufgaben lösen. Lern was über Klassen und melde dich nochmal, wenn du konkrete Probs hast.
-
oben rechts findest einige gute tutorials

mein ansatz:
class Matrix { public: virtual ~Matrix() { } void Gauss() = 0; protected: // TODO membervariable }; class Explicit : public Matrix { void Gauss() { /* algo */ } }; class Sparse : public Matrix { void Gauss() { /* algo */ } };
-
Artchi schrieb:
EIne Lösung wird dir hier aber niemand hinschreiben, weil wir keine Hausaufgaben lösen.
Davon bin ich auch nicht ausgegangen.
Ich werde mal sehen, was ich mit dem Ansatz von miller_m machen kann.
Und danke für den Hinweis mit den Tutorials. Die habe ich übersehen und werde sie mir gleich ansehen

Hoffentlich sind die verständlicher geschrieben, als mein C++ Buch.