Как вывести корректно перегруженные функции? В программе есть две функции 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();
}
}

21 Авг 2019 в 07:00
168 +1
0
Ответы
1

Для вывода результатов перегруженных функций 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.

20 Апр 2024 в 13:10
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Название заказа не должно быть пустым
Введите email
Бесплатные доработки
Гарантированные бесплатные доработки
Быстрое выполнение
Быстрое выполнение от 2 часов
Проверка работы
Проверка работы на плагиат
Интересные статьи из справочника
Поможем написать учебную работу
Название заказа не должно быть пустым
Введите email
Доверьте свою работу экспертам
Разместите заказ
Наша система отправит ваш заказ на оценку 95 924 авторам
Первые отклики появятся уже в течение 10 минут
Прямой эфир