Определить класс Мatrix для хранения произвольной матрицы. Предусмотреть поля для хранения
количества строк и столоцов, конструкторы по умолчанию и с параметрами. Для инициализации и обращения к элементам матрицы использовать индексатор. Рeализовать метод вывода матрицы в консоль и перегруженную операцию умножения матриц. Привести пример создания двух объектов-матриц, запросив размер и значения элементов у пользователя. Вывести на консоль результат их произведения. Предусмотреть корректность вводимых данных.Ответы на вопрос
        первый скрин - main.cpp, все последующие - Matrix.h.
1) Работает со всеми стандартными типами C++.
2) Получать результат умножения нужно в указатель класса Matrix такого же типа, что и множители.
3) Перемножать можно только объекты класса Matrix одного типа.
4) У класса Matrix есть метод Fill(), добавлен для удобства тестирования, он заполняет матрицу указанным значением (обязательно одного типа с заполняемым Matrix`ом (тоесть если у тебя матрица типа char, то вызов метода должен быть примерно таким: matrixname.Fill('A') )).
5) При перемножении Matrix`ы накладываются друг на друга, а пересекающиеся элементы перемножаются.





            Для создания класса Matrix с указанными функциональностями вам потребуется использовать язык программирования C#. Вот пример реализации класса Matrix:
csharpusing System;
class Matrix
{
    private int rows;
    private int columns;
    private int[,] data;
    public Matrix(int rows, int columns)
    {
        this.rows = rows;
        this.columns = columns;
        data = new int[rows, columns];
    }
    public int Rows
    {
        get { return rows; }
    }
    public int Columns
    {
        get { return columns; }
    }
    public int this[int row, int column]
    {
        get { return data[row, column]; }
        set { data[row, column] = value; }
    }
    public void Print()
    {
        for (int i = 0; i < rows; i++)
        {
            for (int j = 0; j < columns; j++)
            {
                Console.Write($"{data[i, j]} ");
            }
            Console.WriteLine();
        }
    }
    public static Matrix operator *(Matrix matrix1, Matrix matrix2)
    {
        if (matrix1.columns != matrix2.rows)
        {
            throw new ArgumentException("The number of columns in the first matrix must be equal to the number of rows in the second matrix.");
        }
        Matrix result = new Matrix(matrix1.rows, matrix2.columns);
        for (int i = 0; i < matrix1.rows; i++)
        {
            for (int j = 0; j < matrix2.columns; j++)
            {
                int sum = 0;
                for (int k = 0; k < matrix1.columns; k++)
                {
                    sum += matrix1[i, k] * matrix2[k, j];
                }
                result[i, j] = sum;
            }
        }
        return result;
    }
}
class Program
{
    static void Main()
    {
        try
        {
            Console.Write("Введите количество строк первой матрицы: ");
            int rows1 = int.Parse(Console.ReadLine());
            Console.Write("Введите количество столбцов первой матрицы: ");
            int columns1 = int.Parse(Console.ReadLine());
            Matrix matrix1 = new Matrix(rows1, columns1);
            Console.WriteLine("Введите элементы первой матрицы:");
            for (int i = 0; i < rows1; i++)
            {
                for (int j = 0; j < columns1; j++)
                {
                    Console.Write($"Элемент [{i}, {j}]: ");
                    matrix1[i, j] = int.Parse(Console.ReadLine());
                }
            }
            Console.Write("Введите количество строк второй матрицы: ");
            int rows2 = int.Parse(Console.ReadLine());
            Console.Write("Введите количество столбцов второй матрицы: ");
            int columns2 = int.Parse(Console.ReadLine());
            Matrix matrix2 = new Matrix(rows2, columns2);
            Console.WriteLine("Введите элементы второй матрицы:");
            for (int i = 0; i < rows2; i++)
            {
                for (int j = 0; j < columns2; j++)
                {
                    Console.Write($"Элемент [{i}, {j}]: ");
                    matrix2[i, j] = int.Parse(Console.ReadLine());
                }
            }
            Console.WriteLine("Первая матрица:");
            matrix1.Print();
            Console.WriteLine("Вторая матрица:");
            matrix2.Print();
            Matrix result = matrix1 * matrix2;
            Console.WriteLine("Результат умножения матриц:");
            result.Print();
        }
        catch (Exception ex)
        {
            Console.WriteLine($"Ошибка: {ex.Message}");
        }
    }
}
В приведенном примере мы создали класс Matrix с необходимыми полями и методами, включая перегруженную операцию умножения матриц. В методе Main, мы запрашиваем у пользователя размеры и элементы двух матриц, а затем выполняем умножение матриц и выводим результат на консоль. Обратите внимание, что код предусматривает обработку ошибок при некорректном вводе данных пользователем.
Похожие вопросы
			Топ вопросов за вчера в категории Информатика
Последние заданные вопросы в категории Информатика
- 
			
Математика
 - 
			
Литература
 - 
			
Алгебра
 - 
			
Русский язык
 - 
			
Геометрия
 - 
			
Английский язык
 - 
			
Химия
 - 
			
Физика
 - 
			
Биология
 - 
			
Другие предметы
 - 
			
История
 - 
			
Обществознание
 - 
			
Окружающий мир
 - 
			
География
 - 
			
Українська мова
 - 
			
Информатика
 - 
			
Українська література
 - 
			
Қазақ тiлi
 - 
			
Экономика
 - 
			
Музыка
 - 
			
Право
 - 
			
Беларуская мова
 - 
			
Французский язык
 - 
			
Немецкий язык
 - 
			
МХК
 - 
			
ОБЖ
 - 
			
Психология
 - 
			
Физкультура и спорт
 - 
			
Астрономия
 - 
			
Кыргыз тили
 - 
			
Оʻzbek tili
 
			
			
			
			
			
			
			
			
			
			
			
			
			
			
			
			
			
			
			
			
			