Как отобразить умножение функции? Доброго времени суток
Нужно сделать перегрузку функции, которые перемножают матрицу на матрицу, вектор на вектор, матрицу на вектор и тд
Функции написал, но есть маленькая проблема
После умножений каких либо функций, результата нет на экране
В чем проблема? Как это изменить?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.WriteLine("enter the numbers of matrix columns: ")
COLUMN = int.Parse(Console.ReadLine())
Console.WriteLine("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.WriteLine("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("\n")
for (int row = 0; row < ROW; row++)
Console.Write("{0}\t", ARRAY[col, row])


Console.WriteLine()

public void ARRAYxARRAY(int[,] firstMatrix, int[,] secondMatrix, int[,] mult,
int rowFirst, int columnFirst,
int rowSecond, int columnSecond)
for (int i = 0; i < rowFirst; i++)
for (int j = 0; j < columnSecond; j++)
mult[i, j] = 0



for (int i = 0; i < rowFirst; i++)
for (int j = 0; j < columnSecond; j++)
for (int k = 0; k < columnFirst; k++)
mult[i, j] += firstMatrix[i, k]





public void ARRAYxARRAY(Matrix Matrix, int a)
for (int col = 0; col < COLUMN; col++)
for (int row = 0; row < ROW; row++)
ARRAY[col, row] = a * Matrix.ARRAY[col, row]



public void ARRAYxARRAY(int a, Matrix Matrix)
for (int col = 0; col < COLUMN; col++)
for (int row = 0; row < ROW; row++)
ARRAY[col, row] = a * Matrix.ARRAY[col, row]



public void ARRAYxARRAY(Matrix fMatrix, Matrix sMatrix)
for (int col = 0; col < COLUMN; col++)
for (int row = 0; row < ROW; row++)
ARRAY[col, row] += fMatrix.ARRAY[col, row] * sMatrix.ARRAY[col, row]



public void ARRAYxARRAY(Matrix Matrix, Vector Vector)
for (int col = 0; col < COLUMN; col++)
for (int row = 0; row < ROW; row++)
ARRAY[col, row] += Matrix.ARRAY[col, row] * Vector.ARRAY[col, row]



~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]

public void EnterVector()
Console.WriteLine("Choose type of vector: "
"\nvector-row= [1]"
"\nvector-col= [2]")
int variant = int.Parse(Console.ReadLine())

if (variant == 1)
COLUMN = 1
Console.WriteLine("enter the number of vector elements: ")
ROW = int.Parse(Console.ReadLine())

else if (variant == 2)
ROW = 1
Console.WriteLine("enter the numbers of vector elements: ")
COLUMN = int.Parse(Console.ReadLine())

ARRAY = new int[COLUMN, ROW]

for (int col = 0; col < COLUMN; col++)
for (int row = 0; row < ROW; row++)
Console.WriteLine("enter the elements of matrix cell[" + (col + 1) + ":" + (row + 1) + "]: ")
ARRAY[col, row] = int.Parse(Console.ReadLine())



public void ARRAYxARRAY(Vector fVector, Vector sVector)
for (int col = 0; col < COLUMN; col++)
for (int row = 0; row < ROW; row++)
ARRAY[col, row] += fVector.ARRAY[col, row] * sVector.ARRAY[col, 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.WriteLine("\n")

Vector VECTOR = new Vector()
VECTOR.EnterVector()
Console.WriteLine("The matrix is: ")
VECTOR.Display()

while (true)
Console.Write("Select anoperation:\n
+ "\t1. matrix * matrix;\n
+ "\t2. matrix * vector;\n
+ "\t3. number * matrix;\n
+ "\t4. vector * matrix;\n
+ "\t5. vector * vector;\n
+ "\t6. number * vectir;\n")
int choice = int.Parse(Console.ReadLine())

switch (choice)
case 1: Matrix MATRIXbyMATRIX = new Matrix()
MATRIXbyMATRIX.ARRAYxARRAY(MATRIX, MATRIX)
MATRIXbyMATRIX.Display()
break
case 2
Matrix MATRIXbyVECTOR = new Matrix()
MATRIXbyVECTOR.ARRAYxARRAY(MATRIX, VECTOR)
MATRIXbyVECTOR.Display()
break
case 3
Matrix NUMBERbyMATRIX = new Matrix()
Console.Write("enter the number to multiply by: ")
int numb1 = int.Parse(Console.ReadLine())
NUMBERbyMATRIX.ARRAYxARRAY(numb1, MATRIX)
NUMBERbyMATRIX.Display()
break
case 4
Matrix VECTORbyMATRIX = new Matrix()
VECTORbyMATRIX.ARRAYxARRAY(VECTOR, MATRIX)
VECTORbyMATRIX.Display()
break
case 5
Matrix VECTORbyVECTOR = new Matrix()
VECTORbyVECTOR.ARRAYxARRAY(VECTOR, VECTOR)
VECTORbyVECTOR.Display()
break
case 6
Matrix NUMBERbyVECTOR = new Matrix()
Console.Write("enter the number to multiply by: ")
int numb2 = int.Parse(Console.ReadLine())
NUMBERbyVECTOR.ARRAYxARRAY(numb2, VECTOR)
NUMBERbyVECTOR.Display()
break



}

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

Проблема заключается в том, что после умножения функций результат не отображается на экране, потому что после выполнения умножения вы не выводите результат на экран.

Чтобы решить эту проблему, вам нужно добавить вызов метода Display() для отображения результата умножения на экран. Например, после выполнения умножения матриц на матрицу:

Matrix MATRIXbyMATRIX = new Matrix()
MATRIXbyMATRIX.ARRAYxARRAY(MATRIX, MATRIX)
Console.WriteLine("Result of matrix * matrix operation:")
MATRIXbyMATRIX.Display();

Вы можете сделать то же самое для остальных операций умножения.

Добавьте вызов метода Display() после каждой операции умножения, чтобы увидеть результат на экране.

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