Se consideră o matrice a cun linii şi m coloane cu elemente numere reale. Valorile pentru n şi m şi elementele matricei se citesc de la tastatură. Să se bordeze 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ă. 26
Pentru a bordeza matricea cu o coloana m+1 și o linie n+1 avem nevoie de două etape:
- Calculăm media aritmetică a elementelor de pe fiecare linie și coloană și le stocăm în două vectori.
- Adăugăm o coloană și o linie la matricea inițială, utilizând media aritmetică calculată în prima etapă.
#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.