C++ Class Matrix Class Ratio überladenen Operatoren und Matrizen
-
Hallo an alle
ich hoffe mir kann jemand helfen.
Ich soll ein Programm schreiben bei dem 2 Matrizen miteinander Addiert, Subtrahiert und Multipliziert werden. Die einzelnden Felder sind mit Ratonalen Zahlen (Zaehler/Nenner) durch den Konstruktor initialisiert. Bis zur Ausgabe einer Matrix hab ich es bisher schonmal geschaft. (Ach ja ich habe die einzelnen Werte in einem Eindimensionalen Array gespeicher) Ich habe auch den Überladenen OperatorRatio&Ratio :: operator+=(Ratio r)
{
zaehler=zaehler*r.nenner+nenner*r.zaehler;
nenner=nenner*r.nenner;
return *this;
}mit dem ich sage wie man Brüche Addiert. Aber wie schaffe ich es meinem Programm zu sagen welches Feld des Arrays er mit welchem addieren/subtrahieren/multiplizieren soll.
ich hoffe mir kann hier irgendjemand helfen
matrix ist bei Ratio als friend gesetzt
Der Rest von meiner Matrix.cpp#include "Matrix.h"
#include <iostream>
using namespace std;Matrix::Matrix(int n, int m)
{
x = n;
y = m;
int i;
matrix = new Ratio[nm];
for(i = 0; i < (mn); i++)
{
matrix[i].zaehler = (i+1);
matrix[i].nenner = (i+2);}
}Ratio Matrix::getElement(int Spalte, int Zeile)
{
return matrix[ ((Zeile*x)-(x-Spalte)) -1 ];
}void Matrix::anzeige()
{
for(int Zeile=1;Zeile <= y;Zeile++)
{
for(int Spalte=1;Spalte <= x;Spalte++)
{
cout <<"["<<Zeile<<"|"<<Spalte<<"]"<< Matrix::getElement(Zeile,Spalte).getZaehler() << "/" << Matrix::getElement(Zeile,Spalte).getNenner() << " ";
}
cout << "\n";
}
cout << "\n";
}
-
Alo wär ganz gut, wenn du die cpp tags nutzen würdest... ansonsten kann ich deinem Code nicht so ganz folgen, denn zb wird bei
Matrix::Matrix(int n, int m) { x = n; y = m; int i; matrix = new Ratio[n*m]; for(i = 0; i < (m*n); i++) { matrix[i].zaehler = (i+1); matrix[i].nenner = (i+2); } }
x und y nicht benutzt und matrix nicht deklariert. Sind diese global deklariert worden?
Zur Multiplikation( ich geh mal davon aus, dass es die schwerste ist) kannst dich ja mal an dem Falk'schen Schema orientieren.