Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <cstring>
- #include "stdafx.h"
- using namespace std;
- class macierz
- {
- int size;
- int *array_p;
- public:
- macierz(int a)
- {
- size = a;
- array_p = new int[a*a];
- }
- ~macierz()
- {
- delete[] array_p;
- }
- void fill()
- {
- int *temp = array_p;
- int i1, i2;
- system("cls");
- for (i1 = 0; i1<size; i1++)
- {
- for (i2 = 0; i2<size; i2++)
- {
- cout << "Type in [" << i1 + 1 << ";" << i2 + 1 << "] array value:" << endl;
- cin >> *temp;
- temp++;
- system("cls");
- }
- }
- }
- void display()
- {
- int *temp = array_p;
- int i1, i2;
- for (i1 = 0; i1<size; i1++)
- {
- for (i2 = 0; i2<size; i2++)
- {
- cout << *temp << "\t";
- temp++;
- }
- cout << endl;
- }
- }
- friend macierz operator+(const macierz &a, const macierz &b)
- {
- if (a.size == b.size)
- {
- int x;
- x = a.size
- array c(x);
- int i;
- for (i = 0; i<x*x; i++)
- {
- c.array_p[i] = a.array_p[i] + b.array_p[i];
- }
- return c;
- }
- else
- {
- cout << "Error, arrays are mismatching sizes";
- }
- }
- friend macierz operator-(const macierz &a, const macierz &b)
- {
- if (a.n_cols == b.n_cols)
- {
- int x;
- x = a.size;
- array c(x);
- int i;
- for (i = 0; i<x*x; i++)
- {
- c.array_p[i] = a.array_p[i] - b.array_p[i];
- }
- return c;
- }
- else
- {
- cout << "Error, arrays are mismatching sizes";
- }
- }
- //to nie jest mnozenie macierzy kwadratowych ale moze sie przydac
- /*
- friend macierz operator*(macierz &a,macierz &b)
- {
- if(a.n_cols==b.n_rows)
- {
- array temp(a.n_rows,b.n_cols);
- for(int i=0;i<temp.n_rows;i++)
- {
- for(int j=0;j<temp.n_cols;j++)
- {
- temp.array_p[i*temp.n_cols+j]=0;
- for(int k=0;k<a.n_cols;k++)
- {
- temp.array_p[i*temp.n_cols+j]+=a.array_p[i*a.n_cols+k]*b.array_p[k*b.n_cols+j];
- }
- }
- }
- return temp;
- }
- if(b.n_cols==a.n_rows)
- {
- array temp(b.n_rows,a.n_cols);
- for(int i=0;i<temp.n_rows;i++)
- {
- for(int j=0;j<temp.n_cols;j++)
- {
- temp.array_p[i*temp.n_cols+j]=0;
- for(int k=0;k<a.n_cols;k++)
- {
- temp.array_p[i*temp.n_cols+j]+=a.array_p[i*a.n_cols+k]*b.array_p[k*b.n_cols+j];
- }
- }
- }
- return temp;
- }
- else
- {
- }
- }
- */
- friend ostream& operator<<(ostream &wyjscie, const macierz &a)
- {
- int *temp = a.array_p;
- int i1, i2;
- for (i1 = 0; i1<a.size; i1++)
- {
- for (i2 = 0; i2<a.size; i2++)
- {
- wyjscie << *temp << "\t";
- temp++;
- }
- cout << endl;
- }
- return wyjscie;
- }
- };
- int main()
- {
- int choice;
- while (choice != 0) {
- cout << "===========MENU===========\t";
- cout << "==========================\t";
- cout << "== 1. add arrays\t";
- cout << "== 2. substract arrays\t";
- cout << "== 3. multiply arrays\t";
- cout << "== \t";
- cout << "== 0. program go commit die\t";
- cout << "==========================\t";
- cin >> choice;
- if (choice == 0) {
- cout << "Me is kill, rip :(";
- }
- else if (choice == 1) {
- int sizee;
- cout << "Type array's size:\t";
- cin >> sizee;
- macierz a(sizee), b(sizee), c(sizee);
- cout << "Fill first array:\t";
- a.fill;
- cout << "Fill second array:\t";
- b.fill;
- c = a + b;
- cout << c;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement