Описать класс реализующий тип данных «вещественная матрица» - C#

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

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

Описать класс, реализующий тип данных «вещественная матрица» и работу с ними. Класс должен реализовывать следующие операции над матрицами: методы, реализующие проверку типа матрицы (квадратная, диагональная, нулевая, единичная, симметричная, верхняя треугольная, нижняя треугольная); операции сравнения на равенство/неравенство; доступ к элементу по индексам. Написать программу, демонстрирующую все разработанные элементы класса.

Решение задачи: «Описать класс реализующий тип данных «вещественная матрица»»

textual
Листинг программы
  1. using System;
  2.  
  3. namespace ConsoleApplication4
  4. {
  5.     class Program
  6.     {
  7.         static void Main(string[] args)
  8.         {
  9.             Console.WriteLine("Введите количество строк матрицы");
  10.             int n = int.Parse(Console.ReadLine());
  11.             Console.WriteLine("Введите количество столбцов матрицы");
  12.             int m = int.Parse(Console.ReadLine());
  13.             Console.WriteLine("Заполните матрицу");
  14.             DoubleMatrix matrix = new DoubleMatrix(n,m);
  15.             for (int i = 0; i < matrix.rows; i++)
  16.             {
  17.                 for (int j = 0; j < matrix.cols; j++)
  18.                 {
  19.                     Console.Write("Введите элемент [{0},{1}] : ",i,j);
  20.                     matrix[i, j] = double.Parse(Console.ReadLine());
  21.                 }              
  22.             }
  23.             Console.WriteLine("Матрица :");
  24.             for (int i = 0; i < matrix.rows; i++)
  25.             {
  26.                 for (int j = 0; j < matrix.cols; j++)
  27.                 {
  28.                     Console.Write(matrix[i, j]);
  29.                 }
  30.                 Console.WriteLine();
  31.             }
  32.  
  33.                     matrix.Method(); //нулевая или не нулевая
  34.  
  35.             if (matrix.Method1() == false) // проверка на семмитричность
  36.             {
  37.                 Console.WriteLine("Матрица не симметричная");
  38.             }
  39.             else Console.WriteLine("Матрица симметричная");
  40.  
  41.             matrix.Method2();  // Проверка квадратная
  42.  
  43.             if (matrix.Method3())  // проверка на единичность
  44.             {
  45.                 Console.WriteLine("Матрица единичная");
  46.             }
  47.             else Console.WriteLine("Матрица не единичная");
  48.  
  49.             if (matrix.Method4() == true)   //Проверка на диагональность
  50.             {
  51.                 Console.WriteLine("Матрица диагональная");
  52.             }
  53.             else Console.WriteLine("Матрица не диагональная");
  54.  
  55.             if (matrix.Method5())
  56.             {
  57.                 Console.WriteLine("Матрица верхняя треугольная ");
  58.             }
  59.             else Console.WriteLine("Матрица не верхняя треугольная ");
  60.  
  61.             if (matrix.Method6())
  62.             {
  63.                 Console.WriteLine("Матрица нижняя треугольная ");
  64.             }
  65.             else Console.WriteLine("Матрица не нижняя треугольная ");
  66.             Console.WriteLine(matrix[0, 0]); //доступ к элементу по индексам
  67.             Console.ReadKey();
  68.         }
  69.     }
  70.     class DoubleMatrix
  71.     {
  72.         private double[,] matrix;
  73.         public int rows, cols;
  74.         private int Length;
  75.         int r = 0;
  76.         bool a = true, t = false;
  77.  
  78.         public DoubleMatrix(int rows, int cols)
  79.         {
  80.             this.rows = rows;
  81.             this.cols = cols;
  82.             matrix = new double[this.rows, this.cols];
  83.             Length = rows * cols;
  84.         }
  85.         public double this[int index1, int index2]
  86.         {
  87.             get { return matrix[index1, index2]; }
  88.             set { matrix[index1, index2] = value; }
  89.         }
  90.         public void Method() //нулевая или не нулевая
  91.         {
  92.             for (int i = 0; i < rows; i++)
  93.             {
  94.                 for (int j = 0; j < cols; j++)
  95.                 {
  96.                     if (matrix[i, j] == 0)
  97.                     { r = r + 1; }
  98.                 }
  99.             }
  100.             if (r == cols * rows)
  101.             { Console.WriteLine("Матрица нулевая"); }
  102.             else { Console.WriteLine("Матрица не нулевая"); }
  103.         }
  104.         public bool Method1() // проверка на семмитричность
  105.         {
  106.             if (cols == rows)
  107.             {
  108.                 for (int i = 0; i < matrix.GetLength(0); ++i)
  109.                 {
  110.                     for (int j = 0; j < matrix.GetLength(1); ++j)
  111.                         if (matrix[i, j] != matrix[j, i])
  112.                         {
  113.                             a = false;
  114.                             break;
  115.                         }
  116.                     if (!a) break;
  117.                 }
  118.                 return a;
  119.             }
  120.             else return false;
  121.         }
  122.  
  123.         public void Method2() // Проверка квадратная
  124.         {
  125.             if (rows == cols)
  126.             {
  127.                 Console.WriteLine("Матрица квадратная");
  128.             }
  129.             else Console.WriteLine("Матрица не квадратная");
  130.         }
  131.         public bool Method3() // проверка на единичность
  132.         {
  133.             if (rows == cols)
  134.             {
  135.                 for (int i = 0; i < rows; i++)
  136.                 {
  137.                     for (int j = 0; j < cols; j++)
  138.                     {
  139.                         if (i == j && matrix[i, j] != 1)
  140.                         {
  141.                             return false;
  142.                         }
  143.                         else if (i != j && matrix[i, j] != 0)
  144.                         { return false; }
  145.                     }
  146.                 }
  147.                 return true;
  148.             }
  149.             return false;
  150.         }
  151.         public bool Method4() //Проверка на диагональность
  152.         {
  153.             if (rows == cols)
  154.             {
  155.                 for (int i = 0; i < rows; i++)
  156.                 {
  157.                     for (int j = 0; j < cols; j++)
  158.                     {
  159.                         if (i != j)
  160.                         {
  161.                             if (matrix[i, j] == 0)
  162.                             {
  163.                                 t = true;
  164.                             }
  165.                             else t = false;
  166.                             break;
  167.                         }
  168.                     }
  169.                 }
  170.             }
  171.             return t;
  172.         }
  173.  
  174.         public bool Method5()
  175.         {
  176.             if (rows == cols)
  177.             {
  178.                 for (int i = 0; i < rows; i++)
  179.                 {
  180.                     for (int j = 0; j < cols; j++)
  181.                     {
  182.                         if (matrix[i, j] != 0 && i > j)
  183.                         {
  184.                             return false;
  185.                         }
  186.                     }
  187.                 }
  188.                 return true;
  189.             }
  190.             return false;
  191.         }
  192.         public bool Method6()
  193.         {
  194.             if (rows == cols)
  195.             {
  196.                 for (int i = 0; i < rows; i++)
  197.                 {
  198.                     for (int j = 0; j < cols; j++)
  199.                     {
  200.                         if (matrix[i, j] != 0 && i < j)
  201.                         {
  202.                             return false;
  203.                         }
  204.                     }
  205.                 }
  206.                 return true;
  207.             }
  208.             return false;
  209.         }
  210.     }
  211. }

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


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

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

6   голосов , оценка 4 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы