Реализовать класс квадратных матриц, методы: умножение, возведение в степень, произведение элементов на 2 диагоналях - C#

Узнай цену своей работы

Формулировка задачи:

Задание: Реализовать класс квадратных матриц. Размер задаёт пользователь.Методы: умножение,возведение в степень, произведение элементов на 2 диагоналях, сумма элементов матрицы.Должно показывать ся время выполнения каждого из методов. Вопросы: 1)При вводе ,например, размера матрицы в виде: 0000,5 или 0,00000000 или 0000,000000 ввод следует считать неправильным или нет?Если да, то как лучше реализовать a)регулярные выражения б)TryParse в)другое 2)Ребят проверьте пожалуйста программа где что не так и где следует что исправить или где код написать можно было бы покомпактнее и получге и сообщите обязательно.К понедельнику нужна. Вот код: Класс матриц
class Matrix{
    uint size;
    double[,] mtx;
 
    //конструктор
    public Matrix(uint size) {
        this.size = size;
        mtx = new double[size, size];
    }
 
    //устанавливает значения элементов матрицы вручную
    public void SetElements(){
        for (int i = 0; i < size; i++)
           for (int j = 0; j < size; j++)
                do
                {
                    Console.Write("Введите элемент [{0},{1}]: ", i, j);
                } while (!Double.TryParse(Console.ReadLine(), out mtx[i, j]));
    }
 
    //умножение матриц
    public Matrix Mul(Matrix MtxOp2){
        Matrix MtxResult = new Matrix(size);
 
        for (int i = 0; i < size; i++)
            for (int j = 0; j < size; j++)
                for (int k = 0; k < size; k++)
                    MtxResult.mtx[i, j] += mtx[i, k] * MtxOp2.mtx[k, j];
 
        return MtxResult;
    }      
 
     //показать матрицу
    public void ShowMtx(){
        for (int i = 0; i < size; i++)
        {
            for (int j = 0; j < size; j++)
                Console.Write(this.mtx[i, j] + "\t");
            Console.WriteLine();
        }
    }
 
    //возвести матрицы в степень
    public Matrix Pow(uint deg) {
        Matrix MtxResult = this;
 
        for (int i = 2; i <= deg; i++) 
            MtxResult  = Mul(MtxResult);
        
        return MtxResult;
     }
 
    //сумма элементов матрицы
    public double SumElements() {
        double sum = 0.0;
      
        for (int i = 0; i < size; i++)
            for (int j = 0; j < size; j++)
                sum += mtx[i, j];
        
        return sum;
    }
 
    //возвращает размер
    public uint GetSize(){
        return size;
    }
 
    //произведение элементов на диагоналях
    public double[] MulDiag(){
        int i,j;
        double []MulResult=new double[2];
        MulResult[0] = MulResult[1] = 1;
 
        for (i = 0; i < size; i++)
            MulResult[0] *= mtx[i, i];
        for (j = 0; j < size; j++)
            MulResult[1] *= mtx[size-1 -j, size - (size - j) ];
 
        return MulResult;
    }       
 
}
Главный класс:
lass TryMatrix {
        
    static void Main() {
        char ch;
        uint size,deg;
        double sum;
 
        for (; ; ){
            do{
                Console.WriteLine("Menu:\n" +
                                   " 1.Умножить матрицы.\n" +
                                   " 2.Возвести в степень.\n" +
                                   " 3.Сумма всех элементов.\n" +
                                   " 4.Произведение элементов на диагоналях.\n" +
                                   " 0.Выход.");
                Console.Write("Ваш выбор: ");
            } while (!Char.TryParse(Console.ReadLine(), out ch) || ch < '0' || ch > '4');
 
            if (ch == '0') Environment.Exit(0);
 
            do
            {
                Console.Write("Введите размер матрицы: ");
            } while (!uint.TryParse(Console.ReadLine(), out size) || size == 0);
 
            Matrix Mtx1 = new Matrix(size);
            Matrix Mtx2 = new Matrix(size);
            Matrix MtxResult = new Matrix(size);
 
            Console.WriteLine();
 
            Stopwatch sWatch = new Stopwatch();
            TimeSpan ts;
 
            switch (ch)
            {
                case '1':
                    Console.WriteLine("Матрица 1:");
                    Mtx1.SetElements();
                    Mtx1.ShowMtx();
                    Console.WriteLine();
 
                    Console.WriteLine("Матрица 2:");
                    Mtx2.SetElements();
                    Mtx2.ShowMtx();
                    Console.WriteLine();
 
                    sWatch.Start();
                    MtxResult = Mtx1.Mul(Mtx2);
                    sWatch.Stop();
                    ts = sWatch.Elapsed;
                    
                    Console.WriteLine("Результат:");
                    MtxResult.ShowMtx();
                    Console.WriteLine("\nЗатраченное время " + ts.TotalMilliseconds);
                    break;
 
                case '2':
                    Console.WriteLine("Матрица:");
                    Mtx1.SetElements();
                    Mtx1.ShowMtx();
                    Console.WriteLine();
 
                    do
                    {
                        Console.Write("Введите степень: ");
                    } while (!uint.TryParse(Console.ReadLine(), out deg));
 
                    sWatch.Start();
                    MtxResult = Mtx1.Pow(deg);
                    sWatch.Stop();
                    ts = sWatch.Elapsed;
 
                    Console.WriteLine("Результат:");
                    MtxResult.ShowMtx();
                    Console.WriteLine("\nЗатраченное время " + ts.TotalMilliseconds);
                    break;
 
                case '3':
                    Console.WriteLine("Матрица:");
                    Mtx1.SetElements();
                    Mtx1.ShowMtx();
                    Console.WriteLine();
 
                    sWatch.Start();
                    size = Mtx1.GetSize();
                    sum = Mtx1.SumElements();
                    sWatch.Stop();
                    ts = sWatch.Elapsed;
 
                    Console.Write("Размер матрицы {0}, сумма элементов {1}.", size,sum);
                    Console.WriteLine("\nЗатраченное время " + ts.TotalMilliseconds);
                    break;
                case '4':
                    double[] MulResult = new double[2];
 
                    Console.WriteLine("Матрица:");
                    Mtx1.SetElements();
                    Mtx1.ShowMtx();
                    Console.WriteLine();
                    sWatch.Start();
 
                    MulResult = Mtx1.MulDiag();
                    sWatch.Stop();
                    ts = sWatch.Elapsed;
                    
                    Console.WriteLine("Произведение элементов на 1 диагонали {0}, на 2 диагонали {1}", 
                        MulResult[0], MulResult[1]);
                    Console.WriteLine("\nЗатраченное время " + ts.TotalMilliseconds + " мс.");
 
                    break;
            }
 
            Console.WriteLine();
           
            do{
                Console.Write("Ещё разок ?(1-да,2-нет): ");
            } while (!Char.TryParse(Console.ReadLine(), out ch) && (ch != '1' || ch != '2'));
 
            if (ch == '2') Environment.Exit(0);
            
            Console.WriteLine();
        }
    }
}
Используемые библиотеки:
using System;
using System.Diagnostics;
using System.Threading;

Решение задачи: «Реализовать класс квадратных матриц, методы: умножение, возведение в степень, произведение элементов на 2 диагоналях»

textual
Листинг программы
using System;
using System.Diagnostics;
 
namespace lab2
{
    public class Matrix
    {
        private double[,] mtr1; private double[,] mtr2; private double[,] mtr;
        private int n1, n2; string StDigit; double dSumma1 = 0; double dSumma2 = 0; int N;
        double dPr1 = 0, dPr2 = 0; double dPrO1 = 0, dPrO2 = 0;
 
        public void matr()
        {
 
 
            Console.WriteLine("Операции с двумя матрицами");
 
            do
            {
                do
                {
                    Console.WriteLine("Введите размер 1-ой матрицы");
                    StDigit = Convert.ToString(Console.ReadLine());
                    if (!provInt(StDigit)) Console.WriteLine("Ошибка ввода");
                } while (!provInt(StDigit));
                n1 = Convert.ToInt32(StDigit);
                if (n1 < 0) Console.WriteLine("Ошибка ввода");
                else mtr1 = new double[n1, n1];
            } while (n1 < 0);
 
 
 
            int p = 0;
            do
            {
                Console.WriteLine("Выберите метод заполнения:\n[1] - случайным образом\n[2] - вручную\n[3] - единичная матрица");
 
                switch (Console.ReadKey(true).Key)
                {
                    case ConsoleKey.D1:
                        {
 
                            Random r = new Random();
                            for (int i = 0; i < n1; i++)
                            {
                                for (int j = 0; j < n1; j++)
                                {
                                    mtr1[i, j] = r.Next(10);
                                }
                            }
                            p = 1;
                            break;
                        }
                    case ConsoleKey.NumPad1:
                        {
 
                            Random r = new Random();
                            for (int i = 0; i < n1; i++)
                            {
                                for (int j = 0; j < n1; j++)
                                {
                                    mtr1[i, j] = r.Next(10);
                                }
                            }
                            p = 1;
                            break;
                        }
                    case ConsoleKey.D2:
                        {
                            for (int i = 0; i < n1; i++)
                            {
                                for (int j = 0; j < n1; j++)
                                {
                                    Console.WriteLine("Введите элемент: " + (i + 1) + (j + 1));
                                    do
                                    {
 
                                        StDigit = Console.ReadLine();
 
                                        if (!prov(StDigit)) Console.WriteLine("Ошибка ввода");
                                    } while (!prov(StDigit));
                                    mtr1[i, j] = Convert.ToDouble(StDigit);
 
                                }
                            }
                            p = 1;
                            break;
                        }
                    case ConsoleKey.NumPad2:
                        {
                            for (int i = 0; i < n1; i++)
                            {
                                for (int j = 0; j < n1; j++)
                                {
                                    Console.WriteLine("Введите элемент: " + (i + 1) + (j + 1));
                                    do
                                    {
 
                                        StDigit = Console.ReadLine();
 
                                        if (!prov(StDigit)) Console.WriteLine("Ошибка ввода");
                                    } while (!prov(StDigit));
                                    mtr1[i, j] = Convert.ToDouble(StDigit);
 
                                }
                            }
                            p = 1;
                            break;
                        }
                    case ConsoleKey.D3:
                        {
                            for (int i = 0; i < n1; i++)
                            {
                                for (int j = 0; j < n1; j++)
                                {
                                    if (i == j)
                                        mtr1[i, j] = 1;
                                    else
                                        mtr1[i, j] = 0;
                                }
                            }
 
                            p = 1;
                            break;
                        }
                    case ConsoleKey.NumPad3:
                        {
                            for (int i = 0; i < n1; i++)
                            {
                                for (int j = 0; j < n1; j++)
                                {
                                    if (i == j)
                                        mtr1[i, j] = 1;
                                    else
                                        mtr1[i, j] = 0;
                                }
                            }
 
                            p = 1;
                            break;
                        }
 
                    default:
                        Console.Clear();
                        continue;
                }
            } while (p == 0);
 
 
            do
            {
                do
                {
                    Console.WriteLine("Введите размер 2-ой матрицы");
                    StDigit = Convert.ToString(Console.ReadLine());
                    if (!provInt(StDigit)) Console.WriteLine("Ошибка ввода");
                } while (!provInt(StDigit));
                n2 = Convert.ToInt32(StDigit);
                if (n2 < 0) Console.WriteLine("Ошибка ввода");
                else mtr2 = new double[n2, n2];
            } while (n2 < 0);
 
 
 
 
            do
            {
                Console.WriteLine("Выберите метод заполнения:\n[1] - случайным образом\n[2] - вручную\n[3] - единичная матрица");
 
                switch (Console.ReadKey(true).Key)
                {
                    case ConsoleKey.D1:
                        {
 
                            Random r = new Random();
                            for (int i = 0; i < n2; i++)
                            {
                                for (int j = 0; j < n2; j++)
                                {
                                    mtr2[i, j] = r.Next(10);
                                }
                            }
                            p = 1;
                            break;
                        }
                    case ConsoleKey.NumPad1:
                        {
 
                            Random r = new Random();
                            for (int i = 0; i < n2; i++)
                            {
                                for (int j = 0; j < n2; j++)
                                {
                                    mtr2[i, j] = r.Next(10);
                                }
                            }
                            p = 1;
                            break;
                        }
                    case ConsoleKey.D2:
                        {
                            for (int i = 0; i < n2; i++)
                            {
                                for (int j = 0; j < n2; j++)
                                {
                                    Console.WriteLine("Введите элемент: " + (i + 1) + (j + 1));
                                    do
                                    {
 
                                        StDigit = Console.ReadLine();
 
                                        if (!prov(StDigit)) Console.WriteLine("Ошибка ввода");
                                    } while (!prov(StDigit));
                                    mtr2[i, j] = Convert.ToDouble(StDigit);
 
                                }
                            }
                            p = 1;
                            break;
                        }
                    case ConsoleKey.NumPad2:
                        {
                            for (int i = 0; i < n2; i++)
                            {
                                for (int j = 0; j < n2; j++)
                                {
                                    Console.WriteLine("Введите элемент: " + (i + 1) + (j + 1));
                                    do
                                    {
 
                                        StDigit = Console.ReadLine();
 
                                        if (!prov(StDigit)) Console.WriteLine("Ошибка ввода");
                                    } while (!prov(StDigit));
                                    mtr2[i, j] = Convert.ToDouble(StDigit);
 
                                }
                            }
                            p = 1;
                            break;
                        }
                    case ConsoleKey.D3:
                        {
                            for (int i = 0; i < n2; i++)
                            {
                                for (int j = 0; j < n2; j++)
                                {
                                    if (i == j)
                                        mtr2[i, j] = 1;
                                    else
                                        mtr2[i, j] = 0;
                                }
                            }
 
                            p = 1;
                            break;
                        }
                    case ConsoleKey.NumPad3:
                        {
                            for (int i = 0; i < n2; i++)
                            {
                                for (int j = 0; j < n2; j++)
                                {
                                    if (i == j)
                                        mtr2[i, j] = 1;
                                    else
                                        mtr2[i, j] = 0;
                                }
                            }
 
                            p = 1;
                            break;
                        }
 
                    default:
                        Console.Clear();
                        continue;
                }
            } while (p == 0);
 
            Console.Clear();
            Console.WriteLine("Матрица 1");
            for (int i = 0; i < n1; i++)
            {
                for (int j = 0; j < n1; j++)
                {
                    Console.Write("{0:F2} ", mtr1[i, j]);
                }
                Console.WriteLine("");
            }
            Console.WriteLine("Матрица 2");
            for (int i = 0; i < n2; i++)
            {
                for (int j = 0; j < n2; j++)
                {
                    Console.Write("{0:F2} ", mtr2[i, j]);
                }
                Console.WriteLine("");
            }
            int exit = 1;
           
            for (; ; )
            {
                if (exit == 0) break;
                Console.WriteLine("Выберите операцию:\n[1] - умножить матрицы\n[2] - возвести в степень 1-ую матрицу\n[3] - возвести в степень 2-ую матрицу\n[4] - вывод суммы элементов и размера каждой матрицы\n[5] - умножение элементов на диагоналях\n[ESC] - Назад\n");
                switch (Console.ReadKey(true).Key)
                {
                    case ConsoleKey.D1:
                        {
                            if (n1 != n2) { Console.WriteLine("Размеры матриц не совпадают"); }
                            else
                            {
                                Stopwatch time;
                            time = Stopwatch.StartNew();
                                umnozh();
                                print();
                                time.Stop();
                                long ticksThisTime = time.ElapsedMilliseconds;
 
                               Console.WriteLine("Время вычислений= {0} миллисекунд ",ticksThisTime);
 
 
                                Console.WriteLine("\n\n\nНажмите любую клавишу . . .");
                                Console.ReadKey();
                                Console.Clear();
                                matrX();
                                
                            }
                            break;
 
                        }
                    case ConsoleKey.NumPad1:
                        {
                            if (n1 != n2) { Console.WriteLine("Размеры матриц не совпадают"); }
                            else
                            {
                                Stopwatch time;
                                time = Stopwatch.StartNew();
                                umnozh();
                                print();
                                time.Stop();
                                long ticksThisTime = time.ElapsedMilliseconds;
 
                                Console.WriteLine("Время вычислений= {0} миллисекунд ", ticksThisTime);
 
 
                                Console.WriteLine("\n\n\nНажмите любую клавишу . . .");
                                Console.ReadKey();
                                Console.Clear();
                                matrX();
 
                            }
                            break;
 
                        }
                    case ConsoleKey.D2:
                        {
                            Stopwatch time;
                            time = Stopwatch.StartNew();
                            stepen(1);
                            print();
                            time.Stop();
                            long ticksThisTime = time.ElapsedMilliseconds;
 
                            Console.WriteLine("Время вычислений= {0} миллисекунд ", ticksThisTime);
 
 
                            Console.WriteLine("\n\n\nНажмите любую клавишу . . .");
                            Console.ReadKey();
                            Console.Clear();
                            matrX();
                            break;
                        }
 
                    case ConsoleKey.NumPad2:
                        {
                            Stopwatch time;
                            time = Stopwatch.StartNew();
                            stepen(1);
                            print();
                            time.Stop();
                            long ticksThisTime = time.ElapsedMilliseconds;
 
                            Console.WriteLine("Время вычислений= {0} миллисекунд ", ticksThisTime);
 
 
                            Console.WriteLine("\n\n\nНажмите любую клавишу . . .");
                            Console.ReadKey();
                            Console.Clear();
                            matrX();
                            break;
                        }
 
                    case ConsoleKey.D3:
                        {
                            Stopwatch time;
                            time = Stopwatch.StartNew();
                            stepen(2);
                            print();
                            time.Stop();
                            long ticksThisTime = time.ElapsedMilliseconds;
 
                            Console.WriteLine("Время вычислений= {0} миллисекунд ", ticksThisTime);
 
 
                            Console.WriteLine("\n\n\nНажмите любую клавишу . . .");
                            Console.ReadKey();
                            Console.Clear();
                            matrX();
                            break;
                        }
                    case ConsoleKey.NumPad3:
                        {
 
                            Stopwatch time;
                            time = Stopwatch.StartNew();
                            stepen(2);
                            print();
                            time.Stop();
                            long ticksThisTime = time.ElapsedMilliseconds;
 
                            Console.WriteLine("Время вычислений= {0} миллисекунд ", ticksThisTime);
 
 
                            Console.WriteLine("\n\n\nНажмите любую клавишу . . .");
                            Console.ReadKey();
                            Console.Clear();
                            matrX();
                            break;
                        }
                    case ConsoleKey.D4:
                        {
                            Stopwatch time;
                            time = Stopwatch.StartNew();
                            N = n1; mtr = mtr1;
                            Console.WriteLine("Размер 1-ой матрицы равен: " + GetSizeAndSumm(ref dSumma1));
                            Console.WriteLine("Сумма элементов 1-ой матрицы равна: " + dSumma1);
                            N = n2; mtr = mtr2;
                            Console.WriteLine("Размер 2-ой матрицы равен: " + GetSizeAndSumm(ref dSumma2));
                            Console.WriteLine("Сумма элементов 2-ой матрицы равна: " + dSumma2);
                            mtr = null; time.Stop();
                            long ticksThisTime = time.ElapsedMilliseconds;
 
                            Console.WriteLine("Время вычислений= {0} миллисекунд ", ticksThisTime);
 
 
                            Console.WriteLine("\n\n\nНажмите любую клавишу . . .");
                            Console.ReadKey();
                            Console.Clear();
                            matrX();
                            break;
                        }
                    case ConsoleKey.NumPad4:
                        {
                            Stopwatch time;
                            time = Stopwatch.StartNew();
                            N = n1; mtr = mtr1;
                            Console.WriteLine("Размер 1-ой матрицы равен: " + GetSizeAndSumm(ref dSumma1));
                            Console.WriteLine("Сумма элементов 1-ой матрицы равна: " + dSumma1);
                            N = n2; mtr = mtr2;
                            Console.WriteLine("Размер 2-ой матрицы равен: " + GetSizeAndSumm(ref dSumma2));
                            Console.WriteLine("Сумма элементов 2-ой матрицы равна: " + dSumma2);
                            mtr = null; time.Stop();
                            long ticksThisTime = time.ElapsedMilliseconds;
 
                            Console.WriteLine("Время вычислений= {0} миллисекунд ", ticksThisTime);
 
 
                            Console.WriteLine("\n\n\nНажмите любую клавишу . . .");
                            Console.ReadKey();
                            Console.Clear();
                            matrX();
                            break;
                        }
                    case ConsoleKey.D5:
                        {
                            Stopwatch time;
                            time = Stopwatch.StartNew();
                            N = n1; mtr = mtr1; dProizv(ref dPr1); dProizvO(ref dPrO1);
                            Console.WriteLine("Произведение элементов на главной диагонали 1-ой матрицы: " + dPr1);
                            Console.WriteLine("Произведение элементов на побочной диагонали 1-ой матрицы: " + dPrO1);
                            N = n2; mtr = mtr2; dProizv(ref dPr2); dProizvO(ref dPrO2);
                            Console.WriteLine("Произведение элементов на диагонали 2-ой матрицы: " + dPr2);
                            Console.WriteLine("Произведение элементов на побочной диагонали 2-ой матрицы: " + dPrO2);
                            mtr = null;
                            time.Stop();
                            long ticksThisTime = time.ElapsedMilliseconds;
 
                            Console.WriteLine("Время вычислений= {0} миллисекунд ", ticksThisTime);
 
 
                            Console.WriteLine("\n\n\nНажмите любую клавишу . . .");
                            Console.ReadKey();
                            Console.Clear();
                            matrX();
                            break;
                        }
                    case ConsoleKey.NumPad5:
                        {
                            Stopwatch time;
                            time = Stopwatch.StartNew();
                            N = n1; mtr = mtr1; dProizv(ref dPr1); dProizvO(ref dPrO1);
                            Console.WriteLine("Произведение элементов на главной диагонали 1-ой матрицы: " + dPr1);
                            Console.WriteLine("Произведение элементов на побочной диагонали 1-ой матрицы: " + dPrO1);
                            N = n2; mtr = mtr2; dProizv(ref dPr2); dProizvO(ref dPrO2);
                            Console.WriteLine("Произведение элементов на диагонали 2-ой матрицы: " + dPr2);
                            Console.WriteLine("Произведение элементов на побочной диагонали 2-ой матрицы: " + dPrO2);
                            mtr = null;
                            time.Stop();
                            long ticksThisTime = time.ElapsedMilliseconds;
 
                            Console.WriteLine("Время вычислений= {0} миллисекунд ", ticksThisTime);
 
 
                            Console.WriteLine("\n\n\nНажмите любую клавишу . . .");
                            Console.ReadKey();
                            Console.Clear();
                            matrX();
                            break;
                        }
                    case ConsoleKey.Escape:
                        Console.Clear();
                        exit = 0;
                        break;
                    default:
                        Console.Clear();
                        continue;
 
                }
            }
 
        }
 
 
 
 
 
 
        private static bool prov(string text)
        {
            double t;
            if (double.TryParse(text, out t))
            {
                return true;
            }
            else
            {
                return false;
            }
 
        }
 
        public static bool provInt(string text)
        {
            int t;
            if (int.TryParse(text, out t))
            {
                return true;
            }
            else
            {
                return false;
            }
 
        }
 
        public void umnozh()
        {
           
            
                mtr = new double[n1, n1];
 
                for (int i = 0; i < n1; i++)
                {
                    for (int j = 0; j < n1; j++)
                    {
                        for (int k = 0; k < n1; k++)
                        {
                            mtr[i, j] += mtr1[i, k] * mtr2[k, j];
                        }
                    }
                }
                for (int i = 0; i < n1; i++)
                {
                    for (int j = 0; j < n1; j++) mtr1[i, j] = mtr[i, j];
                }
 
 
                       
 
 
        }
 
        public void print()
        {
            Console.WriteLine("Ответ:");
            for (int i = 0; i < n1; i++)
            {
                for (int j = 0; j < n1; j++)
                {
                    Console.Write("{0:F2} ", mtr[i, j]);
                }
                Console.WriteLine("");
            }
            Console.WriteLine("");
 
           
 
        }
 
        public void stepen(int a)
        {
            int m;
 
            do
            {
                do
                {
                    Console.WriteLine("Введите степень: ");
                    StDigit = Convert.ToString(Console.ReadLine());
                    if (!provInt(StDigit)) Console.WriteLine("Ошибка ввода");
                } while (!provInt(StDigit));
                m = Convert.ToInt32(StDigit);
                if (m < 0) Console.WriteLine("Ошибка ввода");
 
            } while (m < 0);
 
 
            double[,] b = null;
            double[,] t = null;
            if (a == 1) { t = mtr1; }
            if (a == 2) { t = mtr2; }
 
 
            for (int z = 0; z < m - 1; z++)
            {
                b = new double[n1, n1];
                for (int i = 0; i < n1; i++)
                {
                    for (int j = 0; j < n1; j++)
                    {
                        for (int k = 0; k < n1; k++)
                        {
                            b[i, j] += t[i, k] * t[k, j];
                        }
                    }
                }
                mtr = b;
            }
 
 
 
        }
 
 
 
        public int GetSizeAndSumm(ref double dSumm)
        {
            for (int i = 0; i < N; i++)
                for (int j = 0; j < N; j++)
                    dSumm += mtr[i, j];
            return N;
        }
 
        public int dProizv(ref double dPr)
        {
 
 
            dPr = 1;
            for (int i = 0; i < N; i++)
            {
 
                dPr = dPr * mtr[i, i];
 
            }
            return N;
 
        }
 
 
        public int dProizvO(ref double dPrO)
        {
           int j = N-1;
            dPrO = 1;
            for (int i = 0; i < N; i++)
            {
                dPrO = dPrO * mtr[i, j];
                j--;
            }
 
            
            return N;
 
        }
 
        public void matrX()
        {
            Console.WriteLine("Матрица 1");
            for (int i = 0; i < n1; i++)
            {
                for (int j = 0; j < n1; j++)
                {
                    Console.Write("{0:F2} ", mtr1[i, j]);
                }
                Console.WriteLine("");
            }
            Console.WriteLine("Матрица 2");
            for (int i = 0; i < n2; i++)
            {
                for (int j = 0; j < n2; j++)
                {
                    Console.Write("{0:F2} ", mtr2[i, j]);
                }
                Console.WriteLine("");
            }
 
 
            Console.WriteLine("");
        }
 
 
    }
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

10   голосов , оценка 3.6 из 5
Похожие ответы