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

Пользователь вводит N (N отрезков на прямой,сохраните их в двумерный массив.
Напишите подпрограмму, которая определит - есть ли у них общее пересечение,
и если есть - вычислит координаты отрезка-пересечения

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

type
segment = array[1..20]of integer;
var n,i:integer;
a,b,s:segment;
f:boolean;
Procedure intersection(n,a1,b1,a2,b2: integer; var s:segment; var f1:boolean);
var i,s1,s2: integer;
begin
  a[1]:= a1;
  b[1]:= b1;
  a[2]:= a2;
  b[2]:= b2;
  s1:=a[1];
  s2:=b[1];

  for i:=1 to n do
  begin
    if a[i]>s1 then
    s1:=a[i];
  if b[i]<s2 then
    s2:=b[i];
  end;
  f1:=true;
    s[1]:=s1;
    s[2]:=s2;
  for i:=1 to n do
  begin
    if s1>b[i]then
      f1:=false;
    if s2<a[i]then
      f1:=false;
  end;
 end;

 begin
  writeln('Enter the numbers of the segments < 20');
  readln(n);
  for i:=1 to n do
  begin
   writeln('Enter the ends of the segments');
   readln(a[i],b[i]);
  end;

  intersection(n,a[1],b[1],a[2],b[2], s, f);

  if f then
    writeln('Yes intersection! Segment of this is: ',s[1],' - ',s[2])
  else
    writeln('No intersection');
  readln();
end. 
vedro-compota's picture

1) использовать двумерный массив

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