Sunteți pe pagina 1din 3

Tablouri bidimensionale (matrice)

Este o structură de date, care conţine mai multe elemente de acelaşi tip, aşezate în n
rânduri şi m coloane.
tablou unidimensional = vector ex: a ( 5 7 -3 2 8 )

tablou bidimensional = matrice ex: b

Declarare:
1. ex: int t [10]; – declararea unui vector cu 10 elemente;
elementele sunt numere întregi (int)

0 1 2 3 4 5 6 7 8 9
t 0 5 7 -3 2 8 0 0 0 0

Referire la un element: t[0]


t[1]
...
t[9]

2. ex: float a [5][10]; – declararea unei matrice; elementele sunt


numere reale (float); are 5 rânduri şi 10
rând coloană coloane

- putem lucra doar cu această


parte a matricei

a 1 2 3 4
1 1 7 0 31 a[1][2]  7
2 -2 5 8 3 a[1][4]  31
3 7 2 14 6 a[3][2]  2

Probleme:
Se dau numerele n şi m. Citiţi de la tastatură elementele matricei a, care are n rânduri şi
m coloane. Afişaţi matricea pe ecran.
Rezolvare:
– cum citim un tablou unidimensional?
...
cout <<”n= ”; cin>>n;
for(i=1; i<=n; i++)
cin>>t[i];
...

– elementele unui tablou bidimensional de obicei le parcurgem cu două instrucţiuni for.


...
int a[10][20],i,j,n,m;
cout <<”Numarul randurilor= ”; cin>>n;
cout <<”Numarul coloanelor= ”; cin>>m;
for(i=1; i<=n; i++)
for(j=1; j<=m; j++)
cin>>a[i][j];
...

O posibilitate de citire mai elegantă:


for(i=1; i<=n; i++)
for(j=1; j<=m; j++)
{cout<<”a[”<<i<<”,”<<j<<”]= ”;
cin>>a[i][j];
}

Probleme:

1. Citiţi o matrice de la tastatură, după care afişaţi valoarea dublă a fiecărui element din
matrice! Tema

2. a) Determinaţi suma elementelor matricei! tema


b) Determinaţi suma fiecărui rând din matrice!

3. Determinaţi cel mai mic element al matricei! Tema

4. Citiţi de la tastatură o matrice cu n rânduri şi m coloane. Afişaţi pe ecran o steluţă (*) în


locul elementelor pare ale matricei, iar o linie (-) în locul elementelor impare.
ex. m=2 n = 3
5 8 6 –**
1 12 7 –*–

5. Citiţi de la tastatură o matrice. Afişaţi elementele matricei pe ecran parcurgând coloanele


acesteia.
6. Scrieţi un program, care citeşte de la tastatură o matrice cu n rânduri şi m coloane. Să se
afle cel mai mic şi cel mai mare element al matricei, după care programul să interschimbe
aceste două valori.
ex.

7. Citiţi de la tastatură două numere naturale: n şi k. Scrieţi un program care construieşte în


memorie o matrice de n rânduri şi n coloane, care conţine valoarea 0 pe rândul k, valoare 1
pe rândurile dinaintea rândului k şi valoarea 2 după rândul k.

ex.

Model:

#include <iostream>

using namespace std;

int main()
{
int n,m,i,j,a[10][5];
cout<<"n:";
cin>>n;
cout<<"m:";
cin>>m;
for(i=1;i<=n;i++)
for(j=1;j<=m;j++)
cin>>a[i][j]; // citirea matricei
cout<<"Linia si coloana:";
for(i=1;i<=n;i++) // afisarea
{
cout<<endl;
for(j=1;j<=m;j++)
cout<<a[i][j] <<" ";
}
}

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