
Написать программу на С++ Даны две квадратные вещественные матрицы порядка 5х5 и 8х8. В каждой
матрице вычислить произведение элементов под главной диагональю и сумму элементов над главной диагональю. Использовать функции.

Ответы на вопрос

Ответ:
#include <iostream>
#include <vector>
using namespace std;
float summatrix(vector < vector<float>>& v) {
float s=0;
for (int i = 0; i < v.size(); i++) {
for (int j = 0; j < v[i].size(); j++) {
if (j > i) s += v[i][j];
}
}
return s;
}
float mulmatrix(vector < vector<float>>& v) {
float s = 1;
for (int i = 0; i < v.size(); i++) {
for (int j = 0; j < v[i].size(); j++) {
if (i > j) s *= v[i][j];
}
}
return s;
}
int main()
{
//создадим матрицу 5 на 5 и заполним ее случайными числами
vector < vector<float>> v1(5,vector<float>(5));
for (auto& it1 : v1) {
for (auto& it2 : it1) {
it2 = float(rand()%100+1)/10.0;
}
}
//создадим матрицу 8 на 8 и заполним ее случайными числами
vector < vector<float>> v2(8, vector<float>(8));
for (auto& it1 : v2) {
for (auto& it2 : it1) {
it2 = float(rand()%100+1) / 10.0;
}
}
//Выведем матрицы на экран
for (auto& it1 : v1) {
for (auto& it2 : it1) {
cout << it2 << " ";
}
cout << endl;
}
cout << endl;
for (auto& it1 : v2) {
for (auto& it2 : it1) {
cout << it2 << " ";
}
cout << endl;
}
cout << endl;
cout << "sum v1=" << summatrix(v1)<<endl;
cout << "sum v2=" << summatrix(v2) << endl;
cout << "mul v1=" << mulmatrix(v1) << endl;
cout << "mul v2=" << mulmatrix(v2) << endl;
}
Объяснение:



Для решения данной задачи, мы можем создать функции для вычисления произведения элементов под главной диагональю и суммы элементов над главной диагональю в матрице. Затем, в основной программе, мы можем объявить и заполнить две матрицы и вызвать эти функции для каждой матрицы. Вот как может выглядеть C++ код для этой задачи:
cpp#include <iostream>
const int MATRIX_SIZE_5x5 = 5;
const int MATRIX_SIZE_8x8 = 8;
// Функция для вычисления произведения элементов под главной диагональю в матрице
double calculateProductBelowDiagonal(double matrix[][MATRIX_SIZE_5x5], int size) {
double product = 1.0;
for (int i = 1; i < size; ++i) {
for (int j = 0; j < i; ++j) {
product *= matrix[i][j];
}
}
return product;
}
// Функция для вычисления суммы элементов над главной диагональю в матрице
double calculateSumAboveDiagonal(double matrix[][MATRIX_SIZE_8x8], int size) {
double sum = 0.0;
for (int i = 0; i < size - 1; ++i) {
for (int j = i + 1; j < size; ++j) {
sum += matrix[i][j];
}
}
return sum;
}
int main() {
// Создаем две матрицы 5x5 и 8x8
double matrix5x5[MATRIX_SIZE_5x5][MATRIX_SIZE_5x5];
double matrix8x8[MATRIX_SIZE_8x8][MATRIX_SIZE_8x8];
// Заполняем матрицы значениями (для примера)
// Здесь можно добавить ввод значений с клавиатуры или из файла, если необходимо.
// Ниже приведен пример для заполнения матриц случайными значениями.
for (int i = 0; i < MATRIX_SIZE_5x5; ++i) {
for (int j = 0; j < MATRIX_SIZE_5x5; ++j) {
matrix5x5[i][j] = rand() % 10; // Заполняем случайными значениями от 0 до 9
}
}
for (int i = 0; i < MATRIX_SIZE_8x8; ++i) {
for (int j = 0; j < MATRIX_SIZE_8x8; ++j) {
matrix8x8[i][j] = rand() % 10; // Заполняем случайными значениями от 0 до 9
}
}
// Вычисляем произведение элементов под главной диагональю и сумму элементов над главной диагональю
double product_5x5 = calculateProductBelowDiagonal(matrix5x5, MATRIX_SIZE_5x5);
double sum_8x8 = calculateSumAboveDiagonal(matrix8x8, MATRIX_SIZE_8x8);
// Выводим результаты на экран
std::cout << "Произведение элементов под главной диагональю 5x5 матрицы: " << product_5x5 << std::endl;
std::cout << "Сумма элементов над главной диагональю 8x8 матрицы: " << sum_8x8 << std::endl;
return 0;
}
Обратите внимание, что в приведенном коде матрицы заполняются случайными значениями от 0 до 9. Вы можете изменить эту часть кода и вводить значения с клавиатуры или из файла, если вам нужны конкретные матрицы.


Похожие вопросы
Топ вопросов за вчера в категории Информатика
Последние заданные вопросы в категории Информатика
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili