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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 22.11.2021, 21:23   #1
Radon33
Пользователь
 
Регистрация: 22.10.2021
Сообщений: 34
Восклицание Помогите, как добавить перегрузку (+) и обработку исключительных ситуаций?

Код:
class Rectangle
{
public Rectangle(int x, int y, int shirina, int dlina)
{
this.X = x;
this.Y = y;
this.Width = shirina;
this.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)
{

Console.WriteLine("Первый прямоугольник");
Console.Write("Введите Х: ");
int x = Convert.ToInt32(Console.ReadLine()) ;
Console.Write("Введите У: ");
int y = Convert.ToInt32(Console.ReadLine()) ;
Console.Write("Введите ширину первого прямоугольника: ");
int shirina = Convert.ToInt32(Console.ReadLine()) ;
Console.Write("Введите высоту первого прямоугольника: ");
int visota = Convert.ToInt32(Console.ReadLine()) ;
Rectangle r1 = new Rectangle(x, y, shirina, visota);
r1.Offset(5, 0); // смещение

Console.WriteLine("Второй прямоугольник");
Console.Write("Введите Х2: ");
int x2 = Convert.ToInt32(Console.ReadLine()) ;
Console.Write("Введите У2: ");
int y2 = Convert.ToInt32(Console.ReadLine()) ;
Console.Write("Введите ширину второго прямоугольника: ");
int shirina2 = Convert.ToInt32(Console.ReadLine()) ;
Console.Write("Введите высоту второго прямоугольника: ");
int visota2 = Convert.ToInt32(Console.ReadLine()) ;
Rectangle r2 = new Rectangle(x2, y2, shirina2, visota2);

Console.Write("Пересечение прямоугольников: " + Rectangle.Peresechenie(r1, r2));
Console.Write("\nОбъединение прямоугольников: " + Rectangle.Obedinenie(r1, r2));

Console.ReadKey();
}
}
Radon33 вне форума Ответить с цитированием
Старый 23.11.2021, 18:29   #2
Radon33
Пользователь
 
Регистрация: 22.10.2021
Сообщений: 34
По умолчанию

Код:
public int c;
        public int z;
        private static Rectangle t;
        public static Rectangle operator +(Rectangle a, Rectangle b) // перегрузка +
        {
            Rectangle.t = new Rectangle(1, 1);
            t.c = a.c * b.z + a.z * b.c;
            t.z = a.z * b.z;
            Rectangle.SetFormat(t);
            return t;
        }
        private static void SetFormat(Rectangle t)
        {
            throw new NotImplementedException();
        }
Считается ли это за перегрузку +?
Radon33 вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Обработка исключительных ситуаций С++ Multiman Помощь студентам 2 06.04.2012 19:39
Обработка исключительных ситуаций Anubys Общие вопросы C/C++ 2 12.03.2012 12:09
Робота исключительных ситуаций Rik_Igle Помощь студентам 0 08.12.2011 15:47
Как избежать исключительных ситуаций при создании своего класса chertovich Общие вопросы Delphi 2 28.11.2011 06:08
Обработка исключительных ситуаций MeTeOpA БД в Delphi 4 17.06.2010 09:58