Как вывести корректно перегруженные функции? В программе есть две функции ARRAYxARRAY. Одна умножает матрицу на введеное число, а вторая умножает матрицу на матрица. Так вот => при выводе результатов мне выдает два раза метод с умножением числа на матрицуusing System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; class Matrix { protected int row, column; protected int[,] ARRAY; public int ROW { get { return row; } set { row = value; } } public int COLUMN { get { return column; } set { column = value; } } public Matrix() { } public Matrix(int row, int column) { this.row = row; this.column = column; ARRAY = new int[this.COLUMN, this.ROW]; } public void EnterMatrix() { Console.Write("enter the numbers of matrix columns: "); COLUMN = int.Parse(Console.ReadLine()); Console.Write("enter the numbers of matrix rows: "); ROW = int.Parse(Console.ReadLine()); ARRAY = new int[COLUMN, ROW]; for (int col = 0; col < COLUMN; col++) { for (int row = 0; row < ROW; row++) { Console.Write("enter the elements of matrix cell[" + (col + 1) + ":" + (row + 1) + "]: "); ARRAY[col, row] = int.Parse(Console.ReadLine()); } } } public void Display() { for (int col = 0; col < COLUMN; col++) { Console.WriteLine(); for (int row = 0; row < ROW; row++) { Console.Write("{0}\t", ARRAY[col, row]); } } Console.WriteLine(); } public void ARRAYxARRAY(Matrix Matrix, int number) { int rows = Matrix.ROW, cols = Matrix.COLUMN; for (int i = 0; i < Matrix.ROW; i++) { for (int j = 0; j < Matrix.COLUMN; j++) { ARRAY[i, j] = Matrix.ARRAY[i, j] * number; } } } public Matrix ARRAYxARRAY(Matrix fMatrix, Matrix sMatrix) { int rows1 = fMatrix.ROW, cols1 = fMatrix.COLUMN, rows2 = sMatrix.ROW, cols2 = sMatrix.COLUMN; Matrix tMatrix = new Matrix(rows1, cols2); if (cols1 == rows2) { for (int i = 0; i < rows1; i++) { for (int j = 0; j < cols2; j++) { for (int k = 0; k < cols1; k++) { tMatrix.ARRAY[i, j] += fMatrix.ARRAY[i, k] * sMatrix.ARRAY[k, j]; } } } return tMatrix; } else { Console.WriteLine("Matrixes can`t be multiplied."); } return tMatrix; } ~Matrix() { Console.WriteLine("Matrix has been denied."); } } class Vector : Matrix { public Vector() { } public Vector(int row, int column) { this.row = row; this.column = column; ARRAY = new int[this.COLUMN, this.ROW]; } ~Vector() { Console.WriteLine("Vector has been denied."); } } class Program { static void Main() { Matrix MATRIX = new Matrix(); MATRIX.EnterMatrix(); Console.WriteLine("The matrix is: "); MATRIX.Display(); Console.Write("enter the number to multiply by: "); int number = int.Parse(Console.ReadLine()); MATRIX.ARRAYxARRAY(MATRIX, number); MATRIX.Display(); Console.Write("*************"); MATRIX.ARRAYxARRAY(MATRIX, MATRIX); MATRIX.Display(); } }
Для вывода результатов перегруженных функций ARRAYxARRAY в программе нужно создать объект типа Matrix для хранения результата умножения двух матриц. После вызова метода ARRAYxARRAY для умножения числа на матрицу, необходимо создать новую матрицу и вывести ее с помощью метода Display.
Пример кода:
Matrix resultMatrix = new Matrix(); Console.WriteLine("The result matrix after multiplying by a number is: "); resultMatrix = MATRIX.ARRAYxARRAY(MATRIX, number); resultMatrix.Display(); Console.WriteLine("*************"); resultMatrix = MATRIX.ARRAYxARRAY(MATRIX, MATRIX); Console.WriteLine("The result matrix after multiplying by another matrix is: "); resultMatrix.Display();
Таким образом, после вызова перегруженной функции ARRAYxARRAY для умножения матриц, необходимо присвоить результат выполнения метода новой матрице resultMatrix и вывести ее с помощью метода Display.
Для вывода результатов перегруженных функций ARRAYxARRAY в программе нужно создать объект типа Matrix для хранения результата умножения двух матриц.
После вызова метода ARRAYxARRAY для умножения числа на матрицу, необходимо создать новую матрицу и вывести ее с помощью метода Display.
Пример кода:
Matrix resultMatrix = new Matrix();Console.WriteLine("The result matrix after multiplying by a number is: ");
resultMatrix = MATRIX.ARRAYxARRAY(MATRIX, number);
resultMatrix.Display();
Console.WriteLine("*************");
resultMatrix = MATRIX.ARRAYxARRAY(MATRIX, MATRIX);
Console.WriteLine("The result matrix after multiplying by another matrix is: ");
resultMatrix.Display();
Таким образом, после вызова перегруженной функции ARRAYxARRAY для умножения матриц, необходимо присвоить результат выполнения метода новой матрице resultMatrix и вывести ее с помощью метода Display.