Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- using std::cin;
- using std::cout;
- const int maxSize=10;
- void vnesiMatrica (double matrica[][maxSize], int r, int c)
- {
- for (int i=0; i < r; i++)
- {
- for (int j=0; j < c; j++)
- {
- cout<<"matrica["<<i<<"]["<<j<<"]=";
- cin>>matrica[i][j];
- }
- }
- }
- void pecatiMatrica (double matrica[][maxSize], int r, int c)
- {
- for (int i=0; i < r; i++)
- {
- for (int j=0; j < c; j++)
- {
- cout<<matrica[i][j]<<"\t";
- }
- cout<<"\n";
- }
- }
- void zbirMatrici (double sobirok1[][maxSize], double sobirok2[][maxSize], double zbirMatrici[][maxSize], int r, int c)
- {
- for(int i = 0; i < r; i++)
- {
- for(int j = 0; j < c; j++)
- {
- zbirMatrici[i][j] = sobirok1[i][j] + sobirok2[i][j];
- }
- }
- }
- void razlikaMatrici (double namalenik[][maxSize], double namalitel[][maxSize], double razlika[][maxSize], int r, int c)
- {
- for(int i = 0; i < r; i++)
- {
- for(int j = 0; j < c; j++)
- {
- razlika[i][j] = namalenik[i][j] - namalitel[i][j];
- }
- }
- }
- double zbirGlavnaDijagonala(double matrica[][maxSize], int N)
- {
- double zbir=0;
- for (int i=0; i < N; i++)
- {
- for (int j=0; j <N; j++)
- {
- if (i==j) zbir+=matrica[i][j];
- }
- }
- return zbir;
- }
- double zbirSporednaDijagonala (double matrica[][maxSize], int N)
- {
- double zbir=0;
- for (int i=0; i < N; i++)
- {
- for (int j=0; j < N; j++)
- {
- if ( i + j == N - 1) zbir+=matrica[i][j];
- }
- }
- return zbir;
- }
- void mnozenjeSkalar (double matrica[][maxSize], double matRezultat[][maxSize], double K, int r, int c)
- {
- for (int i=0;i < r; i++)
- {
- for ( int j=0; j < c; j++)
- {
- matRezultat[i][j]=K*matrica[i][j];
- }
- }
- }
- void mnoziMatrici(double m1[][maxSize], double m2[][maxSize], double rez[][maxSize], int r1, int rc, int c2)
- {
- for(int i = 0; i < r1; i++)
- for(int j = 0; j < c2; j++)
- rez[i][j] = 0;
- for(int i = 0; i < r1; i++)
- for(int j = 0; j < c2; j++)
- for(int k = 0; k < rc; k++)
- rez[i][j] += m1[i][k]*m2[k][j];
- }
- int meni()
- {
- cout << "Odberi:\n";
- cout << "1. Zbiranje matrici\n";
- cout << "2. Odzemanje matrici\n";
- cout << "3. Mnozenje matrici\n";
- cout << "4. Mnozenje matrica so skalar\n";
- cout << "5. Zbir po glavna dijagonala\n";
- cout << "6. Zbir po sporedna dijagonala\n";
- cout<< "7. Izlez.\n";
- int izbor;
- cout << "Vasiot izbor: ";
- cin >> izbor;
- return izbor;
- }
- int main()
- {
- int r1, r2, c1, c2, k;
- double m1[maxSize][maxSize];
- double m2[maxSize][maxSize];
- double r[maxSize][maxSize];
- double zbir;
- cout << "\t\t\tKalkulator so matrici\n\n";
- int izbor = meni();
- while(izbor != 7)
- {
- switch(izbor)
- {
- case 1:
- cout<<"Vnesi go brojot na redici na prvata matrica: ";
- cin>>r1;
- cout<<"Vnesi go brojot na koloni na prvata matrica: ";
- cin>>c1;
- cout << "Vnesi ja prvata matrica:\n";
- vnesiMatrica(m1, r1, c1);
- cout<<"Vnesi go brojot na redici na vtorata matrica: ";
- cin>>r2;
- cout<<"Vnesi go brojot na koloni na vtorata matrica: ";
- cin>>c2;
- cout << "Vnesi ja vtorata matrica:\n";
- vnesiMatrica(m2, r2, c2);
- if(r1 == r2 && c1 == c2)
- {
- zbirMatrici(m1, m2, r, r1, c1);
- cout << "Zbirot na matricite e matricata:\n";
- pecatiMatrica(r, r1, c1);
- }
- else
- {
- cout << "Ne moze da se zbiraat matrici so razlicni dimenzii\n";
- }
- break;
- case 2:
- cout<<"Vnesi go brojot na redici na prvata matrica: ";
- cin>>r1;
- cout<<"Vnesi go brojot na koloni na prvata matrica: ";
- cin>>c1;
- cout << "Vnesi ja prvata matrica:\n";
- vnesiMatrica(m1, r1, c1);
- cout<<"Vnesi go brojot na redici na vtorata matrica: ";
- cin>>r2;
- cout<<"Vnesi go brojot na koloni na vtorata matrica: ";
- cin>>c2;
- cout << "Vnesi ja vtorata matrica:\n";
- vnesiMatrica(m2, r2, c2);
- if(r1 == r2 && c1 == c2)
- {
- razlikaMatrici(m1, m2, r, r1, c1);
- cout << "Razlikata na matricite e matricata:\n";
- pecatiMatrica(r, r1, c1);
- }
- else
- {
- cout << "Ne moze da se odzemaat matrici so razlicni dimenzii\n";
- }
- break;
- case 3:
- cout<<"Vnesi go brojot na redici na prvata matrica: ";
- cin>>r1;
- cout<<"Vnesi go brojot na koloni na prvata matrica: ";
- cin>>c1;
- cout << "Vnesi ja prvata matrica:\n";
- vnesiMatrica(m1, r1, c1);
- cout<<"Vnesi go brojot na redici na vtorata matrica: ";
- cin>>r2;
- cout<<"Vnesi go brojot na koloni na vtorata matrica: ";
- cin>>c2;
- cout << "Vnesi ja vtorata matrica:\n";
- vnesiMatrica(m2, r2, c2);
- if(c1 == r2)
- {
- mnoziMatrici(m1, m2, r, r1, c1, c2); //isto so mnoziMatrici(m1, m2, r, r1, r2, c2);
- cout << "Proizvodot na matricite e matricata:\n";
- pecatiMatrica(r, r1, c1);
- }
- else
- {
- cout << "Ne moze da se mnozat dadenite matrici\n";
- }
- break;
- case 4:
- cout<<"Vnesi go brojot na redici na matricata: ";
- cin>>r1;
- cout<<"Vnesi go brojot na koloni na matricata: ";
- cin>>c1;
- cout << "Vnesi ja matricata:\n";
- vnesiMatrica(m1, r1, c1);
- cout<<"Vnesi go brojot so koj sakas da e mnozis matricata: ";
- cin>>k;
- mnozenjeSkalar(m1, r, k, r1, c1);
- cout << "Matricata rezultat e:\n";
- pecatiMatrica(r, r1, c1);
- break;
- case 5:
- cout<<"Vnesi go brojot na redici na matricata: ";
- cin>>r1;
- cout<<"Vnesi go brojot na koloni na matricata: ";
- cin>>c1;
- if(r1 == c1)
- {
- cout << "Vnesi ja matricata:\n";
- vnesiMatrica(m1, r1, c1);
- zbir = zbirGlavnaDijagonala(m1, r1);
- cout << "Zbirot na elementite po glavnata dijagonala e: " << zbir << "\n";
- }
- else
- {
- cout << "Matricata ne e kvadratna.\n";
- }
- break;
- case 6:
- cout<<"Vnesi go brojot na redici na matricata: ";
- cin>>r1;
- cout<<"Vnesi go brojot na koloni na matricata: ";
- cin>>c1;
- if(r1 == c1)
- {
- cout << "Vnesi ja matricata:\n";
- vnesiMatrica(m1, r1, c1);
- zbir = zbirSporednaDijagonala(m1, r1);
- cout << "Zbirot na elementite po sporednata dijagonala e: " << zbir << "\n";
- }
- else
- {
- cout << "Matricata ne e kvadratna.\n";
- }
- break;
- default:
- cout << "Ne mozes da izberes " << izbor <<"\n";
- }
- izbor = meni();
- }
- cout << "Doviduvanje...\n";
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement