online: 5; azi: 903; total: 52909 Manual clasa a ix a - Implementarea structurilor de date - Structuri de date

Probleme Rezolvate



Manual clasa a IX a

Implementarea structurilor de date

Structuri de date

Se consideră o matrice a cun linii şi m coloane cu elemente numere reale . Valorile pentru n şi m şi elementele matricei se cite sc de la tastatură . Să se borde ze matricea cu coloana m+1, ale cărei elemente a[ i ][ m+1] au ca valoare media aritmetică a celor m elemente din linia i , şi cu linia n+1, ale cărei elemente a[n+1][j] au ca valoare media aritmetică a celor n elemente din coloana j. Să se afişeze matricea obţinută .
Pentru a bordeza matricea cu o coloana m+1 și o linie n+1 avem nevoie de două etape:
# include < iostream >
using namespace std ;
int main ()
{
int n, m;
cout << " Introduceti numarul de linii n si de coloane m ale matricei: " ;
cin >> n >> m;
// Declaram si citim elementele matricei
float a[n][m];
for ( int i = 0 ; i < n; i++){
for ( int j = 0 ; j < m; j++){
cout << " Introduceti elementul a[" << i << "][" << j << "]: " ;
cin >> a[i][j];
}
}
// Calculam media elementelor de pe fiecare linie si coloana
float medie_linie [n], medie_coloana [m];
for ( int i = 0 ; i < n; i++){
medie_linie [i] = 0 ;
for ( int j = 0 ; j < m; j++){
medie_linie [i] += a[i][j];
}
medie_linie [i] /= m;
}
for ( int j = 0 ; j < m; j++){
medie_coloana [j] = 0 ;
for ( int i = 0 ; i < n; i++){
medie_coloana [j] += a[i][j];
}
medie_coloana [j] /= n;
}
// Adaugam o coloana si o linie la matricea initiala , utilizand media elementelor
float matrice_bordata [n+ 1 ][m+ 1 ];
for ( int i = 0 ; i <= n; i++){
for ( int j = 0 ; j <= m; j++){
if (i < n && j < m){
matrice_bordata [i][j] = a[i][j];
}
else if (i == n && j < m){
matrice_bordata [i][j] = medie_coloana [j];
}
else if (i < n && j == m){
matrice_bordata [i][j] = medie_linie [i];
}
else {
matrice_bordata [i][j] = ( medie_linie [i -1 ] + medie_coloana [j -1 ]) / 2 ;
}
cout << matrice_bordata [i][j] << " " ;
}
cout << endl ;
}
return 0 ;
}

Începem prin a declara variabilele necesare: n și m pentru dimensiunile matricei, matricea propriu-zisă a de tip float , o matrice b pentru matricea bordează , și variabilele s și media folosite pentru calculul mediei aritmetice a elementelor.
Continuăm prin a citi elementele matricei a de la tastatură, în două bucle for înlănțuite:
Următorul pas este să calculăm valorile media pentru fiecare linie și coloană, folosind două bucle for înlănțuite. Inițializăm variabila s cu 0 la începutul fiecărei iterații pentru a putea calcula suma elementelor, iar apoi împărțim suma la numărul de elemente ( m pentru linii și n pentru coloane) pentru a obține media aritmetică. Salvăm această valoare în matricea b la poziția corespunzătoare:
În final, pentru a construi matricea bordează b , copiem elementele matricei a în interiorul acesteia și setăm elementele din ultima coloană și ultima linie cu media calculată anterior:
Astfel, matricea obținută este afișată la sfârșitul programului.