Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <cstdlib>
- #include <ctime>
- using namespace std;
- class macierz
- {
- int wiersze;
- int kolumny;
- float * wsk;
- public:
- macierz(int k, int w ); //konstruktor domyslny
- macierz(const macierz & m); //konstruktor kopiujacy
- macierz operator= (const macierz & m); //operator przypisania
- macierz operator+= (const macierz & m); //dodawanie
- macierz operator-= (const macierz & m); //odejmowanie
- void wypisz(); // funkcja wypisujaca macierz na ekran
- void wpisz(); // funkcja inicjalizujaca wartosci macierzu
- void wpisz_losowe(); //zapelnienie macierzy losowymi
- friend istream & operator>> (istream & is, macierz & m);
- friend ostream & operator<<(ostream & os, const macierz & m); //operator wypisania na ekran
- ~macierz(); //destruktor
- };
- macierz::macierz(int k,int w):kolumny(k),wiersze(w),wsk(new float[wiersze*kolumny]){};
- macierz::macierz(const macierz & m):kolumny(m.kolumny),wiersze(m.wiersze),wsk(new float[kolumny*wiersze])
- {
- for(int i=0;i<kolumny*wiersze;i++)
- {
- wsk[i]=m.wsk[i];
- }
- }
- int main()
- { int x,y,z,c;
- cout<<"Podaj ilosc wierszy pierwszej macierzy:";
- cin>>x;
- cout<<"Podaj ilosc kolumn pierwszej macierzy:";
- cin>>y;
- cout<<"Podaj ilosc wierszy drugiej macierzy:";
- cin>>z;
- cout<<"Podaj ilosc kolumn drugiej macierzy:";
- cin>>c;
- macierz m1(x,y);
- macierz m2(z,c);
- //macierz m3(x,y);
- cout << "Podaj wartosci macierzy m1" << endl;
- cin>>m1;
- //cout << "Podaj wartosci macierzy m2" << endl;
- //cin>>m2;
- m2.wpisz_losowe();
- m1.wypisz();
- cout<<"\n";
- m2.wypisz();
- cout<<"\n";
- cout<<"\n";
- m2+=m1;
- //m2-=m1
- cout << "Twoj macierz ma wartosci:" << endl << m2 << endl;
- system("pause");
- }
- macierz macierz::operator= (const macierz & m)
- {
- if(wiersze!=m.wiersze || kolumny!=m.kolumny)
- {
- delete wsk;
- wiersze=m.wiersze;
- kolumny=m.kolumny;
- wsk = new float[wiersze*kolumny];
- }
- for(int i=0;i<wiersze*kolumny;i++)
- {
- wsk[i]=m.wsk[i];
- }
- return *this;
- }
- macierz macierz::operator+= (const macierz & m)
- {
- if(wiersze!=m.wiersze || kolumny!=m.kolumny)
- {
- cout<<"Macierzy tych nie mozna dodawac do siebie"<<endl;
- return *this;
- }
- else
- {
- for(int i=0;i<wiersze*kolumny;i++)
- {
- wsk[i]=wsk[i]+m.wsk[i];
- }
- return *this;
- }
- }
- macierz macierz::operator-= (const macierz & m)
- {
- if(wiersze!=m.wiersze || kolumny!=m.kolumny)
- {
- cout<<"Macierzy nie mozna odjac od siebie"<<endl;
- return *this;
- }
- else
- {
- for(int i=0;i<wiersze*kolumny;i++)
- {
- wsk[i]=wsk[i]-m.wsk[i];
- }
- return *this;
- }
- }
- void macierz::wypisz()
- {
- for(int i=0;i<wiersze*kolumny;i++)
- {
- if (i%wiersze==0) cout<<endl;
- cout<<wsk[i]<<" ";
- }
- }
- void macierz::wpisz()
- {
- for(int i=0;i<wiersze*kolumny;i++)
- {
- cin>>wsk[i];
- }
- }
- void macierz::wpisz_losowe()
- {
- srand(time(NULL)); // Inicjalizujemy ziarno pseudolosowości
- for (int i = 0; i<wiersze*kolumny; i++)
- {
- this->wsk[i]=(rand()%45)+1; // Wpisujemy losowe wartości
- }
- }
- istream & operator>> (istream & is, macierz & m)
- {
- for (int i=0;i<m.wiersze*m.kolumny;i++)
- {
- is>>m.wsk[i];
- }
- return is;
- }
- ostream & operator<< (ostream & os, const macierz & m)
- {
- for(int i=0;i<m.wiersze*m.kolumny;i++)
- {
- if (i%m.wiersze==0) os<<endl;
- os<<m.wsk[i]<<" ";
- }
- return os;
- }
- macierz::~macierz(){delete wsk;}
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement