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:

  1. Calculăm media aritmetică a elementelor de pe fiecare linie și coloană și le stocăm în două vectori.
  2. 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.

Similar Posts

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *