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

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

04.06.2017, 13:40. Показов 1016. Ответов 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
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
04.06.2017, 13:40
Ответы с готовыми решениями:

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

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

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

2
Рэмбо комнатный
 Аватар для GeFacle
103 / 103 / 99
Регистрация: 05.03.2017
Сообщений: 511
04.06.2017, 14:43
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  [ТС]
спасибо!!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
08.06.2017, 08:46
Помогаю со студенческими работами здесь

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

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru