//Самые удаленные точки 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 Case2_2(ClassPoint.Point coordinate) { var ok = true; while (ok) { var sw = Print.Menu(0, part2Text_Type[0], part2Text_Type[1], part2Text_Type[2]); switch (sw) { case 1: CheckInt(coordinate); Console.WriteLine(endPhrase); Console.ReadLine(); break; case 2: CheckDouble(coordinate); Console.WriteLine(endPhrase); Console.ReadLine(); break; case 3: ok = false; break; } } }
//Функция меню для бинарных операций private static void Case2_3(ClassPoint.Point coordinate) { var ok = true; while (ok) { var sw = Print.Menu(0, part2Text_Bin[0], part2Text_Bin[1], part2Text_Bin[2]); switch (sw) { case 1: CheckPlusPoint(coordinate); Console.WriteLine(endPhrase); Console.ReadLine(); break; case 2: var rnd = new Random(); var digit = rnd.Next(-10, 10); CheckPlusIntRight(digit, ref coordinate); CheckPlusIntLeft(-digit, ref coordinate); Console.WriteLine(endPhrase); Console.ReadLine(); break; case 3: ok = false; break; } } }
//Функция меню для унарных операций private static void Case2_1(ClassPoint.Point coordinate) { var ok = true; while (ok) { var sw = Print.Menu(0, part2Text_Uno[0], part2Text_Uno[1], part2Text_Uno[2]); switch (sw) { case 1: CheckPlusPlus(coordinate); Console.WriteLine(endPhrase); Console.ReadLine(); break; case 2: CheckMinusMinus(coordinate); Console.WriteLine(endPhrase); Console.ReadLine(); break; case 3: ok = false; break; } } }
//Проверка работы парегрузки + целое число private static void CheckPlusIntLeft(int digit, ref ClassPoint.Point coordinate) { Console.WriteLine("Используем {0} + Point: ", digit); Console.WriteLine("Должно получится: ({0};{1})", coordinate.CoordinateX + digit, coordinate.CoordinateY); coordinate = digit + coordinate; Console.Write("Что получилось: "); coordinate.Show(); Console.WriteLine("\n"); }
//Проверка перегрузки double private static void CheckDouble(ClassPoint.Point coordinate) { Console.WriteLine("Используем double {что-то}: "); Console.WriteLine("Должно получится: {0}", coordinate.CoordinateY * 0.1 / 0.1); double y = coordinate; Console.WriteLine("Что получилось: {0}", y); Console.WriteLine("\n"); }
//Проверка перегрузки (int) private static void CheckInt(ClassPoint.Point coordinate) { Console.WriteLine("Используем (int){что-то}: "); Console.WriteLine("Должно получится: {0}", (int)coordinate.CoordinateX); var x = (int)coordinate; Console.WriteLine("Что получилось: {0}", x); Console.WriteLine("\n"); }
//Проверка работы перегрузки + Point p private static void CheckPlusPoint(ClassPoint.Point coordinate1) { Console.Write("Координаты 1-ой точки: "); coordinate1.Show(); Console.WriteLine("\n"); var coordinate2 = ReadCoordinate(2); Console.WriteLine("Используем \"Point + Point\": "); Console.WriteLine("Должно получится: {0}", coordinate1.Distance(coordinate2)); var distance = coordinate1 + coordinate2; Console.WriteLine("Что получилось: {0}", distance); Console.WriteLine("\n"); }
//Проверка перегрузки -- private static void CheckMinusMinus(ClassPoint.Point coordinate) { Console.WriteLine("Используем --{что-то}: "); Console.WriteLine("Должно получится: ({0};{1})", coordinate.CoordinateX - 1, coordinate.CoordinateY); --coordinate; Console.Write("Что получилось: "); coordinate.Show(); Console.WriteLine("\n"); Console.WriteLine("Используем {что-то}--: "); Console.WriteLine("Должно получится: ({0};{1})", coordinate.CoordinateX - 1, coordinate.CoordinateY); coordinate--; Console.Write("Что получилось: "); coordinate.Show(); Console.WriteLine("\n"); }
//Проверка перегрузки ++ private static void CheckPlusPlus(ClassPoint.Point coordinate) { Console.WriteLine("Используем ++{что-то}: "); Console.WriteLine("Должно получится: ({0};{1})", coordinate.CoordinateX + 1, coordinate.CoordinateY); ++coordinate; Console.Write("Что получилось: "); coordinate.Show(); Console.WriteLine("\n"); Console.WriteLine("Используем {что-то}++: "); Console.WriteLine("Должно получится: ({0};{1})", coordinate.CoordinateX + 1, coordinate.CoordinateY); coordinate++; Console.Write("Что получилось: "); coordinate.Show(); Console.WriteLine("\n"); }
//Функция меню для части 2 private static void Case2() { var k = 4; var ok = true; ClassPoint.Point coordinate = null; while (ok) { var sw = Print.Menu(k, part2Text[0], part2Text[1], part2Text[2], part2Text[3], part2Text[4], part2Text[5]); switch (sw) { case 1: coordinate = ReadCoordinate(1); k = 0; Console.WriteLine(endPhrase); Console.ReadLine(); break; case 2: Case2_1(coordinate); break; case 3: Case2_2(coordinate); break; case 4: Case2_3(coordinate); break; case 5: Console.Write("Координаты точки: "); coordinate.Show(); Console.WriteLine(); Console.WriteLine(endPhrase); Console.ReadLine(); break; case 6: ok = false; break; } } }
//Проверка индексатора(ввод) 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(""); }