Написать програму на Си++ (C++). Среднее арифметическое. Найти сумму

3. Условие:

Если среднее арифметическое SA положительных элементов матрицы A (5×4) больше среднего арифметического SB положительных элементов матрицы B (4×6), найти сумму SA + SB, иначе найти разность SA – SB.

1) Функциональная

#include <iostream>

using namespace std;

 

void WOD(int[5][6], int n, int m, char c);

int POS(int[5][6], int n, int m);

int main(){

setlocale(LC_ALL, "RUS");

int A[5][6], B[4][6];

int SA, SB;

 

WOD(A, 5, 4, 'A');

WOD(B, 4, 6, 'B');

SA = POS(A, 5, 4);

SB = POS(B, 4, 6);

 

cout «SA «endl;

cout «SB«endl;

 

if (SA > SB)

cout «" сумма положительных элементов SA > SB " «SA + SB «endl;

else

cout «" сумма положительных элементов SA < SB " «SA - SB «endl;

 

system("pause");

}

/****************************************/

void WOD(int a[][6], int n, int m, char c)

 

{ int i, j;

cout «"Input matrix " «c «" size of " «n «"*" «m «endl;

 

/* Далее цикл для поэлементного ввода массива*/

for (i = 0; i < n; i++)

for (j = 0; j < m; j++)

cin» a[i][j];

}

/****************************************/

int POS(int a[][6], int n, int m)

{

int i, j, k=0, SA=0;

for (int i = 0; i < 5; i++)

{

for (int j = 0; j < 4; j++)

{

if (a[i][j] > 0)

{

SA += a[i][j];

k++;

}

}

}

SA = SA / k;

return (SA);

}

2) Объектно-ориентированная

#include <iostream>

using namespace std;

class Matrica

{

protected:

       float** mas, Sr;

       int n, m;

       char c;

public:

       Matrica(char c, int n = 1, int m = 1);

       void vvod();

       float pos();

};

class Matrica_2class: public Matrica

{

public:

       Matrica_2class(char c, int n, int m): Matrica(c, n, m) {};

       void vvod();

       float pos();

};

Matrica::Matrica(char c, int n, int m)

{

       this->n = n;

       this->m = m;

       mas = new float* [n];

       for (int i = 0; i < n; i++)

       {

                  mas[i] = new float[m];

                  for (int j = 0; j < m; j++)

                  {

                              mas[i][j] = 0;

                  }

       }

}

void Matrica::vvod()

{

       cout << "Ввод матрицы " << c << " размером " << n << "*" << m << endl;

       /* цикл для поэлементного ввода массива*/

       for (int i = 0; i < n; i++)

                  for (int j = 0; j < m; j++)

                              cin >> mas[i][j];

}

float Matrica::pos()

{

       Sr = 0;

       int k = 0;

       for (int i = 0; i < n; i++)

       {

                  for (int j = 0; j < m; j++)

                  {

                              if (mas[i][j] > 0)

                              {

                                          Sr += mas[i][j];

                                          k++;

                              }

                  }

 

       }

       return Sr = Sr / k;

}

void Matrica_2class::vvod()

{

       cout << "ВВОД МАТРИЦЫ " << c << " РАЗМЕРОМ " << n << "*" << m << endl;

       for (int i = 0; i < n; i++)

                  for (int j = 0; j < m; j++)

                              cin >> mas[i][j];

}

float Matrica_2class::pos()

{

       Sr = 0;

       int k = 0;

       for (int i = 0; i < n; i++)

       {

                  for (int j = 0; j < n; j++)

                  {

                              if (mas[i][j] > 1)

                              {

                                          Sr += mas[i][j];                              //ср.арифметическое нечетных элементов больше 0

                                          k++;

                              }

                  }

       }

       return Sr = Sr / k;

}

int main()

{

       setlocale(LC_ALL, "Rus");

       float SA = 0, SB = 0;

       Matrica* A;

       Matrica_2class* B;

       A = new Matrica('A', 5, 4);

       B = new Matrica_2class('B', 4, 6);

       cout << "Матрица A:\n";

       A->vvod();

       cout << endl;

       cout << "Матрица B:\n";

       B->vvod();

       cout << endl;

       SA = A->pos();

       SB = B->pos();

       if (SA > SB)

       {

                  cout << " сумма положительных элементов SA > SB " << endl;

                  cout << "SA + SB = " << SA + SB;

       }

       else

       {

                  cout << " сумма положительных элементов SA < SB " << endl;

                  cout << "SA - SB = " << SA - SB;

       }

       delete A;

       delete B;

}


 


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: