Написать програму на Си++ (C++). Для матрицы A (3x7) найти число строк, произведение элементов которых больше единицы

7. Условие:

Для матрицы A (3×7) найти число строк, произведение элементов которых больше единицы, а для матрицы B (4×5) — число строк, произведение элементов которых больше заданного значения Q

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

#include<iostream>

using namespace std;

void arr_matric(float(&arr)[7][7], int n, int m);

float proizvedenie(float(&arr)[7][7], int n, int m, float Q);

int main()

{

setlocale(LC_ALL, "Russian");

int n, m, K = 0, arr[7][7], Q;

cout << "Введите значение Q: ";

cin >> Q;

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

cin >> n >> m;

arr_matric(arr, n, m);

cout << endl;

K = proizvedenie(arr, n, m, 1);

cout << ": " << K;

cout << endl;

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

cin >> n >> m;

arr_matric(arr, n, m);

cout << endl;

K = proizvedenie(arr, n, m, Q);

cout << "Число строк, произведение элементов которых больше Q: " << K;

cout << endl;

system("pause");

return 0;

}

void arr_matric(float(&arr)[7][7], int n, int m)//Заполнение матрицы

{

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

{

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

{

cin >> arr[i][j];

}

}

}

float proizvedenie(float(&arr)[7][7], int n, int m, float O)//Число строк, произв.эл>Q

{

int k=0, Pr = 1;

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

{

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

{

Pr = Pr * arr[i][j];

}

if (Pr > O)

{

k++;

}

Pr = 1;

}

return k;

}

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

#include <iostream>

#include <stdio.h>

#include <conio.h>

using namespace std;

class Matrix

{

private:

float** arr, Q, Pr, min;

int n, m;

public:

Matrix(int n1 = 1, int m1 = 1);

void arr_matric();

float proizvedenie(int O);

float min_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;

}

}

}//111

void Matrix::arr_matric()//Заполнение матрицы

{

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

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

{

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

{

cin >> arr[i][j];

}

}

} //111

float Matrix::min_element()//Нахождение минимального элемента гл.диаг. матрицы

{

min = arr[0][0];

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

{

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

{

min = arr[i][i];

}

}

return min;

}

float Matrix::proizvedenie(int O)//Число строк, произв.эл>Q

{

int k = 0;

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

{

Pr = 1;

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

{

Pr = Pr * arr[i][j];

}

if (Pr > O)

{

k++;

}

}

return k;

}//111

int main()

{

setlocale(LC_ALL, "Russian");

int K = 0, Q, Amin, Bmin;

Matrix* A, * B;

A = new Matrix(4, 4);

B = new Matrix(5, 5);

cout << "Введите значение Q: ";

cin >> Q;

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

A->arr_matric();

cout << endl;

K = A->proizvedenie(1);

cout << "Число строк, произведение элементов которых больше 1: " << K;

cout << endl;

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

B->arr_matric();

cout << endl;

K = B->proizvedenie(Q);

cout << "Число строк, произведение элементов которых больше Q: " << K;

cout << endl;

Amin = A->min_element();

cout << "Минимальный элемент главной диагонали матрицы A: " << Amin;

cout << endl;

Bmin = B->min_element();

cout << "Минимальный элемент главной диагонали матрицы B: " << Bmin;

cout << endl;

delete A;

delete B;

system("pause");

return 0;

}


 

8. Условие:

Для матрицы A (7×3) вычислить общую сумму элементов строк, первый элемент которых положителен, а для матрицы B (6×4) — общую сумму элементов строк, в которых первый элемент больше единицы.

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

#include <iostream>

using namespace std;

 

void FILL(float matrix[][10], int k, int l)

{

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

{

            for (int c = 0; c < l; c++)

            {

                        cin >> matrix[i][c];

            }

}

}

 

void CHECK(float matrix[][10], int k, int l, int D, float *sum)

{

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

{

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

            {

                        if (matrix[i][0] > D)

                        {

                                    *sum += matrix[i][j];

                        }

            }

}

}

 

void OUT(float sum1, float sum2)

{

cout << "\nСумма для А: "<<sum1;

cout << "\nСумма для B: "<<sum2;

 

}

 

 

int main()

{

setlocale(LC_ALL, "Russian");

float A[10][10], B[10][10], sumA = 0, sumB = 0;

 

cout << "Введите матрицу A 7x3:\n";

FILL(A, 7, 3);

cout << "Введите матрицу B 6x4:\n";

FILL(B, 6, 4);

 

CHECK(A, 3, 3, 0, &sumA);

CHECK(B, 3, 3, 1, &sumB);

 

     

OUT(sumA, sumB);

 

 

system("pause");

return 0;

}

 


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



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