Описать методы для работы с матрицей размерности MxN - C# (192956)
Формулировка задачи:
Описать методы для работы с матрицей размерности MxN. Размерность не превосходит10x10. Первый метод — для формирования элементов матрицы либо по правилу из задания либо случайным образом. Второй метод — для вывода матрицы на экран либо по правилу из задания либо полностью.
Собственно с заданием возникли проблемы: Элементы первого столбца матрицы равны разности элементов, расположенных справа.
Вот код
static void MatrixFormRule(int[,] someA, int x) { for (int i = 0; i < someA.GetLength(0); i++) { for (int j = 0; j < someA.GetLength(1); j++) { Console.Write("Введите элемент массива No {0} X {1}: ", i + 1, j + 1); someA[i, j] = int.Parse(Console.ReadLine()); } } // тут проблема if (true) { for (int i = 0 ,j = 1; i < someA.GetLength(0) && i < someA.GetLength(1) ; i++, j++ ) { someA[i, 0] = someA[i, j] - someA[i, j+1]; } } } static void MatrixOutput(int[,] someA) { for (int i = 0; i < someA.GetLength(0); i++) { for (int j = 0; j < someA.GetLength(1); j++) { Console.Write(someA[i, j] + " "); } Console.WriteLine(); } } static void Main(string[] args) { int M = 3; int N = 3; int[,] A = new int[M, N]; int x = 10; MatrixFormRule(A, x); MatrixOutput(A); Console.ReadLine(); }
Решение задачи: «Описать методы для работы с матрицей размерности MxN»
textual
Листинг программы
class Program { static void Main(string[] args) { double[,] m = new double[10, 10]; FillMatrixWithRule(m); PrintMatrix(m); Console.Read(); } /// <summary> /// Заполнение матрицы по правилу: элементы первого столбца /// являются разностью элементов, стоящих справа /// </summary> static void FillMatrixWithRule(double [,] m) { FillMatrix(m); double diff = 0;//Разность элементов справа от первого столбца for (int i = 0; i < m.GetLength(0); i++) { diff = m[i, 1]; for (int j = 2; j < m.GetLength(1); j++) { diff -= m[i, j]; } m[i, 0] = diff; } } /// <summary> /// Заполнение матрицы случайными числами /// </summary> static void FillMatrix(double [,] m) { int n = m.Length; Random rnd = new Random(DateTime.Now.Millisecond); for (int i = 0; i < m.GetLength(0); i++) { for (int j = 0; j < m.GetLength(1); j++) { m[i, j] = rnd.Next(n); } } } /// <summary> /// Вывод матрицы на экран. /// </summary> static void PrintMatrix(double[,] m) { for (int i = 0; i < m.GetLength(0); i++) { for (int j = 0; j < m.GetLength(1); j++) { Console.Write("{0,-4}", m[i, j]); } Console.WriteLine(); } } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д