• Даны два прямоугольника, стороны которых параллельны или перпендикулярны осям координат. Известны координаты левого нижнего угла каждого из них и длины их сторон. Один из прямоугольников назовем первым, другой — вторым. Найти координаты левого нижнего и правого верхнего углов минимального прямоугольника, содержащего указанные прямоугольники.

Ответы 1

  • Программа на PascalABC

    Program 29844007;

    uses  

     GraphABC;

    var  

     XL1,YL1,XR1,YR1:integer;  ///координаты первого прямоугольника

     XL2,YL2,XR2,YR2:integer; ///координаты второго прямоугольника

     XL0,YL0,XR0,YR0:integer;  ///координаты результата

    s:string; ///строка для вывода результатов;

    begin

     Window.SetSize(700,700);  

     writeln('Первый прямоугольник: ');

       writeln('Введите X левого нижнего угла ');read(XL1);

       writeln('Введите Y левого нижнего угла ');read(YL1);

       writeln('Введите X правого верхнего угла ');read(XR1);

       writeln('Введите Y правого верхнего угла ');read(YR1);

     writeln('Второй прямоугольник: ');

       writeln('Введите X левого нижнего угла ');read(XL2);

       writeln('Введите Y левого нижнего угла ');read(YL2);

       writeln('Введите X правого верхнего угла ');read(XR2);

       writeln('Введите Y правого верхнего угла ');read(YR2);

     if XL1<XL2 then XL0:=XL1 else XL0:=XL2;

     if YL1<YL2 then YL0:=YL1 else YL0:=YL2;

     if XR1<XR2 then XR0:=XR2 else XR0:=XR1;

     if YR1<YR2 then YR0:=YR2 else YR0:=YR1;

    /// Выводим сначала результирующий прямоугольник синим цветом

     Brush.Color := clBlue;

     Rectangle(XL0,700-YL0,XR0,700-YR0);

    /// Рисуем первый прямоугольник красным цветом

     Brush.Color := clRed;

     Rectangle(XL1,700-YL1,XR1,700-YR1);

    /// Выводим второй прямоугольник зелёным

     Brush.Color := clGreen;

     Rectangle(XL2,700-YL2,XR2,700-YR2);

    /// Выводим кординаты

    Brush.Color := clWhite;

     s:='Координаты левого нижнего угла: '+ IntToStr(XL0)+' '+IntToStr(YL0);

     TextOut(0,0,s);

     s:='Координаты правого верхнего угла: '+ IntToStr(XR0)+' '+IntToStr(YR0);

     TextOut(0,20,s);

    end.

    Пример вывода на прикреплённом рисунке.

    answer img
  • Добавить свой ответ

Войти через Google

или

Забыли пароль?

У меня нет аккаунта, я хочу Зарегистрироваться

How much to ban the user?
1 hour 1 day 100 years