Do tej pory mam coś takiego ale nie mam pojęcia jak zamienić zmienne na dynamiczne, tak aby podawać tylko rozmiar macierzy i aby macierz sama wypełniała się losowymi liczbami. Proszę o pomoc.
Kod: Zaznacz cały
#include "stdafx.h"
#include <cstdlib>
#include <iostream>
#include <conio.h>
using namespace std;
class macierz
{
private:
int pier[2];
int dru[2];
public:
int i;
friend ostream & operator<< (ostream &, macierz &);
friend istream & operator>>(istream &, macierz &);
macierz operator+(macierz a)//przeładowanie +
{
macierz suma;
for(i=0;i<2;i++)
{
suma.pier[i] = pier[i] + a.pier[i];
suma.dru[i] = dru[i] + a.dru[i];
}
return suma;
}
macierz operator-(macierz a)//przeładowanie -
{
macierz suma;
for(i=0;i<2;i++)
{
suma.pier[i] = pier[i] - a.pier[i];
suma.dru[i] = dru[i] - a.dru[i];
}
return suma;
}
macierz operator*(macierz a)//przeładowanie *
{
macierz suma;
suma.pier[0] = pier[0] * a.pier[0] + pier[1] * a.dru[0];
suma.dru[0] = dru[0] * a.pier[0] + dru[1] * a.dru[0];
suma.pier[1] = pier[0] * a.pier[1] + pier[1] * a.dru[1];
suma.dru[1] = dru[0] * a.pier[1] + dru[1] * a.dru[1];
return suma;
}
};
ostream & operator<< (ostream &z, macierz & pokaz) //przeciążony operator strumienia wyjscia
{
z << " " << pokaz.pier[0] << " " << pokaz.pier[1]<< " ";
z <<endl<< " " << pokaz.dru[0] << " " << pokaz.dru[1]<< " ";
return z;
}
istream & operator>>( istream &y ,macierz & pokaz)//przeciążony operator strumienia wejścia
{
cout<<" pierwsza kolumna: "<<endl ;
y>>pokaz.pier[0] >>pokaz.dru[0] ;
cout<<" druga kolumna : "<<endl ;
y>>pokaz.pier[1]>>pokaz.dru[1] ;
return y;
}
int main()
{
int b=0;
int q=0,w=1;
macierz pierwsza,druga,wynik;
do
{
system("cls");
cout<<"Wybierz co chcesz wykonac na macierzach
";
cout<<"1 Dodawanie
2 Odejmowanie
3 Mnozenie
"<<endl;
cout<<"4 Koniec
";
cin>>b;
switch (b)
{
case 1:
system("cls");
cout<<"KAZDY ELEMENT MACIERZY PROSZE ZATWIERDZIC KLAWISZEM
";
cout<<" E N T E R ";
cout<<"
";
cout<<"
podaj parametry pierwszej macierzy
";
cin>>pierwsza;
cout<<"
podaj parametry drugiej liczby
";
cin>>druga;
cout<<"
twoja operacja to :
"<<pierwsza<<"
+
"<<druga<<endl;
wynik = pierwsza * druga;
cout<<"wynik twojej operacji :
"<<wynik<<endl;
getch(); break;
case 2:
system("cls");
cout<<"KAZDY ELEMENT MACIERZY PROSZE ZATWIERDZIC KLAWISZEM
";
cout<<" E N T E R ";
cout<<"
";
cout<<"
podaj parametry pierwszej macierzy
";
cin>>pierwsza;
cout<<"
podaj parametry drugiej liczby
";
cin>>druga;
cout<<"
twoja operacja to :
"<<pierwsza<<"
-
"<<druga<<endl;
wynik = pierwsza - druga;
cout<<"wynik twojej operacji :
"<<wynik<<endl;
getch(); break;
case 3:
system("cls");
cout<<"KAZDY ELEMENT MACIERZY PROSZE ZATWIERDZIC KLAWISZEM
";
cout<<" E N T E R ";
cout<<"
";
cout<<"
podaj parametry pierwszej macierzy
";
cin>>pierwsza;
cout<<"
podaj parametry drugiej liczby
";
cin>>druga;
cout<<"
twoja operacja to :
"<<pierwsza<<"
*
"<<druga<<endl;
wynik = pierwsza * druga;
cout<<"wynik twojej operacji :
"<<wynik<<endl;
getch(); break;
case 4:
w=0;break;
default:
cout<<"Bledny wybor!"<<endl;
getch(); break;
}
}
while (q!=w);
cin.get();
return 0;
}