Sunteți pe pagina 1din 5

LUCRARE DE LABORATOR NR. Tablouri bidimensionale.

Scopul lucrrii: nsuirea posibilitilor limbajului C++ referitor la operaii cu tablouri bidimensionale i elaborarea programelor de prelucrare a tablourilor bidimensionale. Exemplu de program. Este dat un tabloul bidimensional A[1..n,1..n]. Calculai tabloul B[1..n,1..n] conform regulii: dac a[i,j] are valoare par atunci b[i,j] este egal cu elementul maxim din trapezul haurat n A, iar dac a[i,j] are valoare impar atunci b[i,j] este egal cu elementul minim din trapezul haurat n A (vezi figura). Latura oblic este paralel cu diagonala secundar.

A=

Listingul programului:

#include<iostream.h> #include<conio.h> main(){ int a[50][50],b[50][50],i,j,n,x,y,min,max; clrscr(); cout<<"n=";cin>>n; cout<<"Introduceti tabelul A:\n"; for(i=0;i<n;i++) for(j=0;j<n;j++) cin>>a[i][j]; cout<<"tabelul B este:\n"; for(i=0;i<n;i++){ for(j=0;j<n;j++) if(a[i][j]%2!=0){min=a[i][j]; for(x=i;x<n;x++) for(y=0;y<n;y++) if(x+y>=i+j) if(min>a[x][y]) min=a[x][y]; b[i][j]=min; cout<<b[i][j]<<" ";}

else {max=a[i][j]; for(x=i;x<n;x++) for(y=0;y<n;y++) if(x+y>=i+j) if(max<a[x][y]) max=a[x][y]; b[i][j]=max; cout<<b[i][j]<<" ";} cout<<endl;} getch();}

Coninutul raportului: 1.Scopul lucrrii; 2.Condiia problemei n limbaj atematic.; 3.Textul programului n limbajul C++ (listing); 4.Exemplu de testare; 5.Concluzii. Variante. 1. Este dat un tabloul bidimensional A[1..n,1..n].Extragei tabloul unidimensional B[1..n] dup schema reprezentat n fig.1. A= Fig.1. A= Fig.2.

2. Este dat un tabloul bidimensional A[1..n,1..n].Calculai tabloul B[1..n,1..n] conform regulii: elementul b[i,j] este egal cu elementul maxim de pe triungiul obtinut n A (fig.2). 3. S se scrie un program care, pornind de la o matrice ptrat de n linii i n coloane , s permute ntre ele liniile i coloanele astfel nct elementele de pe diagonala principal s apar n ordine crescatoare. 4. Este dat un tabloul bidimensional A[1..n,1..n]. Calculai tabloul B[1..n,1..n] conform regulii: elementul b[i,j] este egal cu elementul minim din dreptungiul haurat din A (fig.3). aij

11 A= Fig.3 A= Fig.4 A= Fig.5

5. Este dat un tabloul bidimensional A[1..n,1..n]. Creai tabloul unidimensional B[1..n], care conine elementele maxime ale liniilor cuprinse ntre diagonale parcurse de sus n jos (fig.4). 6. Este dat un tabloul bidimensional A[1..n,1..n]. Creai tabloul unidimensional B[1..n], care conine elementele minime ale coloanelor cuprinse ntre diagonale parcurse de la stnga la dreapta (fig.5). 7. Este dat un tabloul bidimensional A[1..n,1..n]. Calculai tabloul B[1..n,1..n] ele mentele creia se determin dup schema: n A prin a[i,j] se traseaz diagonale paralele cu diagonala principal i secundar, elementului b[i,j] i se atribuie valoarea maxim din sectorul haurat n A (fig.6). B
aij

A= Fig.6

A= Fig.7

A= Fig.8

8. Este dat tabloul bidimensional A[1..n,1..n]. Elaborai un program care schimb cu locul coloanele egal deprtate de la punctul de intersecie a diagonalelor din sectorul din stnga cu cele ale sectorului din dreapta (fig.7). 9. Este dat tabloul bidimensional A[1..n,1..n]. Elaborai un program care schimb cu locul elementele liniilor egal deprtate

de la axa vertical de simetrie B din sectoarele din stnga i din dreapta (fig.8). 10. Este dat tabloul bidimensional A[1..n,1..n]. Elaborai un program care verific dac dou linii ale tabloului sunt identice. n caz afirmativ s se afieze indicii liniilor. 11. Este dat tabloul bidimensional A[1..n,1..n] delimitat n 4 sectoare (fig.9). Elaborai un program care: a) calculeaz valoare maxim a sectorului 1; b) calculeaz suma elementelor sectorului 2; c) calculeaz valoare minim a sectorului 3; d) afieaz elementul cu numrul maxim de apariii n sectorul 4.
1 2 3 4

A=

A=

A=

1 5 4

2 3

Fig.9 Fig.10 Fig.11 12. Este dat tabloul bidimensional A[1..n,1..n]. Calculai elementele tabloului unidimensional B, care reprezint valoarea minim a elementelor diagonalelor paralele cu diagonala secundar (fig.10). 13. Este dat tabloul bidimensional A[1..n,1..n] delimitat n 5 sectoare (fig.11). Elaborai un program care: a) creaz din sectorul 5 tabloul unidimensional B elementele cruia s fie ordonate crescto; b) creaz tabloul bidimensional C format din 4 linii, pe fiecare linie se conin elementele din sectorul respective, ordonate descresctor. 14. Este dat tabloul bidimensional A[1..n,1..n]. S se genereze tabloul bidimensional B[1..n,1..n], continnd toate elementele din

matricea iniial dar dispuse n spiral, n ordinea creterii valorilor lor.Spirala ncepe din centrul tabloului A (fig.1). 15. S se afieze "punctele a" ale unui tablou bidimensional (punctele care sunt minim pe linie si maxim pe coloana n care se afl sau invers). 16. Pentru un tablou bidimensional A[1..n,1..n] efectuai transpunerea elementelor fa de diagonala secundar i obinei tabloul B. Verificai dac matricea C=A*B este unitar. 17. Este dat un tablou bidimensional A[1..n,1..n]. Ordonai n ordine cresctoare elementele care se afl sub diagonala principal dup schema indicat n fig.12. A= Fig.12 A= Fig.13 A= Fig.14

18. Este dat un tablou bidimensional A[1..n,1..n]. Ordonai n ordine descresctoare elementele care se afl deasupra diagonalei principale dup schema indicat n fig.13. 19. Este dat un tablou bidimensional A[1..n,1..n]. Ordonai n ordine cresctoare elementele care se afl deasupra diagonalei secundare dup schema indicat n fig.14. 20. Este dat un tablou bidimensional A[1..n,1..n]. Creai tabloul unidimensional B[1..n], fiecare element al cruia este numrul minim dintre vecinii elementului corespunztor de pe diagonala principal.