Задача 4 Урок 16
Primary tabs
Пользователь вводит 4 целых числа, считаем все их координатами на прямой, а именно:
первые два числа - начало и конце отрезка 1
вторые два - начало и конец отрезка 2
Задача: напишите подпрограмму, которая определит какой отрезок является пересечением этих двух заданных отрезков (если это пересечение вообще есть).
type
myArr = array[1..4] of integer;
var afirst, atwo, bfirst, btwo: integer;
isaseg: boolean;
a: myArr;
procedure searchRes(afirst, atwo, bfirst, btwo: integer; var a: myArr; var isaseg: boolean);
begin
a[1] := afirst;
a[2] := atwo;
if (afirst <= btwo) and
(atwo >= bfirst) then
isaseg := true;
if isaseg then
begin
if bfirst > a[1] then
a[1] := bfirst;
if btwo < a[2] then
a[2] := atwo;
end;
end;
begin
writeln('Enter the start and end points of the two segments');
readln(afirst, atwo, bfirst, btwo);
isaseg := false;
searchRes(afirst, atwo, bfirst, btwo, a, isaseg);
if isaseg then
begin
writeln('The intersection is a segment with coordinates: ');
write(a[1],' ', a[2]);
end
else writeln('there is no such segment ');
readln();
end.
Вывод консоли:
Enter the start and end points of the two segments 0 0 -5 5 The intersection is a segment with coordinates: 0 0
- Log in to post comments
- 359 reads