Как отобразить умножение функции? Доброго времени суток!
Нужно сделать перегрузку функции, которые перемножают матрицу на матрицу, вектор на вектор, матрицу на вектор и тд.
Функции написал, но есть маленькая проблема.
После умножений каких либо функций, результата нет на экране.
В чем проблема? Как это изменить?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

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

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

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

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

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

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

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