Организовать класс матрица - C#

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

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

1. Организовать класс квадратная матрица размерности произвольного размера. Методы: вывода матрицы в общепринятом виде, нахождения транспонированной матрицы и нахождения определителя матрицы, доступа по индексам к элементам матрицы. С выводом и нахождением транспонированной матрицы я справился а вот определитель и доступ по индексам не удается, как реализовать ? Вот то что я сделал
namespace Lab1
{
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
 
    namespace ConsoleApplication1
    {
        public class Matrix
        {
            private int width;
            private int heith;
            
            public Matrix()
            {
                width = 3;
                heith = 3;           
 
            }
 
            public int[,] mas = new int[100, 100];
            
            public Matrix(int width, int heith)
            {
                this.width = width;
                this.heith = heith;
                
            }
            
            public void Vvod() //Метод ввода матрицы
            {
                Random rand = new Random();
                for (int i = 0; i < width; i++)
                    for (int j = 0; j < heith; j++)
                    {
                        mas[i, j] = rand.Next(1, 1000);
                    }
            }
                      
            public void Vivod() //Метод вывода матрицы
            {
 
                for (int i = 0; i < width; i++)
                {
                    for (int j = 0; j < heith; j++)
                    {
                        //mas[i, j] = rand.Next(1, 1000);
                        Console.Write(mas[i, j] + "\t");
                    }
                    Console.WriteLine("\n");
                }
            }
 
            public void Transp() //Метод транспонирования матрицы
            {
                for (int j = 0; j < heith; j++)
                {
                    for (int i = 0; i < width; i++)
                    {
                        Console.Write(mas[i, j] + "\t");
                    }
                    Console.WriteLine("\n");
                }
 
            }
 
            public void Opr() //Метод нахождения определителя матрицы
            {
 
            }
 
            public int DLINA
            {       //установка свойства
                set { if (width != value) width = value; }
                get { return width; }
            }
            public int VISOTA
            {       //установка свойства
                set { if (heith != value) heith = value; }
                get { return heith; }
            }
 
            /*public static Matrix operator --(Matrix a)
            {
 
            }*/
 
        }
 
        class Program
        {
            static void Main()
            {
 
                Matrix a = new Matrix();
                Console.WriteLine("Начальные значения ");
                a.Vvod();
                a.Vivod();
                Console.WriteLine("-------------------------");
 
                Console.Write("Введите размерность:");
                int n = int.Parse(Console.ReadLine());
                int m = n;
 
                Matrix b = new Matrix();
                b.DLINA = n;
                b.VISOTA = m;
                b.Vvod();
                b.Vivod();
                Console.WriteLine("-------------------------");
                Console.WriteLine("Транспонированная матрица ");
                b.Transp();
 
                Console.ReadLine();
            }
        }
    }
 
}

Решение задачи: «Организовать класс матрица»

textual
Листинг программы
   class Program
    {
        public class Matrix
        {
            public float[,] matrix = null;
 
            public int CountColumn { get; private set; }
            public int CountRow { get; private set; }
 
            public Matrix(int x = 1, int y = 1)
            {
                matrix = new float[x, y];
 
                CountColumn = y;
                CountRow = x;
            }
 
            public float this[int x, int y]
            {
                get { return matrix[x, y]; }
                set { matrix[x, y] = value; }
            }
            public override string ToString()
            {
                StringBuilder ret = new StringBuilder();
                if (matrix == null) return ret.ToString();
 
                for (int i = 0; i < CountRow; i++)
                {
                    for (int t = 0; t < CountColumn; t++)
                    {
                        ret.Append(matrix[i, t]);
                        ret.Append("\t");
                    }
                    ret.Append("\n");
                }
                return ret.ToString();
            }
        }
            static void Main(string[] args)
        {
            Matrix m1 = new Matrix(2, 2);
            m1.matrix[0,0] = 1;
            m1.matrix[1,0] = 1;
            m1.matrix[0,1] = 1;
            m1.matrix[1,1] = 1;
            Console.WriteLine("{0}", m1);
            Console.ReadKey(true);
        }
    }

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


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

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

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