Ejemplo n.º 1
0
        public static ListOfMatrix ListPut()
        {
            Console.Write("Введите количество матриц в списке: ");
            int n = 0;

            try
            {
                n = int.Parse(Console.ReadLine());
            }
            catch
            {
                throw new FormatException("Неверно введена величина!");
            }
            Console.WriteLine("Введите четыре цифры (элементы квадратной матрицы)");
            ListOfMatrix list = new ListOfMatrix();

            for (int i = 0; i < n; i++)
            {
                Console.Write("Новая матрица: ");
                string mat    = Console.ReadLine();
                Matrix matrix = new Matrix();
                if (!Matrix.TryParseMatrix(mat, matrix))
                {
                    throw new FormatException("Неверно введена матрица!");
                }
                list.AddToList(matrix);
                Console.WriteLine();
            }
            return(list);
        }
Ejemplo n.º 2
0
        /* Класс, содержащий функции считывания списка матриц из файла
         * и записи матриц в файл. Перехват исключений при неверной работе
         * с файлами, выходе за пределы массива, деления на 0 (при нахождении обратной)
         */
        public static ListOfMatrix FileRead()
        {
            string str = @"C:\VIS\test.txt";

            string[] readstr;
            if (File.Exists(str))
            {
                readstr = File.ReadAllLines(str);
            }
            else
            {
                throw new FileNotFoundException("Файл не найден");
            }
            if (readstr.Length == 0)
            {
                throw new ArgumentNullException("Файл пустой! lul");
            }
            ListOfMatrix list = new ListOfMatrix();
            Matrix       matrix;

            for (int i = 0; i < readstr.Length; i++)
            {
                string[] ptr = readstr[i].Split(' ');
                if (ptr.Length != 4)
                {
                    throw new ArgumentNullException("Неверно введены данные!!!");
                }
                matrix = new Matrix(double.Parse(ptr[0]), double.Parse(ptr[1]), double.Parse(ptr[2]), double.Parse(ptr[3]));
                list.AddToList(matrix);
            }
            return(list);
        }
Ejemplo n.º 3
0
        public static void FileWrite(ListOfMatrix list)
        {
            string str = @"C:\VIS\out.txt";

            string[] writestr = list.ToStringArray();
            if (!File.Exists(str))
            {
                try
                {
                    File.Create(str).Close();
                }
                catch
                {
                    throw new FileNotFoundException("Ошибка в пути нахождения файла!!!");
                }
                File.WriteAllLines(str, writestr);
            }
        }
Ejemplo n.º 4
0
        static void Main()
        {
            Console.WriteLine("Программа, написанная на практике 1 курса (лето 2020 год) \n" + "Начало работы");
            ListOfMatrix list = new ListOfMatrix();
            int          k    = 0;

            while (k != 7)
            {
                k = Menu();
                switch (k)
                {
                case 1:
                    list = ListPut();
                    break;

                case 2:
                    list = MatrixInOut.FileRead();
                    break;

                case 3:
                    MatrixInOut.FileWrite(list);
                    break;

                case 4:
                    if (list == new ListOfMatrix())
                    {
                        Console.WriteLine("Список еще не создан!");
                        break;
                    }
                    Console.WriteLine(" ");
                    Console.WriteLine("\nКоличество элементов списка: " + list.Count());
                    Matrix maximal = list.MaxOfList();
                    Console.WriteLine("\nМаксимальный элемент списка: \n");
                    Console.WriteLine(maximal.ToString());
                    Matrix minimal = list.MinOfList();
                    Console.WriteLine("\nМинимальный элемент спика: \n");
                    Console.WriteLine(minimal.ToString());
                    Matrix first = list.FirstElementOfList();
                    Matrix last  = list.LastElementOfList();
                    Console.WriteLine("\nПервый элемент списка: \n");
                    Console.WriteLine(first.ToString());
                    Console.WriteLine("\nПоследний элемент списка: \n");
                    Console.WriteLine(minimal.ToString());
                    Console.WriteLine("\nСодержимое списка в строку: \n");
                    string[] str = list.ToStringArray();
                    for (int i = 0; i < str.Length; i++)
                    {
                        Console.WriteLine(str[i]);
                    }

                    Console.WriteLine("\nСодержимое списка в виде матриц:");
                    for (int i = 0; i < list.Count(); i++)
                    {
                        Console.WriteLine(list[i].ToString());
                        Console.WriteLine("");
                    }

                    Console.WriteLine("Определители матриц, содержащихся в списке: ");
                    for (int i = 0; i < list.Count(); i++)
                    {
                        Console.Write(list[i].Determinant + " ");
                    }
                    Console.WriteLine();
                    break;

                case 5:
                    list.BubbleSort();
                    string[] ptr = list.ToStringArray();
                    Console.WriteLine("\nОтсортированный список (в виде строки):\n");
                    for (int i = 0; i < ptr.Length; i++)
                    {
                        Console.WriteLine(ptr[i]);
                    }
                    Console.WriteLine("\nОтсортированный список в виде матриц:\n");
                    for (int i = 0; i < list.Count(); i++)
                    {
                        Console.WriteLine(list[i].ToString() + "\n");
                    }
                    Console.WriteLine("");
                    break;

                case 6:
                    double det = 0;
                    Console.WriteLine("Введите определитель:");
                    try
                    {
                        det = double.Parse(Console.ReadLine());
                    }
                    catch
                    {
                        throw new FormatException("Неверно введен определитель!!!");
                    }
                    string[] ListInStr = list.ToStringArray();
                    for (int i = 0; i < list.Count(); i++)
                    {
                        Matrix mtr = new Matrix();
                        if (!Matrix.TryParseMatrix(ListInStr[i], mtr))
                        {
                            throw new FormatException("Ошибка ввода!");
                        }
                        if (mtr.Determinant < det)
                        {
                            Console.WriteLine(ListInStr[i]);
                        }
                    }
                    break;

                default:
                    break;
                }
            }
            Console.WriteLine("Конец работы программы!");
            Console.ReadKey();
        }