matrix i macierz to to samo ;)
tylko że piszę program w jęz angielskim bo tego ode mnie wymagają na uczelni - i zapomniałem ten konstruktor przemianować na "Macierz" tak by było to czytelne i łatwe do zrozumienia po polsku (z tąd też ten problem odnoście macierzy transponowanej i odwrotnej - pisałem na szybko i pomyliłem zagadnienia)
ok teraz kod - wypiszę tylko część bo całość to ponad 500 linijek ;-P :
class Matrix
{
int liczba_wierszy;
int liczba_kolumn;
int ** tab;
public:
Matrix();
Matrix(int liczba_wierszy, int liczba_kolumn);
friend ostream & operator<<(ostream& wy, Matrix &);
friend istream & operator>>(istream& we, Matrix &);
friend Matrix transpose(Matrix & A);
};
ostream& operator<<(ostream& wy, Matrix & A) //operator wypisania macierzy
{
int x = A.liczba_wierszy;
int z = A.liczba_kolumn;
for(int i=0; i<x; i++)
{
for(int j=0; j<z; j++)
{
wy<<A.tab[i][j]<<" ";
}
wy<<endl;
}
return wy;
}
istream& operator>>(istream& we, Matrix & A) //operator wpisywania wartości do macierzy
{
int x = A.liczba_wierszy;
int z = A.liczba_kolumn;
for(int i=0; i<x; i++)
{
for(int j=0; j<z; j++)
{
we>>A.tab[i][j];
}
}
return we;
}
Matrix::Matrix(int rows, int cols)
{
liczba_wierszy = rows;
liczba_kolumn = cols;
tab = new int * [liczba_wierszy];
for (int i = 0; i < liczba_wierszy; i++)
{
tab[i] = new int [liczba_kolumn];
}
}
Matrix transpose(Matrix & A)
{
int a, b;
a = A.liczba_wierszy;
b = A.liczba_kolumn;
Matrix X(b, a);
{
for(int j = 0; j < X.liczba_kolumn; j++)
{
X.tab[i][j] = A.tab[j][i];
}
}
return X;
}
int main()
{
int wier[4];
int kol[4];
int f;
int x = 0;
for (int qwe = 0; qwe < 3; qwe++) //zeruję tablicę - tak by potem nie utworzyło macierzy
{ //o liczbie wierszy -123986123 lub 0x213981 czy cos w tym stylu
wier[qwe] = 0;
kol[qwe] = 0;
}
for (f = 1; f < 4; f++) //tutaj użytkownik przypisuje odpowiednim macierzom ilość wierszy i kolumn
{
cout<<"Please enter number of rows and columns for matrix: "<<f<<" '"<<char(64+f)<<"'"<<endl;
cin>>wier[f]>>kol[f];
}
Matrix A(wier[1], kol[1]);
Matrix B(wier[2], kol[2]);
Matrix C(wier[3], kol[3]);
cout<<"Define values for matrix "<<char(65)<<endl;
cin>>A;
cout<<"Define values for matrix "<<char(66)<<endl;
cin>>B;
cout<<"Define values for matrix "<<char(67)<<endl;
cin>>C;
cout<<"Result of some calculations:"<<endl;
Matrix U = transpose(A);
cout<<A<<endl<<"transpose of matrix A:"<<endl<<U<<endl;
int w2;
cin>>w2;
cout<<"koniec";
return 0;
}
myślę że to powinno wystarczyć