Даны два прямоугольника, стороны которых параллельны или перпендикулярны осям координат.

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

Задать свой вопрос
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('1-ый прямоугольник: ');

   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 XL1lt;XL2 then XL0:=XL1 else XL0:=XL2;

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

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

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

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

 Brush.Color := clBlue;

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

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

 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.

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

, оставишь ответ?
Имя:*
E-Mail:


Добро пожаловать!

Для того чтобы стать полноценным пользователем нашего портала, вам необходимо пройти регистрацию.
Зарегистрироваться
Создайте собственную учетную запить!

Пройти регистрацию
Авторизоваться
Уже зарегистрированны? А ну-ка живо авторизуйтесь!

Войти на сайт