Documente Academic
Documente Profesional
Documente Cultură
Programarea calculatoarelor
Lect. dr. Adrian Runceanu
Curs 9
11.11.2012
Programarea calculatoarelor
Capitolul 7. Tablouri
7.1. Generaliti. Clasificare 7.2. Tablouri unidimensionale (vectori) 7.3. Tablouri bidimensionale (matrici) 7.4. Tablouri multidimensionale
11.11.2012
Programarea calculatoarelor
Compilatorul C++ aloc un spaiu de memorie prin nmulirea numrului de elemente ale fiecarei dimensiuni n parte (dim1, dim2, dim3, . . , dimn) cu numrul de octei ai tipului de date al tabloului respectiv.
11.11.2012 Programarea calculatoarelor 4
Capitolul 7. Tablouri
11.11.2012
Programarea calculatoarelor
Probleme rezolvate cu vectori Problema 1: Enun: Se citete un tablou unidimensional cu n (1<=n<=100) componente numere naturale. Se cere s se construiasc i s se afieze un nou vector cu componentele ptrate perfecte ale vectorului iniial.
11.11.2012 Programarea calculatoarelor 10
11.11.2012
Programarea calculatoarelor
12
{
cout.width(6); cout<<y[i]; } }
// afieaz pe 6 caractere
11.11.2012
Programarea calculatoarelor
14
Probleme rezolvate cu vectori Problema 2: Enun: Se citete un tablou unidimensional cu n (1<=n<=100) componente numere naturale. Se cere s se calculeze i s se afieze suma elementelor din vector care sunt divizibile cu o valoare natural dat a.
11.11.2012 Programarea calculatoarelor 15
int main(void) { unsigned int x[100], a, n, i, s; cout<<"\nDati numarul elementele ale tabloului n = "; cin>>n; cout<<"Dati elementele tabloului \n";
11.11.2012 Programarea calculatoarelor 16
11.11.2012
Programarea calculatoarelor
17
11.11.2012
Programarea calculatoarelor
18
Capitolul 7. Tablouri
11.11.2012
Programarea calculatoarelor
27
suma=0; for(i=1; i<=n; i++) for(j=1; j<=n; j++) if( i == j ) suma = suma + a[i][j]; cout<<"Suma elementelor de pe diagonala principala este "<<suma<<"\n";
11.11.2012 Programarea calculatoarelor 31
produs=1; for(i=1; i<=n; i++) for(j=1; j<=n; j++) if( i + j == n+1) produs = produs * a[i][j]; cout<<"Produsul elementelor de pe diagonala secundara este "<<produs<<"\n";
11.11.2012 Programarea calculatoarelor 32
min1=10000; for(i=1; i<=n; i++) for(j=1; j<=n; j++) if( i < j ) if( a[i][j] < min1 ) min1 = a[i][j]; cout<<"Minimul de deasupra diag. principale este "<<min1;
11.11.2012 Programarea calculatoarelor 33
min2=10000; for(i=1; i<=n; i++) for(j=1; j<=n; j++) if( i > j ) if( a[i][j] < min2 ) min2 = a[i][j]; cout<<"Minimul de sub diag. principala este "<<min2;
11.11.2012 Programarea calculatoarelor 34
max1=-10000; for(i=1; i<=n; i++) for(j=1; j<=n; j++) if( i < j ) if( a[i][j] > max1 ) max1 = a[i][j]; cout<<"Maximul de deasupra diag. principale este "<<max1;
11.11.2012 Programarea calculatoarelor 35
max2=-10000; for(i=1; i<=n; i++) for(j=1; j<=n; j++) if( i > j ) if( a[i][j] > max2 ) max2 = a[i][j]; cout<<"Maximul de sub diag. principala este "<<max2;
}
11.11.2012 Programarea calculatoarelor 36
11.11.2012
Programarea calculatoarelor
37
for(i=1; i<=n; i++) { min = a[i][1]; for(j=2; j<=m; j++) if( a[i][j] < min ) min = a[i][j]; cout<<"Minimul de pe linia "<<i<<" este "<<min<<"\n"; }
11.11.2012
Programarea calculatoarelor
40
for(j=1; j<=m; j++) { max = a[1][j]; for(i=2; i<=n; i++) if( a[i][j] > max ) max = a[i][j]; cout<<"Maximul de pe coloana "<<j<<"este "<<max<<"\n"; } }
11.11.2012 Programarea calculatoarelor 41
11.11.2012
Programarea calculatoarelor
42
11.11.2012
Programarea calculatoarelor
45
11.11.2012
Programarea calculatoarelor
46
suma = suma a[1][1] a[1][m] a[n][1] a[n][m]; cout<<"\nSuma elementelor de pe marginea matricei este = "<<suma; }
11.11.2012
Programarea calculatoarelor
47
11.11.2012
Programarea calculatoarelor
48
11.11.2012
Programarea calculatoarelor
49
11.11.2012
Programarea calculatoarelor
50
11.11.2012
Programarea calculatoarelor
53
ntrebri?
11.11.2012
Programarea calculatoarelor
54