zadach251.PAS

{* Задача 251 *}

Unit ZADACH251;
Interface
Implementation
Begin
 writeln('Даны натуральные числа x1, y1, x2, y2, x3, y3, x4, y4 . Построить
прямоугольник, левый верхний угол которого находится в точке
( x1, y1), а правый нижний- в точке (x2 , y2) и прямоугольник, левый
верхний угол которого находится в точке ( x3, y3 ), а правый нижний- в
точке (x4 , y4). Определить, пересекаются ли эти прямоугольники.
Если да, то закрасить их общую часть.

'
);
End.

Program zadach251;

Uses zadach251.pas; {* Эту строку можно удалить *}
Uses Crt, Graph; {* Вызов внешних функций *}
Var {* В работе нам потребуются переменные: *}
  x1       : integer;
  y1       : integer;
  x2       : integer;
  y2       : integer;
  x3       : integer;
  y3       : integer;
  x4       : integer;
  y4       : integer;
  grDriver : integer;
  grMode   : integer;
  ErrCode  : integer;
  l        : integer;
  r        : integer;
  b        : integer;
  t        : integer;
Function Max(a : integer;
b : integer) : integer;
Begin
  Max := a;
  If ab Then
    Min := b;
End;
Begin
  ClrScr; {* Стираем всё с экрана *}
  grDriver := Detect;
  writeln('Введите координаты прямоугольников:');
  write('x1 = ');
  readln(x1);
  write('y1 = ');
  readln(y1);
  write('x2 = ');
  readln(x2);
  write('y2 = ');
  readln(y2);
  write('x3 = ');
  readln(x3);
  write('y3 = ');
  readln(y3);
  write('x4 = ');
  readln(x4);
  write('y4 = ');
  readln(y4); { x1 := 50;
  y1 := 50;
  x2 := 300;
  y2 := 200;
  x3 := 200;
  y3 := 150;
  x4 := 600;
  y4 := 400;
  }

  l := max(x1, x3);
  r := min(x2, x4);
  t := max(y1, y3);
  b := min(y2, y4);
  InitGraph(grDriver, grMode, ''); {инициализация графики}
  ErrCode := GraphResult;
  If ErrCode = grOk Then
  Begin
    rectangle(x1, y1, x2, y2); {прорисовка }
    rectangle(x3, y3, x4, y4); {прямоугольников}
    If (lt) Then
    Begin
      floodfill(l + 5, t + 5, white); {закрашивается пересеченная область}
    End;
    readkey; {* Нажмите любую клавишу *}
    CloseGraph;
  End;
  Else WriteLn('Ошибка инициализации графики:', GraphErrorMsg(ErrCode));
End.