Получить новую матрицу путем деления всех элементов исходной матрицы на ее максимальный по модулю элемент - 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; } } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д