Получить новую матрицу путем деления всех элементов исходной матрицы на ее максимальный по модулю элемент - 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;
        }
    }
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

13   голосов , оценка 4.231 из 5
Похожие ответы