Advertisement
Dani_info

Tema 8.05

May 8th, 2018
122
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #include <iostream>
  2.  
  3.  
  4. /*1.    Se consideraun tablou bidimensional cu n linii ~i m coloane ce contine numere naturale. Realizati un program care determina suma
  5.  elementelor de pe fiecare linie cu numar de ordine par si produsul elementelor de pe fiecare coloana cu numar de ordine impar.
  6. */
  7. /*2.    Se considera un tablou bidimensional cu n linii si n coloane ce contine numere naturale. Realizati un program care deterrnina
  8. elementul maxim de pe diagonala principalaa matricei si linia pe care acesta este situat.
  9. */
  10. /*5.    Realizati un program care determine numarul liniei eu eele mai multe elemente pare, al unei matrice patratice de dimensiune nxn.
  11.  Daca exista rnai rnulte linii cu numar maximde elemente pare se va afisa una singura. */
  12.  /*7.   Realizati un program care deterrnine eel mai mare divizor comun al elementelor situate pe fiecare coloana, a unei matrici patratice.*/
  13.  
  14.  
  15. using namespace std;
  16.  
  17. int cmmdc(int[], int);
  18.  
  19. int main()
  20. {
  21.     int pb; cout<<"Introdu nr probl."; cin>>pb;
  22.     switch(pb){
  23.         case 1:{//pb 1
  24.             int n, m;
  25.             cout<<"n="; cin>>n; cout<<"m="; cin>>m;
  26.             cout<<"Scrie matricea:"<<endl;
  27.             int v[n][m];
  28.             for (int i=0; i<n; i++){
  29.                 for (int j=0; j<m; j++)
  30.                     cin>>v[i][j];
  31.             }
  32.             int sl=0;//suma pe linie
  33.             int pc=1;//produs pe coloana
  34.             for (int i=0; i<n; i++){
  35.                 if (i%2==0){
  36.                     for (int j=0; j<m; j++)
  37.                         sl+=v[i][j];
  38.                 }
  39.             }
  40.             for (int i=0; i<m; i++){
  41.                 if (i%2){
  42.                     for (int j=0; j<n; j++)
  43.                         pc*=v[j][i];
  44.                 }
  45.             }
  46.             cout<<"Suma pe linie este:"<<sl<<endl;
  47.             cout<<"Produsul pe coloana etse:"<<pc;
  48.             break;
  49.         }
  50.         case 2:{//pb 2
  51.             int n; cout<<"n="; cin>>n;
  52.             int v[n][n];
  53.             for (int i=0; i<n; i++){
  54.                 for (int j=0; j<n; j++)
  55.                     cin>>v[i][j];
  56.             }
  57.             int nmax=0, l=0;
  58.             for (int i=0; i<n; i++){
  59.                 if(v[i][i]>=nmax){
  60.                     nmax=v[i][i];
  61.                     l=i;
  62.                 }
  63.             }
  64.             cout<<"Numarul maxim este: "<<nmax<<" si se afla pe linia "<<l<<endl;
  65.             break;
  66.         }
  67.         case 5:{//pb 5
  68.             int n; cout<<"n="; cin>>n;
  69.             int v[n][n];
  70.             cout<<"Introdu matricea:"<<endl;
  71.             for (int i=0; i<n; i++){
  72.                 for (int j=0; j<n; j++)
  73.                     cin>>v[i][j];
  74.             }
  75.             int nrmax=0, l, nr;
  76.             for (int i=0; i<n; i++){
  77.                 nr=0;//nr de nr pare
  78.                 for(int j=0; j<n; j++){
  79.                     if (v[i][j]%2==0)
  80.                         nr++;
  81.                 }
  82.                 if (nr>=nrmax){
  83.                     nrmax=nr;
  84.                     l=i;
  85.                 }
  86.             }
  87.  
  88.             cout<<"Cele mai multe nr pare sunt pe linia "<<l<<endl;//l-1 daca se incepe de la 0
  89.             break;
  90.         }
  91.         case 7:{//pb 7
  92.             int n;
  93.             cout<<"n="; cin>>n;
  94.             int v[n][n];
  95.             cout<<"Introdu matricea:"<<endl;
  96.             for(int i=0; i<n; i++){
  97.                 for (int j=0; j<n; j++)
  98.                     cin>>v[i][j];
  99.             }
  100.  
  101.             for (int i=0; i<n; i++){
  102.                 int lin=0;
  103.                 int c[n];
  104.                 for (int j=0; j<n; j++)
  105.                     c[j]=v[lin++][i];
  106.                 cout<<cmmdc (c,n)<<" ";
  107.             }
  108.         }
  109.  
  110.     }
  111.     return 0;
  112. }
  113.  
  114.  
  115. int cmmdc(int v[], int n)
  116. {
  117.     int i=1;
  118.     int cm=v[0];
  119.     while (i<n){
  120.         int r;
  121.         int x=v[i];
  122.         r = v[i] % cm;
  123.         while(r)
  124.         {
  125.             x=cm;
  126.             cm=r;
  127.             r=x%cm;
  128.         }
  129.         i++;
  130.     }
  131.     return cm;
  132. }
Advertisement
RAW Paste Data Copied
Advertisement