Задача 4 Урок 16

Задача 4 Урок 16

Пользователь вводит 4 целых числа, считаем все их координатами на прямой, а именно:
первые два числа - начало и конце отрезка 1
вторые два - начало и конец отрезка 2
Задача: напишите подпрограмму, которая определит какой отрезок является пересечением этих двух заданных отрезков (если это пересечение вообще есть).
type
  myArr = array[1..4] of integer;
var afirst, atwo, bfirst, btwo: integer;
    isaseg: boolean;
    a: myArr;

procedure searchRes(afirst, atwo, bfirst, btwo: integer; var a: myArr; var isaseg: boolean);

begin
  a[1] := afirst;
  a[2] := atwo;
  if (afirst <= btwo) and
       (atwo >= bfirst) then
      isaseg := true;
  if isaseg then
  begin
    if bfirst > a[1] then
      a[1] := bfirst;
    if btwo < a[2] then
      a[2] := atwo;
  end;
end;

begin
  writeln('Enter the start and end points of the two segments');
  readln(afirst, atwo, bfirst, btwo);
  isaseg := false;
  searchRes(afirst, atwo, bfirst, btwo, a, isaseg);
  if isaseg then
  begin
    writeln('The intersection is a segment with coordinates: ');
    write(a[1],' ', a[2]);
  end
  else writeln('there is no such segment ');
  readln();
end.   

Вывод консоли:

Enter the start and end points of the two segments
0
0
-5
5
The intersection is a segment with coordinates:
0 0