В
Все
М
Математика
А
Английский язык
Х
Химия
Э
Экономика
П
Право
И
Информатика
У
Українська мова
Қ
Қазақ тiлi
О
ОБЖ
Н
Немецкий язык
Б
Беларуская мова
У
Українська література
М
Музыка
П
Психология
А
Алгебра
Л
Литература
Б
Биология
М
МХК
О
Окружающий мир
О
Обществознание
И
История
Г
Геометрия
Ф
Французский язык
Ф
Физика
Д
Другие предметы
Р
Русский язык
Г
География
skkzrjyltcm2005
skkzrjyltcm2005
09.11.2022 10:49 •  Информатика

Описать класс матрица. создать метод вычитания матриц (перегруженный оператор “–“). в программе показать пример в c#(си шарп)

Показать ответ
Ответ:
2156kolllokir
2156kolllokir
03.10.2020 18:09
Using System;
using System.Collections.Generic;

public class Matrix
{
    private double[,] Data;
    public double this[int i, int j]
    {
        get { return Data[i, j]; }
        set { Data[i, j] = value; }
    }

    public Matrix(double[,] data) { this.Data = data; }

    public override string ToString()
    {
        var sb = new System.Text.StringBuilder();
        for (var i = Data.GetLowerBound(0); i <= Data.GetUpperBound(0); i++)
        {
            for (var j = Data.GetLowerBound(1); j <= Data.GetUpperBound(1); j++)
            {
                sb.AppendFormat("{0} ", Data[i, j]);
            }
            sb.AppendLine();
        }

        return sb.ToString();
    }

    public int GetUpperBound(int i) => this.Data.GetUpperBound(i);

    public static Matrix operator -(Matrix a, Matrix b)
    {
        var c = new double[1 + Math.Min(a.GetUpperBound(0), b.GetUpperBound(0)), 1 + Math.Min(a.GetUpperBound(1), b.GetUpperBound(1))];
        for (var i = 0; i <= c.GetUpperBound(0); i++)
        {
            for (var j = 0; j <= c.GetUpperBound(1); j++)
            {
                c[i, j] = a[i, j] - b[i, j];
            }
        };
        return new Matrix(c);
    }
}

class Program
{
    static void Main()
    {
        var n = 5;
        var a = new Matrix(new double[n, n]);
        var b = new Matrix(new double[n, n]);

        for (var i = 0; i < n; i++)
        {
            for (var j = 0; j < n; j++)
            {
                a[i, j] = i + j;
                b[i, j] = i;
            }
        }

        Console.WriteLine(a);
        Console.WriteLine(b);
        Console.WriteLine(a - b);
        Console.ReadKey();

    }
}
0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота