// тут перегрузка оператора для создания большого пр-ка из двух заданных пр-гов public static Prgnk operator+(Prgnk p1, Prgnk p2) { Console.WriteLine("Леплю большой прямоугольник из двух заданных..."); int x = p1.X + p2.X; int y = p1.Y + p2.Y; int s = p1.S + p2.S; int v = p1.V + p2.V; Prgnk res = new Prgnk(x, y, v, s); Console.WriteLine("Готово! " + res); return(null); }
// объединение пр-ков public static void Action(Prgnk a, Prgnk b) { Console.WriteLine("Объединяю прямоугольники..."); int Ax = Math.Min(a.X, b.X); int Ay = Math.Min(a.Y, b.Y); int Bx = Math.Min(a.X1, b.X1); int By = Math.Max(a.Y1, b.Y1); int Cx = Math.Max(a.X2, b.X2); int Cy = Math.Max(a.Y2, b.Y2); int Dx = Math.Max(a.X3, b.X3); int Dy = Math.Min(a.Y3, b.Y3); int Visota = By - Ay; int Shirina = Cx - Bx; Console.WriteLine("Минимальный прямоугольник, который содержит в себе два заданных пр-ника: A({0}, {1}), B({2}, {3}), C({4}, {5}), D({6}, {7}), Высота = {8}, Ширина = {9};", Ax, Ay, Bx, By, Cx, Cy, Dx, Dy, Visota, Shirina); }
static void Main(string[] args) { Prgnk start = new Prgnk("Hello Freundo."); // первый пр-ник Console.WriteLine("Введите точку А (это будет нижняя левая точка, все остальные точки строятся по часовой стрелке), а также высоту и ширину прямоугольника"); Console.Write("x= "); int x1 = 0; try { x1 = Convert.ToInt32(Console.ReadLine()); } catch { Console.WriteLine("Внимание! Нужно вводить ЦЕЛЫЕ числа! Впредь будьте внимательнее. По умолчанию присвоено значение 0"); } int y1 = 0; Console.Write("y= "); try { y1 = Convert.ToInt32(Console.ReadLine()); } catch { Console.WriteLine("Внимание! Нужно вводить ЦЕЛЫЕ числа! Впредь будьте внимательнее. По умолчанию присвоено значение 0"); } int s1 = 0; Console.Write("ширина= "); try { s1 = Convert.ToInt32(Console.ReadLine()); } catch { Console.WriteLine("Внимание! Нужно вводить ЦЕЛЫЕ числа! Впредь будьте внимательнее. По умолчанию присвоено значение 0"); } Console.Write("высота= "); int v1 = 0; try { v1 = Convert.ToInt32(Console.ReadLine()); } catch { Console.WriteLine("Внимание! Нужно вводить ЦЕЛЫЕ числа! Впредь будьте внимательнее. По умолчанию присвоено значение 0"); } Prgnk p1 = new Prgnk(x1, y1, s1, v1); Console.WriteLine("Предварительный прямоугольник: " + p1); // здесь запрос и вызов метода на перемещение Console.WriteLine("Хотите задать перемещение? Если нет, просто введите нули"); Console.Write("перемещение по оси Ox= "); int a = 0; try { a = Convert.ToInt32(Console.ReadLine()); } catch { Console.WriteLine("Внимание! Нужно вводить ЦЕЛЫЕ числа! Впредь будьте внимательнее. По умолчанию присвоено значение 0"); } Console.Write("перемещение по оси Oy= "); int b = 0; try { b = Convert.ToInt32(Console.ReadLine()); } catch { Console.WriteLine("Внимание! Нужно вводить ЦЕЛЫЕ числа! Впредь будьте внимательнее. По умолчанию присвоено значение 0"); } p1.Action(a, b); Console.WriteLine("Конечный прямоугольник: " + p1); Console.WriteLine(); // создаю второй пр-ник Console.WriteLine("Строим второй прямоугольник..."); Console.Write("x= "); int x2 = 0; try { x2 = Convert.ToInt32(Console.ReadLine()); } catch { Console.WriteLine("Внимание! Нужно вводить ЦЕЛЫЕ числа! Впредь будьте внимательнее. По умолчанию присвоено значение 0"); } Console.Write("y= "); int y2 = 0; try { y2 = Convert.ToInt32(Console.ReadLine()); } catch { Console.WriteLine("Внимание! Нужно вводить ЦЕЛЫЕ числа! Впредь будьте внимательнее. По умолчанию присвоено значение 0"); } Console.Write("ширина= "); int s2 = 0; try { s2 = Convert.ToInt32(Console.ReadLine()); } catch { Console.WriteLine("Внимание! Нужно вводить ЦЕЛЫЕ числа! Впредь будьте внимательнее. По умолчанию присвоено значение 0"); } Console.Write("высота= "); int v2 = 0; try { v2 = Convert.ToInt32(Console.ReadLine()); } catch { Console.WriteLine("Внимание! Нужно вводить ЦЕЛЫЕ числа! Впредь будьте внимательнее. По умолчанию присвоено значение 0"); } Prgnk p2 = new Prgnk(x2, y2, s2, v2); Console.WriteLine("Предварительный прямоугольник #2: " + p2); // опять запрос на перемещение Console.WriteLine("Сместить прямоугольник? Если нет, введите нули"); Console.Write("перемещение по оси Ox= "); int a1 = 0; try { a1 = Convert.ToInt32(Console.ReadLine()); } catch { Console.WriteLine("Внимание! Нужно вводить ЦЕЛЫЕ числа! Впредь будьте внимательнее. По умолчанию присвоено значение 0"); } Console.Write("перемещение по оси Oy= "); int b1 = 0; try { b1 = Convert.ToInt32(Console.ReadLine()); } catch { Console.WriteLine("Внимание! Нужно вводить ЦЕЛЫЕ числа! Впредь будьте внимательнее. По умолчанию присвоено значение 0"); } p2.Action(a1, b1); Console.WriteLine("Конечный прямоугольник" + p2); Console.WriteLine(); // вывод объединенного пр-ника Prgnk.Action(p1, p2); Console.WriteLine(); Prgnk p3 = new Prgnk(); // mega пр-ник p3 = p1 + p2; Console.WriteLine(p3); Console.ReadKey(); }