Задача на матрицы, не могу закончить - C#
Формулировка задачи:
Пусть сумма элементов обеих диагоналей матрицы С равна S1, а сумма элементов обеих диагоналей матрицы T равна S2. Если S1 <S2, то найти матрицу Н=А+S1Т, иначе матрицу Z=B+S2(C+T). Здесь A- матрица порядка n, все элементы которой равны S1; B- матрица порядка n, все элементы которой равны S2.
Вот что я смог написать, но проблема в том, что не могу написать результирующие матрицы F и H, а еще выпонить условия для A и B. Прошу помочь пожалуйста.
namespace _1В { class Program { //ввод матриц static void Matr(int n, out double[,] M) { int i, j; M = new double[n, n]; for (i = 0; i < n; i++) { Console.WriteLine("Введите {0} строку", i + 1); for (j = 0; j < n; j++) { M[i, j] = Convert.ToDouble(Console.ReadLine()); } } } //введем функцию находящую сумму четных элементов побочной диагонали матрицы static void diag (int n, double[,] M, out double S) { int i; S=0; for (i = 0; i < n; i++) { S = S + M[i, n+1+i]; } } //функция сложения матриц static void SumMatr(int n,int k1, double[,] M, int k2, double[,] N, out double[,] R) { R=new double[n,n]; for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { R[i, j] = x[i, j] + y[i, j]; } } } //функция вывода матрицы static void OutMatr(int n, double[,] M) { for(int i=0; i<n; i++) { for (int j = 0; j < n; j++) { Console.Write("{0} ", M[i,j]); } Console.WriteLine(); } } static void Main(string[] args) { int n; Console.WriteLine("Введите порядок матриц C и T, 2<=n<=10"); n = Convert.ToInt32(Console.ReadLine()); if (n < 2 || n > 10) { Console.WriteLine("Ошибка, n<2 или n>10"); } double[,] C = new double[n, n]; Console.WriteLine("Введите матрицу С"); Matr(n, out C); double[,] T = new double[n, n]; Console.WriteLine("Введите матрицу T"); Matr(n, out T); double S; diag(n, C, out S); Console.WriteLine("Сумма элементов главной и побочной диагонали матрицы С: {0}",S); double St; diag(n, T, out St); Console.WriteLine("Сумма элементов главной и побочной диагонали матрицы Т: {0}",St); if(S>St) { double[,] H=new double [n,n]; SumMatr(n,1,A,S,T,out H); Console.WriteLine("S>St; Матрица H:"); OutMatr(n, H); } else { double[,] F=new double [n,n]; SumMatr(n,1,B,2,S,C,T,out F); Console.WriteLine("S<=St; Матрица F:"); OutMatr(n, F); } Console.ReadKey();} } }
Решение задачи: «Задача на матрицы, не могу закончить»
textual
Листинг программы
A[i,j]//или B[i,j]
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д