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;
}