Sunteți pe pagina 1din 6

Matrici (Tablouri Bidimensionale)

Tabloul bidimensional, numit si MATRICE, este caracterizat, dupa cum ii spune si numele, de
numarul de linii si de coloane. Fiecare element din matrice este bine determinat de o linie si de o
coloana

O matrice poate arata astfel:


        Matricile prezentate mai sus sunt MATRICI PATRATICE (numarul de linii este egal
cu numarul de coloane), iar in C++ are anumite proprietati ajutatoare.
Acestea sunt cazuri particulare de matrici. Matricile in general pot avea numărul de linii
diferit de numărul de coloane.   Matricea se declara folosind comanda: 

tip nume [numar max. de linii] [numar max. de coloane];.

  Exemplu: int x[10][5].
 Am declarat o matrice de tip int cu maxim 10 linii si 5 coloane. Ca si la vectori, matricea
declarata este …goala. Trebuie sa ii atribuim elemente fiecarui spatiu liber. Atribuirea se
face aproximativ ca la vectori, doar ca aici vom avea doua repetitii, deoarece fiecarei linii ii
corespunde n-1 coloane, etc, si vom avea nevoie de o variabila i, ce va reprezenta linia, si
una j, ce va reprezenta coloana. Vom mai folosi inca 2 variabile, n si m, care vor reprezenta
numarul actual de linii, respectiv coloane

        Iata o matrice careia i-am atribuit cateva numere in mod aleator:
        Iata cum facem citirea valorilor (atribuirea valorilor) in C++:

 for (i=0; i<n; i++)


for (j=0; j<m; j++)
cin>>x[i][j];       

  In aceasta mica aplicatie, vom citi de la tastatura o matrice, si o vom


afisa pe ecran. Iata cum facem:
#include <iostream>
using namespace std;

int main ()
{
int x[10][10], n, m, i, j;//m=matricea, n, m= nr actual de linii/coloane, i, j=linia, respectiv coloana
cout<<”Dati numarul de linii: “; cin>>n;//citim nr de linii
cout<<”Dati numarul de coloane: “; cin>>m; //citim nr. de coloane
cout<<”Introduceti elementele matricei: “<<endl;
for (i=0; i<n; i++)
           for (j=0; j<m; j++)
                       {
                      cout<<”x["<<i<<"]["<<j<<"]=”;
                      cin>>x[i][j]; //citim elementele matricei
                       }
cout<<”Afisam matricea: “<<endl;
for (i=0; i<n; i++)
               for (j=0; j<m; j++)
              {cout<<x[i][j]<<” “;  //si afisam fiecare linie, respectiv coloana, dar cu un mic spatiu intre
elemente
              cout<<endl; //dupa fiecare linie terminata, trebuie sa trecem la alt rand
              }
}
Scrieti o aplicatie C++ care defineste doua matrici de
valori intregi. Dimensiunea si elementele matricilor
sunt citite de la tastatura. Cerințe:
a) afișați pozitiile elementelor pare din fiecare matrice
b) afișați suma elementelor impare din ambele matrice
c) afișați suma matricelor

#include <iostream>

using namespace std;

int main() {

   int n,m;

   int a[100][100],b[100][100],c[100][100];

   cout<<"m=";

   cin>>m;

   cout<<"n=";

   cin>>n;

   for(int i=0; i<m; i++)

       for(int j=0; j<n; j++)

       {

           cout<<"a["<<i<<"]["<<j<<"]=";

           cin>>a[i][j];

       }

   for(int i=0; i<m; i++)

       for(int j=0; j<n; j++)

       {
           cout<<"b["<<i<<"]["<<j<<"]=";

           cin>>b[i][j];

       }

   cout<<"A="<<endl;

   for(int i=0; i<m; i++)

   {

       for(int j=0; j<n; j++)

           cout<<a[i][j]<<" ";

       cout<<endl;

   }

   cout<<"B="<<endl;

   for(int i=0; i<m; i++)

   {

       for(int j=0; j<n; j++)

           cout<<b[i][j]<<" ";

       cout<<endl;

   }

   cout<<"Pozitii elemente pare din A:"<<endl;

   for(int i=0; i<m; i++)

       for(int j=0; j<n; j++)

           if(a[i][j] % 2 ==0)

               cout<<"("<<i<<","<<j<<")"<<endl;

   cout<<"Pozitii elemente pare din B:"<<endl;

   for(int i=0; i<m; i++)


       for(int j=0; j<n; j++)
           if(b[i][j] % 2 ==0)

               cout<<"("<<i<<","<<j<<")"<<endl;

   int s=0;

   for(int i=0; i<m; i++)

       for(int j=0; j<n; j++)

       {

           if(a[i][j] % 2 ==1)

               s=s+a[i][j];

           if(b[i][j] % 2 ==1)

               s=s+b[i][j];

       }

   cout<<"Suma elemente impare: "<<s<<endl;

   for(int i=0; i<m; i++)

       for(int j=0; j<n; j++)

       {
           c[i][j]=a[i][j]+b[i][j];
       }

   cout<<"A+B="<<endl;

   for(int i=0; i<m; i++)

   {
       for(int j=0; j<n; j++)

           cout<<c[i][j]<<" ";

       cout<<endl;
   }

   return 0;

S-ar putea să vă placă și