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

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

03.10.2020, 10:11. Показов 912. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Задача - "Даны три квадратные матрицы a, b, c. Если разность между максимальным элементом и минимальным элементом матрицы В меньше разности между максимальным элементом А и минимальным элементом С то (В - С)^транспонированные + 2 * А, ИНАЧЕ А * 3 - С^транспонированная *3 + 2 - В.
Проблема: "Нашел макс и мин элементы матриц, как их правильно и адекватно тусовать?" Ну я реализовал простые объекты класса Матрикс по типу ручного ввода(Write (так надо, так попросили)), вывода(Print) и т.п. По задаче нужно найти макс и мин элементы массива В, и отдельно макс элемент А и отдельно мин элемент матрицы С, и дальше если одно меньше другого чокаво решать задачу дальше. Вот я нашел макс мин элементы, теперь как их правильно и адекватно тусовать по условию?
Код
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
using System;
using System.Linq;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
 
namespace Zmatrix
{
    public class Matrix
    {
        public int[,] data;         //объявляем 2мерный массив
        private int n;              // n - размерность
 
        public Matrix(int n)        //Принимаем и задаем размерность
        {
            this.data = new int[n, n];
            this.n = n;
        }
 
        public int this[int i, int j]       //принимаем и возвращаем элементы i,j (честно, хз как это работает пока что) 
        {
            get
            {
                return data[i, j];
            }
 
            set
            {
                data[i, j] = value;
            }
        }
 
        public int Size         //Возвращаем n - рамерность матрицы
        {
            get
            {
                return n;
            }
        }
 
        public void Print()         //Печатаем наши матрицы
        {
            for (var i = 0; i < this.Size; i++)
            {
                for (var j = 0; j < this.Size; j++)
                {
                    Console.Write("{0}\t", this[i, j]);
                }
                Console.WriteLine();
            }
        }
 
        public void Write()         //Заполняем наши матрицы (по тупому) 
        {
            for (var i = 0; i < this.Size; i++)
            {
                for (var j = 0; j < this.Size; j++)
                {
                    this[i, j] = Convert.ToInt32(Console.ReadLine());
                }
                Console.WriteLine();
            }
        }
 
        public void mami()         //Находим МАКС. и МИН. элементы массива (ПО ТУПОМУ)
        {
            int maxValue = data.Cast<int>().Max();
            Console.WriteLine("max B: " + maxValue); // Отслеживаем чо выведет 
 
            int minValue = data.Cast<int>().Min();
            Console.WriteLine("min B: " + minValue); // тупизна
 
            int maxValueA = data.Cast<int>().Max();
            Console.WriteLine("max A: " + maxValueA); // тупизна
 
            int minValueC = data.Cast<int>().Min();
            Console.WriteLine("min C: " + minValueC); // тупизна
 
            difference(maxValue, minValue, maxValueA, minValueC);
        }
 
        public void difference(int maxValue, int minValue, int maxValueA, int minValueC)        //Поиск разности между элементами (В РАЗРАБОТКЕ)
        {
            int matrixA = maxValue - minValue; // разность матрицы В
            int matrixB = maxValueA - minValueC; // разность макс элементы А и мин элемента С
 
            if (matrixA < matrixB)
            {
                // ну и тут дальнейшая туса по задаче
            }
        }
 
        class Program
        {
            static void Main(string[] args)
            {
                Console.WriteLine("Задайте размерность матриц: ");
                int n = Convert.ToInt32(Console.ReadLine());
                var matrixA = new Matrix(n); /// матрица А
 
                Console.WriteLine("Заполните матрицу А: ");
                matrixA.Write();
                matrixA.Print();
                Console.WriteLine("Максимальный элемент в массиве: ");
                matrixA.mami();
 
                var matrixB = new Matrix(n); /// матрица B
                Console.WriteLine("Заполните матрицу В: ");
                matrixB.Write();
                matrixB.Print();
                Console.WriteLine("Максимальный элемент в массиве: ");
                matrixA.mami();
 
                var matrixC = new Matrix(n); /// матрица C
                Console.WriteLine("Заполните матрицу С: ");
                matrixC.Write();
                matrixC.Print();
                Console.WriteLine("Минимальный элемент в массиве: ");
                matrixA.mami();
 
                Console.ReadKey();
            }
        }
    }
}
Соре за возможную шизу и УГ я просто дэб. Спасибо.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
03.10.2020, 10:11
Ответы с готовыми решениями:

Даны три матрицы одинаковых порядков. Найти сумму максимальных элементов матриц
Помогите решить задачу Даны три матрицы одинаковых порядков. Найти сумму максимальных элементов матриц. Генерацию матрицы оформить в...

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

Найти три максимальных и три минимальных значения 10 случайных чисел
помогите написать программку.

1
0 / 0 / 0
Регистрация: 28.09.2019
Сообщений: 37
06.10.2020, 04:39  [ТС]
Спасибо всем, решил проблему сам.
Класс программ
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
using System;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
 
namespace Zmatrix
{
 
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Задайте размерность матриц: ");
            int n = Convert.ToInt32(Console.ReadLine());
            var matrixA = new Matrix(n); // Объявляем матрицы
            var matrixB = new Matrix(n);
            var matrixC = new Matrix(n);
 
            Console.WriteLine("Заполните матрицу А: ");
            matrixA.Write();
            matrixA.Print();
 
            Console.WriteLine("Заполните матрицу B: ");
            matrixB.Write();
            matrixB.Print();
 
            Console.WriteLine("Заполните матрицу C: ");
            matrixC.Write();
            matrixC.Print();
 
            
 
            int diffb = matrixB.max - matrixB.min;
            int diffac = matrixA.max - matrixC.min;
 
            Console.WriteLine("Разность между максимальным элементом и минимальным элементом матрицы В: " + diffb);
            Console.WriteLine("Разница между максимальным элементом матрицы А и минимальным элементом матрицы С: " + diffac);
            
            if (diffb < diffac) // Прогоняем по условию задачи 
            {
                Console.WriteLine("Результат вычитания матриц В - С: ");
                var matrixSub = matrixB - matrixC;
                matrixSub.Print();
 
                Console.WriteLine("Транспонированный результат вычитания матриц В - С: ");
                var tmatrixb = !matrixSub; 
                tmatrixb.Print();
 
                Console.WriteLine("Умножение матрицы А на 2: ");
                matrixA = 2 * matrixA;
                matrixA.Print();
 
                Console.WriteLine("Конечный результат сложения транспонированных матриц B - C и матрицы А * 2: ");
                var resmatrix = tmatrixb + matrixA;
                resmatrix.Print();
            }
            else if (diffb > diffac)
            {
                Console.WriteLine("Умножение матрицы А на 3: ");
                matrixA = matrixA * 3;
                matrixA.Print();
 
                Console.WriteLine("Транспонированная матрица С умноженная на 3: ");
                var tmatrixc = !matrixC;
                tmatrixc = tmatrixc * 3;
                tmatrixc.Print();
 
                Console.WriteLine("Результат вычитания матрицы А - С: ");
                var matrixSub = matrixA - tmatrixc;
 
                Console.WriteLine("Результат вычитания матриц А и С сложенный на 2: ");
                matrixSub = matrixSub + 2;
 
                Console.WriteLine("Результат вычитания результирующей матрицы от матрицы В: ");
                var resmatrix = matrixSub - matrixB;
                resmatrix.Print();
            }
            else
            {
                Console.WriteLine("Разница между элементами матрицы В и элементами матриц А и С одинакова");
            }
 
 
            Console.ReadKey();
        }
    }
}
Класс zmatrix
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
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
using System;
using System.Linq;
using System.Collections.Generic;
using System.Text;
using System.Security.Principal;
using System.Transactions;
 
namespace Zmatrix
{
    class Matrix
    {
        public int[,] data;         //объявляем 2мерный массив
        private int n;              // n - размерность
 
        public Matrix(int n)        //Принимаем и задаем размерность
        {
            this.data = new int[n, n];
            this.n = n;
        }
 
        public Matrix(int[,] inputData) //
        {
            this.n = inputData.GetLength(0);
            this.data = new int[this.n, this.n];
            for (var i = 0; i < this.n; ++i)
            {
                for (var j = 0; j < this.n; ++j)
                {
                    this.data[i, j] = inputData[i, j];
                }
            }
        }
 
        public override bool Equals(object obj)
        {
            var B = obj as Matrix;
 
            if (B == null)
                return false;
 
            for (var i = 0; i < this.Size; ++i)
            {
                for (var j = 0; j < this.Size; ++j)
                {
                    if (this[i, j] != B[i, j])
                        return false;
                }
            }
            return true;
        }
 
        public int this[int i, int j]       //принимаем и возвращаем элементы i,j
        {
            get
            {
                return data[i, j];
            }
 
            set
            {
                data[i, j] = value;
            }
        }
 
        public int Size         //Возвращаем n - рамерность матрицы
        {
            get
            {
                return n;
            }
        }
 
        public void Print()         //Печатаем наши матрицы
        {
            for (var i = 0; i < this.Size; i++)
            {
                for (var j = 0; j < this.Size; j++)
                {
                    Console.Write("{0}\t", this[i, j]);
                }
                Console.WriteLine();
            }
        }
 
        public void Write()         //Заполняем наши матрицы
        {
            for (var i = 0; i < this.Size; i++)
            {
                for (var j = 0; j < this.Size; j++)
                {
                    this[i, j] = Convert.ToInt32(Console.ReadLine());
                }
                Console.WriteLine();
            }
        }
 
        public int max //свойство поиска максимума в матрице
        {
            get
            {
                int max = int.MinValue;
                for (var i = 0; i < this.Size; i++)
                {
                    for (var j = 0; j < this.Size; j++)
                    {
                        if (this[i, j] > max)
                        {
                            max = this[i, j];
                        }
                    }
                }
                return max;
            }
        }
 
        public int min //свойство поиска минимума в матрице
        {
            get
            {
                int min = int.MaxValue;
                for (var i = 0; i < this.Size; i++)
                {
                    for (var j = 0; j < this.Size; j++)
                    {
                        if (this[i, j] < min)
                        {
                            min = this[i, j];
                        }
                    }
                }
                return min;
            }
        }
 
        public static Matrix operator ! (Matrix A) //транспонирование матриц
        {
            var transp = new Matrix(A.Size);
 
            for (int i = 0; i < A.Size; i++)
            {
                for (int j = 0; j < A.Size; j++)
                {
                    transp[i, j] = A[j, i];
                }
            }
 
            return transp;
        }
 
        public static Matrix operator + (Matrix A, Matrix B) //сложение матриц
        {
            var resultMatix = new Matrix(A.Size);
 
            for (var i = 0; i < A.Size; ++i)
            {
                for (var j = 0; j < A.Size; ++j)
                {
                    resultMatix[i, j] = A[i, j] + B[i, j];
                }
            }
 
            return resultMatix;
        }
 
        public static Matrix operator - (Matrix A, Matrix B) //Вычитание матриц
        {
            var resultMatix = new Matrix(A.Size);
 
            for (var i = 0; i < A.Size; ++i)
            {
                for (var j = 0; j < A.Size; ++j)
                {
                    resultMatix[i, j] = A[i, j] - B[i, j];
                }
            }
 
            return resultMatix;
        }
 
        public static Matrix operator * (Matrix A, int n) //Умножение матрицы на число
        {
            var resultMatix = new Matrix(A.Size);
 
            for (var i = 0; i < A.Size; ++i)
            {
                for (var j = 0; j < A.Size; ++j)
                {
                    resultMatix[i, j] = A[i, j] * n;
                }
            }
 
            return resultMatix;
        }
 
        public static Matrix operator * (int n, Matrix A) //Перезагрузка метода умножения
        {
            return A * n;
        }
 
        public static Matrix operator + (Matrix A, int c) //Сложение матрицы на число
        {
            var resultMatix = new Matrix(A.Size);
            for (var i = 0; i < A.Size; ++i)
            {
                for (var j = 0; j < A.Size; ++j)
                {
                    if (i == j)
                    {
                        resultMatix[i, j] = A[i, j] + c;
                    }
                    else
                    {
                        resultMatix[i, j] = A[i, j];
                    }
                }
            }
            return resultMatix;
        }
 
        public static Matrix operator + (int c, Matrix A) //Перезагрузка метода сложения
        {
            return A + c;
        }
    }
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
06.10.2020, 04:39
Помогаю со студенческими работами здесь

Найти произведение и сумму максимальных и минимальных элементов матрицы
Найти произведение и сумму максимальных и минимальных элементов

Найти сумму минимальных и максимальных элементов главной и побочной диагонали матрицы
Задан двумерный массив чисел. Значения элементов матрицы формируются случайным образом. Найти сумму минимальных и максимальных элементов...

Определить три максимальных и два минимальных значения этого массива
Дано натуральное число N (N&gt; 5) и одномерный массив A1, A2, ..., AN символьных элементов. Определить три максимальных и два минимальных...

Сформировать одномерный массив из разницы максимальных и минимальных значений
Есть задача. Нужно ввести двухмерный массив.Сформировать одномерный массив из разницы максимальных и минимальных значений в каждой...

Проверка минимальных и максимальных элементов матрицы
помогите исправить ошибку!при проверке минимальных и максимальных элементов выдает неправильные значения!из за неправильного указания...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Functional First Web Framework Suave
DevAlt 30.03.2026
Sauve. IO Апнулись до NET10. Из зависимостей один пакет, работает одинаково хорошо как в режиме проекта так и в интерактивном режиме. из сложностей - чисто функциональный подход. Решил. . .
Автоматическое создание документа при проведении другого документа
Maks 29.03.2026
Реализация из решения ниже выполнена на нетиповых документах, разработанных в конфигурации КА2. Есть нетиповой документ "ЗаявкаНаРемонтСпецтехники" и нетиповой документ "ПланированиеСпецтехники". В. . .
Настройка движения справочника по регистру сведений
Maks 29.03.2026
Решение ниже реализовано на примере нетипового справочника "ТарифыМобильнойСвязи" разработанного в конфигурации КА2, с целью учета корпоративной мобильной связи в коммерческом предприятии. . . .
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. В качестве источника данных. . .
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер Написал заготовку: dotnet new console --aot -o UrlHandler var items = args. Split(":"); var tag = items; var id = items; var executable = args;. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru