Задача 4 Урок 16
Primary tabs
Пользователь вводит 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. - Log in to post comments
- 391 reads