Documente Academic
Documente Profesional
Documente Cultură
informatica
TABLOURI
BIDIMENSIONALE
CLASA A X-A A
Implementarea tablourilor
bidimensionale
*Un
tablou bidimensional
este o succesiune de
locatii de memorie
recunoscute prin
acelasi identificator si
prin pozitia fiecareia in
cadrul sirului.
Matrice
* Descriere generala
Sintaxa de declarare a unei matrice este: tip nume[m][n], unde:
* tip tipul de data folosit; poate fi unul din tipurile de baza (int, float, char,
) sau
un tip definit de utilizator (articole, obiecte)
* nume numele prin care va fi referita matricea
* m numarul de linii din matrice
* n- numarul de coloane din matrice
Exemple de declaratii:
// matrice de intregi cu 10 linii si 10 coloane
int vanzari[10][10];
// vector de valori reale
float temperature[3][15];
Memorarea matricelor se face, ca si in cazul vectorilor, intr-un spatiu
continuu de memorie. Numele matricei e un pointer catre adresa primului
element.Elementele matricei sunt stocate in memorie linie dupa linie.
Introducerea si afisarea
valorilor
*Programul alaturat
citeste si afiseaza o
matrice. Initial se
citesc numarul de linii
si coloane ale tabloului
(m si n).
#include<iostream.h>
main()
{ int m,n,i,j,a[10][10];
cout<<"m="; cin>>m;
cout<<"n="; cin>>n;
for (i=1; i<=m;i++)
for (j=1; j<=n; j++)
{ cout<<"a["<<i<<','<<j<<
"]=";
cin>>a[i][j];}
for (i=1;i<=m;i++)
{ for (j=1;j<=n;j++)
cout<<a[i][j]<<' ';
cout<<endl; } }
* Organizarea
[0 ]
[1 ]
[2 ]
[3 ]
[4 ]
[5 ]
[6 ]
[7 ]
[0 ]
23
7
Exemplu de instructiuni
de 6atribuire:
x[0]
[1 ]
[0]=23; x[0][5]=67;
[2 ]
[3 ]
[4 ]
[5 ]
Prelucrari asupra
matricelor
Exemplu : Pentru o matrice data
sa se calculeze suma
elementelor care apartin unui
interval dat (xinf<=tab[i][j]
&& xsup>=tab[i][j]).
Prezentarea algoritmului:
- se citesc capetele intervalului
in care trebuie sa se incadreze
elementele cautate in matrice
xinfi xsup
- se citesc dimensiunile matricei
msi n
- se citesc elementele matricei
pentru i=0,m-1 executa
pentru j=0,n-1 executa
citeste tab[i][j];
sfarsit pentru
sfarsit pentru
- suma = 0;
Interschimbarea de linii
*Se citeste un tablou cu m linii si n
coloane.
*Se citesc,de asemenea,2 numere
naturale,distincte,x si y,cuprinse
intre 1 si m.
*Se cere sa se interschimbe linia x
cu linia y.
*La inceput vom afisa tabloul
initial,apoi pe cel obtinut prin
interschimbarea
liniilor x si y.
Programul C/C++pentru
interschimbarea a doua linii
#include<iostream.h>
main()
for(i=1;i<=m;i++)
{for(j=1;j<=n;j++)
{
int m,n,i,j,aux,a[10][10];
cout<<``m=``;cin>>m;
cout<<``n=``;cin>>n;
for(i=1;i<=m;i++)
for(j=1;j<=n;j++)
{
cout<<``a[``<<i<<`,`<<j<<``]=``;
cin>>a[i][j];
}
cout<<``x=``;cin>>x;
cout<<``y=``;cin>>y;
cout<<endl;
cout<<a[i][j]<<``;
cout<<endl;}
{
aux=a[x][j];
a[x][j]=a[y][j]
a[y][j]=aux;}
cout<<endl;
for(i=1;i<=m;i++)
{for(j=1;j<=n;j++)
cout<<a[i][j]<<``;
cout<<endl;
}}
Matricea
patratica
A22
A23
A24
A31
A32
A33
A34
A41
A42
A43
A44
Matrice simetrica
* In practica apar cazuri in care matricele au anumite caracteristici
care permit o stocare mai eficienta decat cea standard.Un astfel
de exemplu este reprezentat de matricea simetrica.
Matricele simetrice sunt matrice patratice in care corespondentele
de sub si de peste diagonala principala sunt egale (adica m[i][j] =
m[j][i]
pentru oricare i si j).
1
2
3
7
2
5
4
8
3 4
6 7
8 9
9 10
pentru j<=i.
Daca j>i,atunci se interschimba i cu j.
BIBLIOGRAFIE
* Tudor Sorin Informatic, Varianta C++, Manual pentru
clasa a XI-a, Editura L&S Infomat, Bucuresti, 2006.
*Laborator\Programarea calculatoarelor-Prf.A.Runceanu.
Grupa:VIRTUALART
Duta Cristina
Vasile Raluca
Marinescu Catalin
Ivascu Constantin
Matei Alexandru