Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
BETAJIbCOH
0 / 0 / 0
Регистрация: 29.12.2013
Сообщений: 14
1

Вычислите след матрицы

06.01.2014, 23:28. Просмотров 640. Ответов 4
Метки нет (Все метки)

Дана квадратная матрица размером MхM. Вычислите след матрицы (т. е. сумму диагональных элементов). Найдите наименьший и наибольший элементы и подсчитайте их полусумму. Из элементов побочной диагонали сформируйте одномерный массив и отсортируйте его по убыванию методом простых вставок (Insert Sort). Выведите на экран исходную матрицу, рассчитанные значения (след матрицы, наименьший и наибольший элементы, их полусумму) и отсортированный массив.
Знающие люди, помогите с решением задачи пожалуйста.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.01.2014, 23:28
Ответы с готовыми решениями:

Сформировать одномерный массив из диагональных элементов матрицы. Найти след матрицы
Для заданной квадратной матрицы сформировать одномерный массив из ее...

Если след матрицы A[n][m] больше 50, то все эелементы матрицы увеличить на 2.
Если след матрицы A больше 50, то все эелементы матрицы увеличить на 2.

Найти след матрицы
Для заданной квадратной матрицы сформировать одномер¬ный массив из ее...

Найти след матрицы, суммируя элементы одномерного массива
Для заданной квадратной матрицы сформировать одномерный массив из её...

Напечатать квадрат той матрицы, в которой наименьший след
Даны две квадратные вещественные матрицы 10-го порядка. Напечатать квадрат той...

4
MrLinch
12 / 10 / 12
Регистрация: 23.12.2012
Сообщений: 51
06.01.2014, 23:59 2
Привет! Вот реализация для матрицы размер которой известен на этапе компиляции, если нужно могу сделать так чтоб пользователь задавал размер матрицы.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
#include <iostream>
 
using namespace std;
 
template<typename T>
void insertion_sort(T *array_ptr, int length) {
    T temp;
    int item;
    for (int counter = 1; counter < length; counter++) {
        temp = array_ptr[counter];
        item = counter - 1;
        while(item >= 0 && array_ptr[item] < temp) {
            array_ptr[item + 1] = array_ptr[item];
            array_ptr[item] = temp;
            item--;
        }
    }
}
 
int main() {
    const int M = 4;
    cout << "Enter the matrix " << M << "x" << M << ":" << endl;
 
    float matrix[M][M];
    for(int i = 0; i < M; i++) {
        for(int j = 0; j < M; j++) {
            cin >> matrix[i][j];
        }
    }
 
    float trace = 0;
    for(int i = 0; i < M; i++) {
        trace += matrix[i][i];
    }
 
    float min, max;
    min = max = matrix[0][0];
    for(int i = 0; i < M; i++) {
        for(int j = 0; j < M; j++) {
            float element = matrix[i][j];
 
            if(element > max) {
                max = element;
            }
 
            if(element < min) {
                min = element;
            }
        }
    }
 
    float incidental_diagonal[M];
    for(int i = 0, j = M - 1; i < M && j >= 0; i++, j--) {
        incidental_diagonal[i] = matrix[i][j];
    }
 
    insertion_sort(incidental_diagonal, M);
 
    cout << "Trace of matrix: " << trace << endl;
    cout << "Minimum element of matrix: " << min << endl;
    cout << "Maximum element of matrix: " << max << endl;
    cout << "Half the sum of max and min: " << (max + min) / 2 << endl;
    cout << "Sorted incidental diagonal: ";
 
    for(int i = 0; i < M; i++) {
        cout << incidental_diagonal[i] << " ";
    }
 
    cout << endl;
}
0
BETAJIbCOH
0 / 0 / 0
Регистрация: 29.12.2013
Сообщений: 14
07.01.2014, 00:18  [ТС] 3
если не сложно то сделайте пожалуйста матрицу 10 на 10
0
MrLinch
12 / 10 / 12
Регистрация: 23.12.2012
Сообщений: 51
07.01.2014, 00:28 4
Цитата Сообщение от BETAJIbCOH Посмотреть сообщение
если не сложно то сделайте пожалуйста матрицу 10 на 10
Пожалуйста:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
#include <iostream>
 
using namespace std;
 
template<typename T>
void insertion_sort(T *array_ptr, int length) {
    T temp;
    int item;
    for (int counter = 1; counter < length; counter++) {
        temp = array_ptr[counter];
        item = counter - 1;
        while(item >= 0 && array_ptr[item] < temp) {
            array_ptr[item + 1] = array_ptr[item];
            array_ptr[item] = temp;
            item--;
        }
    }
}
 
int main() {
    const int M = 10;
    cout << "Enter the matrix " << M << "x" << M << ":" << endl;
 
    float matrix[M][M];
    for(int i = 0; i < M; i++) {
        for(int j = 0; j < M; j++) {
            cin >> matrix[i][j];
        }
    }
 
    float trace = 0;
    for(int i = 0; i < M; i++) {
        trace += matrix[i][i];
    }
 
    float min, max;
    min = max = matrix[0][0];
    for(int i = 0; i < M; i++) {
        for(int j = 0; j < M; j++) {
            float element = matrix[i][j];
 
            if(element > max) {
                max = element;
            }
 
            if(element < min) {
                min = element;
            }
        }
    }
 
    float incidental_diagonal[M];
    for(int i = 0, j = M - 1; i < M && j >= 0; i++, j--) {
        incidental_diagonal[i] = matrix[i][j];
    }
 
    insertion_sort(incidental_diagonal, M);
 
    cout << "Trace of matrix: " << trace << endl;
    cout << "Minimum element of matrix: " << min << endl;
    cout << "Maximum element of matrix: " << max << endl;
    cout << "Half the sum of max and min: " << (max + min) / 2 << endl;
    cout << "Sorted incidental diagonal: ";
 
    for(int i = 0; i < M; i++) {
        cout << incidental_diagonal[i] << " ";
    }
 
    cout << endl;
}
1
BETAJIbCOH
0 / 0 / 0
Регистрация: 29.12.2013
Сообщений: 14
07.01.2014, 00:46  [ТС] 5
спасибо!
0
07.01.2014, 00:46
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.01.2014, 00:46

Написать методы, позволяющие вычислить след матрицы, детерминант, транспонировать, обратить матрицу
Нужно написать &quot;Матрица&quot;. Перегрузить операторы сложения, вычитания, умножения....

Вычислите сумму элементов целочисленной матрицы, ниже побочной диагонали
Дана целочисленная матрица. Вычислите сумму элементов матрицы, ниже побочной...

Даны две квадратные матрицы. Напечатать ту из них, которая имеет минимальный "след"
Даны две квадратные матрицы. Напечатать ту из них, которая имеет минимальный...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru