Задача 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
- 83 reads