Получить новую матрицу путем деления всех элементов исходной матрицы на ее максимальный по модулю элемент - C#
Формулировка задачи:
Помогите написать программу
Двумерный массив: Дана прямоугольная матрица. Получить новую матрицу путем деления всех элементов исходной матрицы на ее максимальный по модулю элемент.
Решение задачи: «Получить новую матрицу путем деления всех элементов исходной матрицы на ее максимальный по модулю элемент»
textual
Листинг программы
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
matrixWork();
}
private static void matrixWork()
{
int[,] inputMatrix = generateMatrix(4, 6, -120, 350);
int maxModuleValue = getMaxModuleValue(inputMatrix);
double[,] outputMatrix = makeNewMatrix(inputMatrix, maxModuleValue);
}
private static int[,] generateMatrix(int width, int height, int minValue, int maxValue)
{
Random rnd = new Random(Environment.TickCount * DateTime.Now.Millisecond);
int[,] matrix = new int[height, width];
for (int y = 0; y < height; y++)
{
for (int x = 0; x < width; x++)
{
matrix[y, x] = rnd.Next(minValue, maxValue);
}
}
return matrix;
}
private static int getMaxModuleValue(int[,] matrix)
{
int result = 0;
for (int y = 0; y < matrix.GetLength(0); y++)
{
for (int x = 0; x < matrix.GetLength(1); x++)
{
if (result < Math.Abs(matrix[y, x]))
{
result = Math.Abs(matrix[y, x]);
}
}
}
return result;
}
private static double[,] makeNewMatrix(int[,] inputMatrix, int maxModuleValue)
{
double[,] outputMatrix = new double[inputMatrix.GetLength(0), inputMatrix.GetLength(1)];
for (int y = 0; y < outputMatrix.GetLength(0); y++)
{
for (int x = 0; x < outputMatrix.GetLength(1); x++)
{
outputMatrix[y, x] = (double)inputMatrix[y, x] / maxModuleValue;
}
}
return outputMatrix;
}
}
}