Написать програму на Си++ (C++). Даны матрицы. Вычислить значение выражения

 

6. Условие:

Даны матрицы A (4×4), B (5×5), C (3×3). Вычислить значение выражения Amin Bmin – Cmin, где Amin (Bmin, Cmin) — минимальный элемент главной диагонали матрицы A (B, C).

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

#include<iostream>

using namespace std;

void arr_input(int arr[5][5], int n, int m, int& min);

void element(int arr[5][5], int n, int m, int& min);

int main()

{

       setlocale(LC_ALL, "Russian");

       int n, m, min, Amin, Bmin, Cmin;

       int arr[5][5];

       cout << "Введите размер и саму матрицу A: ";

       cin >> n >> m;

       arr_input(arr, n, m, min);

       element(arr, n, m, min);

       Amin = min;

       cout << "Введите размер и саму матрицу B: ";

       cin >> n >> m;

       arr_input(arr, n, m, min);

       element(arr, n, m, min);

       Bmin = min;

       cout << "Введите размер и саму матрицу C: ";

       cin >> n >> m;

       arr_input(arr, n, m, min);

       element(arr, n, m, min);

       Cmin = min;

       cout << "\nВыражение Amin * Bmin - Cmin = " << Amin << " * " << Bmin << " - " << Cmin << " = " << Amin * Bmin - Cmin;

       return 0;

}

 

void arr_input(int arr[5][5], int n, int m, int& min)

{

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

       {

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

                  {

                              cin >> arr[i][j];

                              min = arr[0][0];

                  }

       }

}

 

void element(int arr[5][5], int n, int m, int& min)

{

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

       {

                              if (i == i)

                              {

                                          if (arr[i][i] < min)

                                          {

                                                      min = arr[i][i];

                                          }

                              }

       }

}

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

#include <iostream>

using namespace std;

class Matrix

{

protected:

float** arr, n, m;

public:

Matrix(int n1, int m1);

~Matrix();

void arr_input();

float min_element();

};

class New: public Matrix

{

public:

New(int n1, int m1): Matrix(n1, m1) {};

~New();

void arr_input();

float max_element();

};

Matrix::Matrix(int n1, int m1)

{

n = n1;

m = m1;

arr = new float* [n];

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

{

            arr[i] = new float[m];

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

            {

                        arr[i][j] = 0;

            }

}

}

 

Matrix::~Matrix()

{

this->n;

this->arr;

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

{

            delete[] this->arr[i];

}

delete[] this->arr;

}

 

void Matrix::arr_input()

{

cout << "Введите матрицу размером " << n << " на " << m << endl;

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

{

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

            {

                        cin >> arr[i][j];

            }

}

}

float Matrix::min_element()

{

float min = arr[0][0];

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

{

            if (arr[i][i] < min)

            {

                        min = arr[i][i];

            }

}

return min;

}

 

void New::arr_input()

{

cout << "ВВЕДИТЕ МАТРИЦУ РАЗМЕРОМ " << n << " НА " << m << endl;

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

{

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

            {

                        cin >> arr[i][j];

            }

}

}

 

float New::max_element()

{

float max = arr[0][0];

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

{

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

            {

                        if (arr[i][j] > max)

                        {

                                    max = arr[i][j];

                        }

            }

}

return max;

}

New::~New()

{

this->n;

this->arr;

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

{

            delete[] this->arr[i];

}

delete[] this->arr;

}

int main()

{

setlocale(LC_ALL, "Ru");

float exp = 0;

Matrix* A, * C;

New* B;

A = new Matrix(4, 4);

B = new New(5, 5);

C = new Matrix(3, 3);

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

A->arr_input();

cout << endl;

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

B->arr_input();

cout << endl;

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

C->arr_input();

cout << endl;

exp = A->min_element() * B->max_element() - C->min_element();

cout << "Значение выражения Amin * Bmax - Cmin = " << A->min_element() << " * " << B->max_element() << " - " << C->min_element() << " = " << exp;

}

 


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



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