//Самые удаленные точки public static ClassPoint.PointArray DeterminationRemoteCoordinate(ClassPoint.PointArray pointArray) { var origin = new ClassPoint.Point(0, 0); var array = new ClassPoint.PointArray(); for (var i = 0; i < pointArray.GetSize; i++) { if (pointArray[i] > origin) { array.Resize(1); array[array.GetSize - 1] = pointArray[i]; pointArray[i].Distance(origin); } else { if (pointArray[i] == origin) { array.Resize(array.GetSize + 1); array[array.GetSize - 1] = pointArray[i]; } } } return(array); }
//Функция меню для создания массива private static void Case3_1(ref ClassPoint.PointArray pointArray, ref int k) { var ok = true; while (ok) { var sw = Print.Menu(0, part3Text_Create[0], part3Text_Create[1], part3Text_Create[2]); switch (sw) { case 1: k = 0; KeyboardArray(ref pointArray); ok = false; Console.WriteLine(endPhrase); Console.ReadLine(); break; case 2: k = 0; RandomArray(ref pointArray); ok = false; Console.WriteLine(endPhrase); Console.ReadLine(); break; case 3: ok = false; break; } } }
//Создание массива вручную private static void KeyboardArray(ref ClassPoint.PointArray pointArray) { Console.Write("Введите размер массива: "); var size = ReadLib.ReadLib.ReadVGran(0); pointArray = new ClassPoint.PointArray(size); }
//Создание массива ДСЧ private static void RandomArray(ref ClassPoint.PointArray pointArray) { Console.Write("Введите размер массива: "); var size = ReadLib.ReadLib.ReadVGran(0); Console.Write("От какого элемента заполнять: "); var min = ReadLib.ReadLib.ReadInt(); Console.Write("До какого элемента заполнять: "); var max = ReadLib.ReadLib.ReadVGran(min); pointArray = new ClassPoint.PointArray(size, min, max); }
//Проверка индексатора(вывод) private static void Output(ClassPoint.PointArray pointArray) { Console.WriteLine("Проверка вывода!"); Console.WriteLine("Массив размера: {0}", pointArray.GetSize); Console.WriteLine("Проверка индексатора: "); Console.WriteLine("pointArray[-1]: "); pointArray[-1].Show(); Console.WriteLine("\npointArray[0]: "); pointArray[0].Show(); if (pointArray.GetSize > 1) { Console.WriteLine("\npointArray[{0}]: ", pointArray.GetSize - 1); pointArray[pointArray.GetSize - 1].Show(); } Console.WriteLine("\npointArray[{0}]: ", pointArray.GetSize); pointArray[pointArray.GetSize].Show(); Console.WriteLine(""); }
//Проверка индексатора(ввод) private static void Input(ClassPoint.PointArray pointArray) { Console.WriteLine("Проверка ввода!"); Console.WriteLine("Массив размера: {0}", pointArray.GetSize); Console.WriteLine("Проверка индексатора: "); Console.WriteLine("pointArray[-1] = (0,0): "); pointArray[-1] = new ClassPoint.Point(0, 0); Console.WriteLine("pointArray[0] = (1,1):"); pointArray[0] = new ClassPoint.Point(1, 1); pointArray[0].Show(); if (pointArray.GetSize > 1) { Console.WriteLine("\npointArray[{0}] = (2,2)", pointArray.GetSize - 1); pointArray[pointArray.GetSize - 1] = new ClassPoint.Point(2, 2); pointArray[pointArray.GetSize - 1].Show(); } Console.WriteLine("\npointArray[{0}] = (-1,-1)", pointArray.GetSize); pointArray[pointArray.GetSize] = new ClassPoint.Point(-1, -1); Console.WriteLine(""); }
//Функция меню для части 3 private static void Case3() { var ok = true; var pointArray = new ClassPoint.PointArray(); var k = 3; while (ok) { var sw = Print.Menu(k, part3Text[0], part3Text[1], part3Text[2], part3Text[3], part3Text[4]); switch (sw) { case 1: Case3_1(ref pointArray, ref k); break; case 2: var array = DeterminationRemoteCoordinate(pointArray); if (array.GetSize == 1) { Console.WriteLine("Наиболее удаленная точка: "); array.Show(); } else { Console.WriteLine("Наиболее удаленные точки: "); array.Show(); } Console.WriteLine(endPhrase); Console.ReadLine(); break; case 3: Output(pointArray); Console.WriteLine( "Для проверки ввода значений(индексатор ввода) выполните следующие действия: "); Console.WriteLine(endPhrase); Console.ReadLine(); Console.Clear(); Input(pointArray); Console.WriteLine(endPhrase); Console.ReadLine(); break; case 4: Console.WriteLine("Множество точек: "); pointArray.Show(); Console.WriteLine(endPhrase); Console.ReadLine(); break; case 5: ok = false; break; } } }