Описать методы для работы с матрицей размерности 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();
}
}
}