Задача 3 Урок 16
Primary tabs
Вспомогательная задача (можно решить, просто используя одномерные массивы):
Пользователь вводит 4 целых числа, считаем все их координатами на прямой,
а именно: первые два числа - начало и конце отрезка 1
вторые два - начало и конец отрезка 2
Задача: напишите подпрограмму, которая определит какой отрезок является
пересечением этих двух заданных отрезков (если это пересечение вообще есть).Примечание: оформить поиск пересечения в виде процедуры, которая получает
на вход 4 координаты, а также 2 параметра по ссылке:одномерный массив из 2 элементов, куда будет записано пересечение
(если оно будет найдено)
булево значение, которое показывает найдено ли пересечение
type ar = array[1..2, 1..2] of integer; br = array[1..2] of integer; var a: ar = ((-15, 10), (-5, 5)); b: br = (0, 0); bo: boolean; procedure p1(a1:ar; var b1: br; var bo1: boolean); var i1: integer; begin b1[1] := a1[low(a1), low(a1[low(a1)])]; b1[2] := a1[high(a1), high(a1[high(a1)])]; if (a1[low(a1), low(a1[low(a1)])] <= a1[high(a1), high(a1[high(a1)])]) and (a1[low(a1), high(a1[low(a1)])] >= a1[high(a1), low(a1[high(a1)])]) then bo1 := true; if bo1 then begin for i1 := low(a1[i1]) to high(a1[i1]) do begin if a1[i1, low(a1[i1])] > b1[1] then b1[1] := a1[i1, low(a1[i1])] else if a1[i1, high(a1[i1])] < b1[2] then b1[2] := a1[i1, high(a1[i1])]; end; end; end; procedure printarray(b1:br); var i1: integer; begin writeln('Пересечением является отрезок с координатами: '); for i1 := low(b1) to high(b1) do write(b1[i1], ' '); end; begin bo := false; p1(a, b, bo); printarray(b); readln(); end.
КОНСОЛЬ
Пересечением является отрезок с координатами: -5 5
- Log in to post comments
- 3106 reads
vedro-compota
Sun, 11/28/2021 - 13:25
Permalink
function f1(a1:ar): boolean;
-- лучше на вход передавать 4 integer-a
_____________
матфак вгу и остальная классика =)
Vitaliy123
Mon, 11/29/2021 - 20:57
Permalink
Без сложных конструкций "low(a1), low(a1[low(a1)])"
vedro-compota
Sun, 12/05/2021 - 13:23
Permalink
-- переписать на сигнатуру
-- переписать на сигнатуру
_____________
матфак вгу и остальная классика =)
Vitaliy123
Tue, 12/07/2021 - 21:10
Permalink
С четырьмя переменными
vedro-compota
Wed, 12/08/2021 - 18:24
Permalink
засчитано
засчитано
_____________
матфак вгу и остальная классика =)