Язык программирования Pascal. Регулярные типы данных. Васильев В.В - 13 стр.

UptoLike

13
i,j,m:integer; d,e,min:real;
Begin
Textbackground(7); Textcolor(blue); Clrscr;
writeln('Введите начала и концы ',n,' интервалов ');
for i:=0 to n-1 do
begin
write('Введите начало ',i+1,'-го интервала : ');
readln(a[2*i+1]);
repeat
write('Введите конец ',i+1,'-го интервала : ');
readln(a[2*i+2]);
until a[2*i+2]>a[2*i+1];
end;
(*Упорядочивание по возрастанию левых концов интервалов *)
i:=1;
while i<=2*n-3 do
begin
min:=a[i]; m:=i; j:=i+2;
(* Отыскание минимального левого конца среди a[i],...,a[2n-1] *)
while j<=2*n-1 do
begin
if a[j]<min
then
begin
min:=a[j]; m:=j
end;
j:=j+2
end;
(* Перестановка минимального и i-го левого конца интервалов *)
a[m]:=a[i]; a[i]:=min;
(*Перестановка соответствующих правых концов интервалов *)
min:=a[m+1]; a[m+1]:=a[i+1]; a[i+1]:=min;
i:=i+2
end;
(* Проверка вложенности интервалов *)
i:=3; d:=a[1]; e:=a[2];f:=true;
while i<=2*n-1 do
begin
if a[i]>=e
then f:=false
else
if e<a[i+1]
then e:=a[i+1];
i:=i+2
end;