Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.11.2021, 19:13   #1
Radon33
Пользователь
 
Регистрация: 22.10.2021
Сообщений: 34
По умолчанию Напишите алгоритм выполнения данной задачи

Составить описание класса прямоугольников со сторонами, параллельными осям координат. Предусмотреть возможность перемещения прямоугольников на плоскости, изменение размеров, построение наименьшего прямоугольника, содержащего два заданных прямоугольника, и прямоугольника, являющегося общей частью (пересечением) двух прямоугольников.
Написать программу, демонстрирующую все разработанные элементы класса.
Radon33 вне форума Ответить с цитированием
Старый 13.11.2021, 08:58   #2
NeLirik
Пользователь
 
Регистрация: 09.11.2021
Сообщений: 11
По умолчанию

Radon33,

Вы писали "напишите алгоритм выполнения данной задачи "
Так нужно написать программу или описать алгоритм???
В задании стоит написать программу, демонстрирующую все разработанные элементы класса.

Вообще графику нужно выводить?
Это же почти курсовая
NeLirik вне форума Ответить с цитированием
Старый 14.11.2021, 13:41   #3
Radon33
Пользователь
 
Регистрация: 22.10.2021
Сообщений: 34
По умолчанию

NeLirik, Только алгоритм, без кода.
Цитата:
Сообщение от NeLirik Посмотреть сообщение
Это же почти курсовая
У нас это всего лишь задание на пару
Radon33 вне форума Ответить с цитированием
Старый 16.11.2021, 19:09   #4
Radon33
Пользователь
 
Регистрация: 22.10.2021
Сообщений: 34
По умолчанию Правильно ли написан код?

Код:
class Rectangle
    {
        public Rectangle(int x, int y, int shirina, int dlina)
        {
            X = x;
            Y = y;
            Width = shirina;
            Height = dlina;
        }
        public int X
        {
            get; set;
        }
        public int Y
        {
            get; set;
        }
        public int Width
        {
            get; set;
        }
        public int Height
        {
            get; set;
        }
        public void Offset(int x, int y)
        {
            X += x;
            Y += y;
        }
        public static Rectangle Peresechenie(Rectangle a, Rectangle b)
        {
            int maxStartX = Math.Max(a.X, b.X);
            int minEndX = Math.Min(a.X + a.Width, b.X + b.Width);
            int MaxStartY = Math.Max(a.Y, b.Y);
            int minEndY = Math.Min(a.Y + a.Height, b.Y + b.Height);
            if (minEndX >= maxStartX && minEndY >= MaxStartY)
            {
                return new Rectangle(maxStartX, MaxStartY, minEndX - maxStartX, minEndY - MaxStartY);
            }
            return null;
        }
        public static Rectangle Obedinenie(Rectangle a, Rectangle b)
        {
            int minStartX = Math.Min(a.X, b.X);
            int maxEndX = Math.Max(a.X + a.Width, b.X + b.Width);
            int minStartY = Math.Min(a.Y, b.Y);
            int MaxEndY = Math.Max(a.Y + a.Height, b.Y + b.Height);
            return new Rectangle(minStartX, minStartY, maxEndX - minStartX, MaxEndY - minStartY);
        }
        public override string ToString()
        {
            return String.Format("X:{0} Y:{1} W:{2} H:{3}", X, Y, Width, Height);
        }
    }
        class Program
        {
            static void Main(string[] args)
            {
                Rectangle r1 = new Rectangle(0, 0, 10, 10);
                Console.Write("Исходный прямоугольник: " + r1);
                Console.WriteLine();

                Console.Write("Смещённый прямоугольник: ");
                r1.Offset(5, 0);
                Console.WriteLine(r1);

                Rectangle r2 = new Rectangle(2, 2, 20, 20);
                Console.WriteLine("Пересечение прямоугольников: " + Rectangle.Peresechenie(r1, r2));
                Console.WriteLine("Объединение прямоугольников: " + Rectangle.Obedinenie(r1, r2));
            }
        }
Составить описание класса прямоугольников со сторонами, параллельными осям координат. Предусмотреть возможность перемещения прямоугольников на плоскости, изменение размеров, построение наименьшего прямоугольника, содержащего два заданных прямоугольника, и прямоугольника, являющегося общей частью (пересечением) двух прямоугольников.
Написать программу, демонстрирующую все разработанные элементы класса.

Последний раз редактировалось BDA; 16.11.2021 в 19:22.
Radon33 вне форума Ответить с цитированием
Старый 16.11.2021, 21:30   #5
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,291
По умолчанию

Не нужно создавать новые темы с одной и той же задачей. C# не знаю, результат работы программы похож на правду. Еще бы вывел прямоугольник r2 в консоль, чтобы не смотреть на числа в коде, а только по выводу программы понимать, какие прямоугольники объединяются и пересекаются.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Нарисуйте блок-схему алгоритма выполнения данной задачи на Паскале. vanilla55 Паскаль, Turbo Pascal, PascalABC.NET 1 18.11.2016 23:25
БД для учёта проживающих в квартирах. Какие проблемы Вы видите при решении данной задачи? Предложите алгоритм решения. annn11 Помощь студентам 1 10.06.2015 08:46
не понимаю, как составить алгоритм для данной задачи inflamedparadox Помощь студентам 6 25.11.2013 22:18
Нужно решение данной задачи kirik3498 Общие вопросы C/C++ 1 16.03.2012 11:23
Какой самый простой алгоритм можно применить для решение данной задачи? ming_ruport Помощь студентам 3 10.10.2011 15:00