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); }
/* Класс, содержащий функции считывания списка матриц из файла * и записи матриц в файл. Перехват исключений при неверной работе * с файлами, выходе за пределы массива, деления на 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); }
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); } }
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(); }