Proiect la informatica    TABLOURI BIDIMENSIONALE             CLASA A X-A A
I mplementarea tablourilor               bidimensionale                                *Tabloul are un numar bine*Un tablo...
M atrice* Descriere generalaSintaxa de declarare a unei matrice este: tip nume[m][n], unde: * tip – tipul de data folosit;...
Matricea cu m linii si n coloane arataastfel:
C itirea si afisarea unui tablou                   bidimensional*Citirea elementelor unui tablou nu este posibila decat pr...
I ntroducerea si afisarea valorilor*Programul alaturat citeste si     #include<iostream.h>   afiseaza o matrice. Initial  ...
* Organizarea unui tablou bidimensional inmemorie este reprezentata in figura de mai jos:Ex:Introducerea unui tablou de 6 ...
P relucrari asupra matricelorExemplu : Pentru o matrice data             - Se parcurge matricea element cu    sa se calcul...
I nterschimbarea de linii*Se citeste un tablou cu m linii si ncoloane.*Se citesc,de asemenea,2 numerenaturale,distincte,x ...
P rogramul C / ++pentru interschimbarea a               C                 doua linii#include<iostream.h>               for...
M atricea patratica* Se citeste un tablou cu n linii si n coloane, numere intregi.  Un astfel de tablou, in care numarul l...
*In figura de mai jos este reprezentat un tablou cu patru linii sipatru coloane. In fiecare dintre casute este precizat in...
M atrice simetrica* In practica apar cazuri in care matricele au anumite caracteristici care   permit o stocare mai eficie...
*Calculul pozitiei elementului i,j dintr-o matrice dedimensiune n se face dupa formula:  p=(n-1)+(n-2)+…+(n-i)+j=i*n-(1+2+...
B I B L I OGR A F I E* Tudor Sorin – Informatică, Varianta C++, Manual pentru  clasa a XI-a, Editura L&S Infomat, Bucurest...
Upcoming SlideShare
Loading in …5
×

Tablouri bidimensionale

10,257 views

Published on

Published in: Education
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
10,257
On SlideShare
0
From Embeds
0
Number of Embeds
43
Actions
Shares
0
Downloads
112
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Tablouri bidimensionale

  1. 1. Proiect la informatica TABLOURI BIDIMENSIONALE CLASA A X-A A
  2. 2. I mplementarea tablourilor bidimensionale *Tabloul are un numar bine*Un tablou bidimensional determinat de elemente si este o succesiune de locatii de memorie se identifica printr-un recunoscute prin acelasi singur nume. identificator si prin *Valorile atribuite pozitia fiecareia in cadrul elementelor tabloului sirului. trebuie sa fie de acelasi tip.*Pozitia este data printr-o *Tablourile bidimensionale se suita de numere numesc MATRICE. pozitive(indecsi), care reprezinta cele doua dimensiuni (linie si coloana).
  3. 3. M atrice* Descriere generalaSintaxa 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 matriceExemple de declaratii:// matrice de intregi cu 10 linii si 10 coloaneint vanzari[10][10];// vector de valori realefloat temperature[3][15]; Memorarea matricelor se face, ca si in cazul vectorilor, intr-un spatiucontinuu de memorie. Numele matricei e un pointer catre adresa primuluielement.Elementele matricei sunt stocate in memorie linie dupa linie.
  4. 4. Matricea cu m linii si n coloane arataastfel:
  5. 5. C itirea si afisarea unui tablou bidimensional*Citirea elementelor unui tablou nu este posibila decat prin citirea fiecarui element. De aceea, la fel ca si in cazul vectorilor, operatia de citire a matricelor impune folosirea a doua secvente ciclice suprapuse. Acestea corespund indicelor liniei (i), respectiv coloanei (j).*Exemplu: Declararea unei matrice cu 10 linii şi 9 coloane, cu elemente de tip intreg este: Int a[10][9];Matricea are liniile 1,2…,10 şi coloanele 1, 2,…,9 si, de exemplu, elementul de pe linia a treia si coloana a patra se adresează prin a[3][4]De multe ori nu ştim câte linii şi câte coloane va trebui să aibă tabloul. În acest caz , tabloul se declară cu un număr maxim de linii şi un număr maxim de coloane, în aşa fel încât acesta să corespundă oricărui set de date de intrare. Evident , într-un astfel de caz există o risipă de memorie internă.
  6. 6. I ntroducerea si afisarea valorilor*Programul alaturat citeste si #include<iostream.h> afiseaza o matrice. Initial main() se citesc numarul de linii si { int m,n,i,j,a[10][10]; coloane ale tabloului (m si cout<<"m="; cin>>m; n). cout<<"n="; cin>>n; for (i=1; i<=m;i++) for (j=1; j<=n; j++) { cout<<"a["<<i<<,<<j<<"]=";*In memorie, tablourile sunt cin>>a[i][j];} memorate pe linii (prima for (i=1;i<=m;i++) linie, a doua s.a.m.d). { for (j=1;j<=n;j++) cout<<a[i][j]<< ; cout<<endl; } }
  7. 7. * Organizarea unui tablou bidimensional inmemorie este reprezentata in figura de mai jos:Ex:Introducerea unui tablou de 6 linii si 8 coloane,avandele-mente intregi,este de forma:Int x[6][8]Exemplu de instructiuni de atribuire: x[0][0]=23; x[0][5]=67; X [0 ] [1 ] [2 ] [3 ] [4 ] [5 ] [6 ] [7 ] [0 ] 23 67 [1 ] [2 ] [3 ] [4 ] [5 ]
  8. 8. P relucrari asupra matricelorExemplu : Pentru o matrice data - Se parcurge matricea element cu sa se calculeze suma element. Se testeaza daca elementelor care apartin unui elementul curent se incadreaza in interval dat (xinf<=tab[i][j] && intervalul dorit si în caz afirmativ xsup>=tab[i][j]). elementul curent se aduna laPrezentarea algoritmului : suma calculata anterior- se citesc capetele intervalului in pentru i=0,m-1 executa care trebuie sa se incadreze pentru j=0,n-1 executa elementele cautate in matrice daca tab[i][j] > xi si tab[i][j]xinf şi xsup < xf atunci- se citesc dimensiunile matricei suma = suma + tab[i][j];m si n sfarsit daca- se citesc elementele matricei sfarsit pentrupentru i=0,m-1 executa sfarsit pentru pentru j=0,n-1 executa - afiseaza suma. citeste tab[i][j]; Observatie : Variabila suma sfarsit pentru reprezinta suma calculata. sfarsit pentru
  9. 9. I nterschimbarea de linii*Se citeste un tablou cu m linii si ncoloane.*Se citesc,de asemenea,2 numerenaturale,distincte,x si y,cuprinseintre 1 si m.*Se cere sa se interschimbe linia xcu linia y.*La inceput vom afisa tabloulinitial,apoi pe cel obtinut prin interschimbarealiniilor x si y.
  10. 10. P rogramul C / ++pentru interschimbarea a C doua linii#include<iostream.h> for(i=1;i<=m;i++)main() {for(j=1;j<=n;j++){ cout<<a[i][j]<<``;int m,n,i,j,aux,a[10][10]; cout<<endl;}cout<<``m=``;cin>>m; {cout<<``n=``;cin>>n; aux=a[x][j];for(i=1;i<=m;i++) a[x][j]=a[y][j]for(j=1;j<=n;j++) a[y][j]=aux;}{ cout<<endl;cout<<``a[``<<i<<`,`<<j<<``]=``; for(i=1;i<=m;i++)cin>>a[i][j]; {for(j=1;j<=n;j++)} cout<<a[i][j]<<``;cout<<``x=``;cin>>x; cout<<endl;cout<<``y=``;cin>>y; }}cout<<endl;
  11. 11. M atricea patratica* Se citeste un tablou cu n linii si n coloane, numere intregi. Un astfel de tablou, in care numarul liniilor este egal cu numarul coloanelor, poarta denumirea de matrice patratica.* O matrice patratica are doua diagonale: principala si secundara.* Pentru un tablou patratic A, numim diagonala principala, elementele aflate pe “linia” care uneste A[1][1] cu A[n][n].* Pentru un tablou patratic A, numim diagonala secundara, elementele aflate pe “linia” care uneste A[n][1] cu A[1][n]
  12. 12. *In figura de mai jos este reprezentat un tablou cu patru linii sipatru coloane. In fiecare dintre casute este precizat indicele delinie si de coloană pentru fiecare element.Observatie! Se poate memora matricea incepand cu valoarea 1pentru indicele de linie si de coloana.(Elementul A32 este elementulde pe linia 3 ,coloana2). Elementele diagonalei principale(rosu),elementele celeisecundare(albastru). A11 A12 A13 A14 A21 A22 A23 A24 A31 A32 A33 A34 A41 A42 A43 A44
  13. 13. M atrice 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 corespondentelede sub si de peste diagonala principala sunt egale (adica m[i][j] = m[j][i]pentru oricare i si j). 1 2 3 4 2 5 6 7 3 4 8 9 7 8 9 10 Matricea va fi liniarizata sub forma: 1 2 3 4| 5 6 7| 8 9 10
  14. 14. *Calculul pozitiei elementului i,j dintr-o matrice dedimensiune n se face dupa formula: p=(n-1)+(n-2)+…+(n-i)+j=i*n-(1+2+…+i)+j=i*n-i*(n+1)/2+j,pentru j<=i. Daca j>i,atunci se interschimba i cu j.
  15. 15. B I B L I OGR A F I E* Tudor Sorin – Informatică, Varianta C++, Manual pentru clasa a XI-a, Editura L&S Infomat, Bucuresti, 2006.*LaboratorProgramarea calculatoarelor-Prf.A.Runceanu.

×