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

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

Пользователь вводит 4 целых числа, считаем все их координатами на прямой, а именно:

первые два числа - начало и конце отрезка 1
вторые два - начало и конец отрезка 2

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

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

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

type arr= array [1..2] of integer;
var a,b,c: arr;
function proverka(a1,b1:arr; var c1:arr):boolean;
var i:integer;
begin
  result:=true;
  if (a1[2]<b1[1]) or (a1[1]>b1[2]) then
    result:=false
  else
  begin
    if a1[1]>b1[1] then
      c1[1]:=a1[1]
      else
        c1[1]:= b1[1];
    if a1[2]<b1[2] then
      c1[2]:=a1[2]
      else
        c1[2]:= b1[2];
    end;
end;

begin
  readln(a[1],a[2],b[1],b[2]);
  if proverka(a,b,c) then
    write(c[1],';',c[2])
  else
    write('ne peresekayutsa');
  readln();
end.