Урок 16. Задача 3.

Урок 16. Задача 3.

Вспомогательная задача (можно решить, просто используя одномерные массивы):
Пользователь вводит 4 целых числа, считаем все их координатами на прямой, а именно:
первые два числа - начало и конце отрезка 1
вторые два - начало и конец отрезка 2
Задача: напишите подпрограмму, которая определит какой отрезок является пересечением этих двух заданных отрезков (если это пересечение вообще есть).

Примечание: оформить поиск пересечения в виде процедуры, которая получает на вход 4 аргумента целого типа (4 координаты - по две для каждого отрезка) и ещё 2 параметра по ссылке:

одномерный массив из 2 элементов, куда будет записано пересечение (если оно будет найдено)
булево значение, которое показывает найдено ли пересечение

type ar = array[1..2] of integer;
var A :ar;
    x1, x2, y1, y2 :integer;
    fl :boolean;
    
procedure yes_no(a, a1, b, b1 :integer; var Arr1 :ar; var fl :boolean);
begin
  if (a < b1) and (a1 > b) then
    fl := true;
    
  if fl then
  begin
    writeln(fl);
    if a < b then
      Arr1[1] := b
    else
      Arr1[1] := a;
      
    if a1 < b1 then
      Arr1[2] := a1
    else
      Arr1[2] := b1;
    writeln(Arr1[1], ' ',Arr1[2]);
  end
  else
    writeln(fl);
end;

begin
  fl := false;
  x1 := 2;
  x2 := 7;
  y1 := 6;
  y2 := 9;
  yes_no(x1, x2, y1, y2, A, fl);
end.