Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <cstdlib>
- #include <time.h>
- using namespace std;
- void wypisz(int** A,int a,int b)
- {
- for(int w=0;w<a;w++)
- {
- for(int k=0;k<b;k++)
- {
- cout << A[w][k] << "\t";
- }
- cout << endl;
- }
- }
- int** losuj(int a,int b)
- {
- int** A=new int*[a];
- for(int i=0;i<a;i++)
- {
- A[i]=new int[b];
- }
- for(int w=0;w<a;w++)
- {
- for(int k=0;k<b;k++)
- {
- A[w][k]=rand()%10;
- }
- }
- return A;
- }
- int** pomnoz(int **A,int a,int b,int l)
- {
- int** B=new int*[a];
- for(int i=0;i<a;i++)
- {
- B[i]=new int[b];
- }
- for(int w=0;w<a;w++)
- {
- for(int k=0;k<b;k++)
- {
- B[w][k]=A[w][k]*l;
- }
- }
- return B;
- }
- float srednia(int **A,int a,int b)
- {
- float s=0;
- for(int w=0;w<a;w++)
- {
- for(int k=0;k<b;k++)
- {
- s+=A[w][k];
- }
- }
- return s/(a*b);
- }
- int maks(int **A,int a,int b)
- {
- int m=A[0][0];
- for(int w=0;w<a;w++)
- {
- for(int k=0;k<b;k++)
- {
- if(A[w][k]>m)
- m=A[w][k];
- }
- }
- return m;
- }
- int mini(int **A,int a,int b)
- {
- int m=A[0][0];
- for(int w=0;w<a;w++)
- {
- for(int k=0;k<b;k++)
- {
- if(A[w][k]<m)
- m=A[w][k];
- }
- }
- return m;
- }
- int** dodaj(int **A,int **B,int a,int b)
- {
- int** C=new int*[a];
- for(int i=0;i<a;i++)
- {
- C[i]=new int[b];
- }
- for(int w=0;w<a;w++)
- {
- for(int k=0;k<b;k++)
- {
- C[w][k]=A[w][k]+B[w][k];
- }
- }
- return C;
- }
- int** odejmij(int **A,int **B,int a,int b)
- {
- int** C=new int*[a];
- for(int i=0;i<a;i++)
- {
- C[i]=new int[b];
- }
- for(int w=0;w<a;w++)
- {
- for(int k=0;k<b;k++)
- {
- C[w][k]=A[w][k]-B[w][k];
- }
- }
- return C;
- }
- int** pomnoz(int **A,int **B,int a,int b, int L)
- {
- int** C=new int*[a];
- for(int i=0;i<a;i++)
- {
- C[i]=new int[L];
- }
- for(int w=0;w<a;w++)
- {
- for(int k=0;k<L;k++)
- {
- C[w][k]=0;
- for(int i=0;i<b;i++)
- {
- C[w][k]+=A[w][i]*B[i][k];
- }
- }
- }
- return C;
- }
- int wyznacznik(int **A,int a)
- {
- if(a==2)
- {
- return A[0][0]*A[1][1]-A[0][1]*A[1][0];
- }
- else if(a==1)
- {
- return A[0][0];
- }
- else if(a==3)
- {
- return A[0][0]*A[1][1]*A[2][2]+A[1][0]*A[2][1]*A[0][2]+A[2][0]*A[0][1]*A[1][2]-A[0][2]*A[1][1]*A[2][0]+A[1][2]*A[2][1]*A[0][0]+A[2][2]*A[0][1]*A[1][0];
- }
- else
- {
- cout << "Podana macierz jest za duza"<< endl;
- }
- }
- char wyborDzialania()
- {
- char x;
- cout << "podaj dzialanie: + dodawanie, - odejmowanie, * mnozenie, d wyznacznik, k koniec" << endl;
- cin >> x;
- return x;
- }
- int main()
- {
- char x='a';
- while(x!='k')
- {
- int a,b,c,d;
- x=wyborDzialania();
- int **A;
- int **B;
- if(x=='+' || x=='-' || x=='*')
- {
- cout << "podaj wymiary pierwszej macierzy" << endl;
- cin >> a;
- cin >> b;
- cout << "podaj wymiary drugiej macierzy" << endl;
- cin >> c;
- cin >> d;
- A=new int*[a];
- for(int i=0;i<a;i++)
- {
- A[i]=new int[b];
- }
- B=new int*[c];
- for(int i=0;i<c;i++)
- {
- B[i]=new int[d];
- }
- cout << "podaj wspolczynniki 1 macierzy (wierszami)" << endl;
- for(int w=0;w<a;w++)
- {
- cout << "Wiersz: " << w+1 << endl;
- for(int k=0;k<b;k++)
- {
- cin >> A[w][k];
- }
- }
- cout << "podaj wspolczynniki 2 macierzy (wierszami)" << endl;
- for(int w=0;w<c;w++)
- {
- cout << "Wiersz: " << w+1 << endl;
- for(int k=0;k<d;k++)
- {
- cin >> B[w][k];
- }
- }
- }
- else if(x!='k')
- {
- cout << "podaj wymiary macierzy" << endl;
- cin >> a;
- cin >> b;
- A=new int*[a];
- for(int i=0;i<a;i++)
- {
- A[i]=new int[b];
- }
- cout << "podaj wspolczynniki macierzy (wierszami)" << endl;
- for(int w=0;w<a;w++)
- {
- cout << "Wiersz: " << w+1 << endl;
- for(int k=0;k<b;k++)
- {
- cin >> A[w][k];
- }
- }
- }
- if(x=='p')
- {
- int l;
- cout << "podaj liczbe" << endl;
- cin >> l;
- }
- if(x=='+')
- {
- if(a==c && b==d)
- {
- cout << "suma macierzy: " << endl;
- wypisz(A,a,b);
- cout << "i macierzy: " << endl;
- wypisz(B,c,d);
- cout << "wynosi: " << endl;
- wypisz(dodaj(A,B,a,b),a,b);
- }
- else
- cout << "wymiary sie nie zgadzaja" << endl;
- }
- else if(x=='-')
- {
- if(a==c && b==d)
- {
- cout << "roznica macierzy: " << endl;
- wypisz(A,a,b);
- cout << "i macierzy: " << endl;
- wypisz(B,c,d);
- cout << "wynosi: " << endl;
- wypisz(odejmij(A,B,a,b),a,b);
- }
- else
- cout << "wymiary sie nie zgadzaja" << endl;
- }
- else if(x=='*')
- {
- if(b==c)
- {
- cout << "iloczyn macierzy: " << endl;
- wypisz(A,a,b);
- cout << "i macierzy: " << endl;
- wypisz(B,c,d);
- cout << "wynosi: " << endl;
- wypisz(pomnoz(A,B,a,b),a,b);
- }
- else
- cout << "wymiary sie nie zgadzaja" << endl;
- }
- else if(x=='d')
- {
- if(a==b)
- {
- cout << "wyznacznik macierzy: " << endl;
- wypisz(A,a,b);
- cout << "wynosi: " << wyznacznik(A,a) << endl;
- }
- else
- cout << "macierz nie jest kwadratowa" << endl;
- }
- else if(x=='p')
- {
- }
- else if(x=='k')
- {
- cout << "dziekuje za uwage" << endl;
- }
- else
- {
- cout << "wprowadziles zly znak" << endl;
- }
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement