Урок 16 Задача 3
Primary tabs
Вспомогательная задача (можно решить, просто используя одномерные массивы):
Пользователь вводит 4 целых числа, считаем все их координатами на прямой, а именно:первые два числа - начало и конце отрезка 1
вторые два - начало и конец отрезка 2Задача: напишите подпрограмму, которая определит какой отрезок является пересечением этих двух заданных отрезков (если это пересечение вообще есть).
Примечание: оформить поиск пересечения в виде процедуры, которая получает на вход 4 координаты, а также 2 параметра по ссылке:
одномерный массив из 2 элементов, куда будет записано пересечение (если оно будет найдено)
булево значение, которое показывает найдено ли пересечение
Решение:
program u16z03; type newArr = array[1..2] of integer; var arr:newArr; s: boolean; i,a1,a2,a3,a4: integer; procedure writeArr(arr:newArr); begin for i:=low(arr) to high(arr) do write(arr[i],' '); end; procedure otrezki(a1,a2,a3,a4:integer; arr:newArr; var s:boolean); begin if (a1>a3)and(a2<a4) then begin arr[1]:=a1; arr[2]:=a2; writeArr(arr); writeln(); s:=TRUE; end else if (a1<a3)and(a2>a4) then begin arr[1]:=a3; arr[2]:=a4; writeArr(arr); writeln(); s:=TRUE; end else if (a1<3)and(a2>a3)and(a2<a4) then begin arr[1]:=a3; arr[2]:=a2; writeArr(arr); writeln(); s:=TRUE; end else if (a2>a4)and(a1<a4)and(a1>a3) then begin arr[1]:=a1; arr[2]:=a4; writeArr(arr); writeln(); s:=TRUE; end else s:=FALSE; end; begin write('vvedite koordinat - '); readln(a1); write('vvedite koordinat - '); readln(a2); write('vvedite koordinat - '); readln(a3); write('vvedite koordinat - '); readln(a4); otrezki(a1,a2,a3,a4,arr,s); writeln(s); readln(); end.
Консоль:
vvedite koordinat - 1 vvedite koordinat - 7 vvedite koordinat - 2 vvedite koordinat - 11 2 7 TRUE
- Log in to post comments
- 1422 reads
vedro-compota
Wed, 06/15/2022 - 19:38
Permalink
рекомендую проверить на
рекомендую проверить на разных значениях, сигнатура правильная
_____________
матфак вгу и остальная классика =)
avast36
Tue, 07/05/2022 - 09:40
Permalink
Исправил
Решение:
Консоль:
vedro-compota
Wed, 07/06/2022 - 20:43
Permalink
исправить сигнатуру
исправить сигнатуру
_____________
матфак вгу и остальная классика =)
avast36
Thu, 07/07/2022 - 09:41
Permalink
Исправил
Решение: