Задача 2 урок 16

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

program  U16z2;
function intersection( a1,b1,a2,b2: integer) : boolean;
var i: integer;
begin
  if ((a1 <= a2) and (a2 <= b1)) or ((b2 <= a1) and (a1 <= b2)) then
    result := true
  else
    result := false;
end;

var  i:integer;
a,b:array[1..100]of integer;
f:boolean;
begin      //блок ввода координат
  for i:=1 to 2 do   //вводим в цикле координаты двух отрезков
  begin
   writeln('Enter the ends of the segment');
   readln(a[i],b[i]);
  end;
  f := intersection(a[1], b[1],a[2], b[2]);
  if f then
    write('Yes - intersection')
  else
    write('No - not intersection');
  readln();
end.   
vedro-compota's picture

1)

    result :=  ((a1 <= a2) and (a2 <= b1)) or ((b2 <= a1) and (a1 <= b2)) then

-- лучше так

2)

a1,b1,a2,b2

лучше именовать:

a1,a2,b1,b2

_____________
матфак вгу и остальная классика =)

vedro-compota's picture

решение правильное

_____________
матфак вгу и остальная классика =)