| Код | class Program { static void Main(string[] args) { Console.Write("n ->"); int n = Convert.ToInt32(Console.ReadLine()); Console.Write("m ->"); int m = Convert.ToInt32(Console.ReadLine());
double[,] B = CreateRandomMatrix(n, m); double Bmin = FindElement(B, n, m, (find, matrix, i, j) => find > matrix[i, j]); double Bmax = FindElement(B, n, m, (find, matrix, i, j) => find < matrix[i, j]); double[,] A = ConvertMatrix(B, n, m, (matrix, i, j) => (2 * matrix[i, j] + Bmin) / Bmax); PrintMatrix(A, n,m); Console.ReadLine(); }
static double[,] CreateRandomMatrix(int n, int m) { Random random = new Random(); double[,] result = new double[n, m]; for (int i = 0; i < n; i++) { for(int j = 0; j < m; j ++) { result[i, j] = random.NextDouble(); } } return result; }
static double FindElement(double[,] matrix, int n, int m, Func<double, double[,], int, int,bool> check) { double? find = null; for (int i = 0; i < n; i++) { for (int j = 0; j < m; j++) { if (find == null) find = matrix[i, j]; else if (check((double)find, matrix, i, j)) find = matrix[i, j]; } } return (double)find; }
static double[,] ConvertMatrix(double[,] matrix, int n, int m, Func<double[,], int, int, double> convertFunction) { double[,] result = new double[n, m]; for (int i = 0; i < n; i++) { for (int j = 0; j < m; j++) { result[i, j] = convertFunction(matrix, i, j); } } return result; }
static void PrintMatrix(double[,] matrix, int n, int m) { for (int i = 0; i < n; i++) { for (int j = 0; j < m; j++) { Console.Write("{0}\t", matrix[i, j]); } Console.WriteLine(); } } }
|
|