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

Сформировать вектор, элементами которого являются соответствующие суммы элементов матрицы

04.06.2017, 13:40. Показов 639. Ответов 2
Метки нет (Все метки)

вот задание:
Написать программу, которая формирует вектор размером 4, элементами которого являются соответствующие суммы элементов матрицы N*N:
а)
Первым элементом – сумма элементов матрицы над главной диагональю.
Вторым элементом – сумма элементов матрицы под главной диагональю.
Третьим элементом – сумма элементов матрицы над побочной диагональю.
Четвертым элементом – сумма элементов матрицы под побочной диагональю.
б)
Первым элементом – сумма элементов расположенных в верхней четверти, ограниченной главной и побочной диагоналями (без элементов диагоналей).
Вторым элементом – сумма элементов расположенных в правой четверти, ограниченной главной и побочной диагоналями.
Третьим элементом – сумма элементов расположенных в нижней четверти, ограниченной главной и побочной диагоналями.
Четвертым элементом – сумма элементов расположенных в левой четверти, ограниченной главной и побочной диагоналями
а) и б) должны формировать отдельные функции.



я НАПИСАЛ ПРОГРАММУ, НО РЕЗУЛЬТАТЫ СУММ ПОБОЧНЫХ ДИАГОНАЛЕЙ (НАД И ПОД) И ЧЕТВЕРТЕЙ НЕВЕРНЫЕ, НЕ МОГУ ПОНЯТЬ В ЧЕМ ОШИБКА

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
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
#include<iostream>
#include <Windows.h>
using namespace std;
 
void FA(int array1[10][10], int vec1[4], int M)
 {
    int s1 = 0, s2 = 0, s3 = 0, s4 = 0;
    for (int i = 0; i < M; i++) {
 
        for (int j = 0; j < M; j++)
            if (i > j) s1 += array1[i][j]; //оператор условия для суммы элементов под главной диагональю
 
            else if (i < j) s2 += array1[i][j]; //оператор условия для суммы элементов над главной диагональю
 
            else if (i >j-1-M)
                s3 += array1[i][j]; //оператор условия для суммы элементов под побочной диагональю
 
 
            else if (i<j-1-M) s4 += array1[i][j]; //оператор условия для суммы элементов над побочной диагональю
 
 
    }
 
    vec1[0] = s1;
    vec1[1] = s2;
    vec1[2] = s3;
    vec1[3] = s4;
    cout << "Вектор a) = | ";
    for (int n = 0; n < 4; n++)
        cout << vec1[n] << " ";
    cout << " |";
 
}
void FB(int array1[10][10], int vec1[4], int M) 
{
    int s1 = 0, s2 = 0, s3 = 0, s4 = 0;
    for (int i = 0; i < M; i++) {
 
        for (int j = 0; j < M; j++)
            if (i < j && i<j - 1 - M) s1 += array1[i][j]; // верхняя четверть
 
            else if (i<j && i>j - 1 - M) s2 += array1[i][j]; // правая четверть
 
            else if (i > j && i>j - 1 - M) s3 += array1[i][j]; //нижняя четверть
 
            else if (i > j && i<j - 1 - M) s4 += array1[i][j]; // левая четверть
    }
 
    vec1[0] = s1;
    vec1[1] = s2;
    vec1[2] = s3;
    vec1[3] = s4;
 
    cout << "Вектор б) = | ";
    for (int n = 0; n < 4; n++)
        cout << vec1[n] << " ";
    cout << " |";
 
}
 
 
void main() {
    SetConsoleOutputCP(1251);
    SetConsoleCP(1251);
 
    int arr1[10][10];
    int vec[4];
    int N;
    cout << "введите размер матрицы (не больше 10*10)\n";
    cin >> N;
 
    cout << "Введенная матрица = \n";
    for (int i = 0; i < N; i++) {
        for (int j = 0; j < N; j++) {
            arr1[i][j] = rand() % 9;
            cout << "| " << arr1[i][j];
        } cout << " | \n";
    }
 
    FA(arr1, vec, N); // вызов функции удовлетворяющий условию а)
 
    FB(arr1, vec, N); // вызов функции удовлетворяющий условию б)
    cout << " \n";
    system("pause");
}
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
04.06.2017, 13:40
Ответы с готовыми решениями:

Сформировать одномерный массив, элементами которого являются суммы элементов i-ой строки матрицы
Дана матрица А(n,m). Сформировать одномерный массив В(n), элементами которого являются суммы...

Сформировать массив, элементами которого являются суммы элементов соответствующих строк матрицы
Задана целая прямоугольная матрица. Сформировать одномерный массив, элементами которого являются...

Матрицы. Сформировать одномерный массив L(m), элементами которого являются суммы элементов j-ого столбца
1. Дана матрица K(n,m). Сформировать одномерный массив L(m), элементами которого являются суммы...

Дана матрица А(n,m). Сформировать одномерный массив В(n), элементами которого являются суммы элементов i-ой строки.
Дана матрица А(n,m). Сформировать одномерный массив В(n), элементами которого являются суммы...

2
Рэмбо комнатный
102 / 102 / 99
Регистрация: 05.03.2017
Сообщений: 510
04.06.2017, 14:43 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
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
#include <iostream>
 
using namespace std;
 
void InitMatrix(int **arr, const int n)
{
    for (int i = 0; i < n; i++)
    {
        arr[i] = new int[n];
    }
    for (int i = 0; i < n; i++)
    {
        for (int j = 0; j < n; j++)
        {
            arr[i][j] = rand() % 9;
        }
    }
}
 
void PrintMatrix(int **arr, const int n)
{
    cout << "Matrix:" << endl;
    for (int i = 0; i < n; i++)
    {
        for (int j = 0; j < n; j++)
        {
            cout << arr[i][j] << " ";
        }
        cout << endl;
    }
}
 
void DeleteMatrix(int **arr, const int n)
{
    for (int i = 0; i < n; i++)
    {
        delete[] arr[i];
    }
    delete[] arr;
}
 
void InitVectorDiag(int *vector, int **arr, const int n)
{
    for (int i = 0; i < 4; i++)
    {
        vector[i] = 0;
    }
    for (int i = 0; i < n; i++)
    {
        for (int j = 0; j < n; j++)
        {
            if (i < j)
            {
                vector[0] += arr[i][j];
            }
            if (i > j)
            {
                vector[1] += arr[i][j];
            }
            if ( j < n - i - 1)
            {
                vector[2] += arr[i][j];
            }
            if ( j > n - i - 1)
            {
                vector[3] += arr[i][j];
            }
        }
    }
}
 
void PrintVector(int *vector)
{
    cout << endl << "Vector: ";
    for (int i = 0; i < 4; i++)
    {
        cout << vector[i] << " ";
    }
    cout << endl;
}
 
void InitVectorOther(int *vector, int **arr, const int n)
{
    for (int i = 0; i < 4; i++)
    {
        vector[i] = 0;
    }
    for (int i = 0; i < n ; i++)
    {
        for (int j = 0; j < n; j++)
        {
            if (i < n / 2 && j < n / 2)
            {
                vector[1] += arr[i][j];
            }
            if (i < n / 2 && j > n / 2)
            {
                vector[0] += arr[i][j];
            }
            if (i > n / 2 && j < n / 2)
            {
                vector[2] += arr[i][j];
            }
            if (i > n / 2 && j > n / 2)
            {
                vector[3] += arr[i][j];
            }
        }
    }
}
 
int main()
{
    int n; cin >> n;
    int **arr = new int*[n];
    InitMatrix(arr, n);
    PrintMatrix(arr, n);
    int *vector1 = new int[4];
    int *vector2 = new int[4];
    InitVectorDiag(vector1, arr, n);
    PrintVector(vector1);
    InitVectorOther(vector2, arr, n);
    PrintVector(vector2);
    DeleteMatrix(arr, n);
    delete[] vector1;
    delete[] vector2;
    system("pause");
    return 0;
}
вот итоговый код
0
0 / 0 / 0
Регистрация: 28.05.2017
Сообщений: 5
08.06.2017, 08:46  [ТС] 3
спасибо!!
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
08.06.2017, 08:46

Сформировать вектор B, компонентами которого являются произведения отрицательных элементов строк матрицы A
Дана матрица A размерности N*N Сформировать вектор B(N), компонентами которого являются...

Одномерный массив, элементами которого являются суммы положительных элементов строк матрицы
Здраствуйте помогите решить задачу: Создайте одномерный массив. элементами которого являются суммы...

Сформировать одномерный массив В, элементами которого являются номера первых отрицательных элементов каждой строки матрицы
Помогите пожалуйста задали написать, а я толком не могу понять как это делать. 6Дана матрица А...

Программа должна сформировать вектор, элементами которого являются наибольшие элементы всех матриц
Решить задачу, используя функцию. Дана квадратная целочисленная матрица А порядка n. Выделяя на...

Создать вектор, элементами которого являются максимальные элементы строк матрицы А
Даны матрица А : 5х6 . Создать и напечатать вектор b , элементами которого являются максимальные...

Матрица. Создать и напечатать вектор b элементами которого являются числа кратные 3 в строках матрицы A
дано матрицу A: 4x6. Создать и напечатать вектор b элементами которого являются числа кратные 3 в...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru