Задача 4 урок 16
Primary tabs
Пользователь вводит N (N отрезков на прямой,сохраните их в двумерный массив.
Напишите подпрограмму, которая определит - есть ли у них общее пересечение,
и если есть - вычислит координаты отрезка-пересечения
type segment = array[1..20]of integer; var n,i:integer; a,b,s:segment; f:boolean; Procedure intersection(n,a1,b1,a2,b2: integer; var s:segment; var f1:boolean); var i,s1,s2: integer; begin a[1]:= a1; b[1]:= b1; a[2]:= a2; b[2]:= b2; s1:=a[1]; s2:=b[1]; for i:=1 to n do begin if a[i]>s1 then s1:=a[i]; if b[i]<s2 then s2:=b[i]; end; f1:=true; s[1]:=s1; s[2]:=s2; for i:=1 to n do begin if s1>b[i]then f1:=false; if s2<a[i]then f1:=false; end; end; begin writeln('Enter the numbers of the segments < 20'); readln(n); for i:=1 to n do begin writeln('Enter the ends of the segments'); readln(a[i],b[i]); end; intersection(n,a[1],b[1],a[2],b[2], s, f); if f then writeln('Yes intersection! Segment of this is: ',s[1],' - ',s[2]) else writeln('No intersection'); readln(); end.
- Log in to post comments
- 1612 reads
vedro-compota
Wed, 11/24/2021 - 18:42
Permalink
1) использовать двумерный
1) использовать двумерный массив
_____________
матфак вгу и остальная классика =)
nglag
Sun, 12/05/2021 - 13:16
Permalink
С двумерным массивом:
vedro-compota
Sun, 12/05/2021 - 13:55
Permalink
-- свести к вызову базовой
-- свести к вызову базовой функции, которая вычисляет пересечение 2 отрезков (если оно есть)
_____________
матфак вгу и остальная классика =)
nglag
Wed, 12/08/2021 - 18:06
Permalink
Исправил
vedro-compota
Wed, 12/08/2021 - 18:45
Permalink
1) Уйти от использования
1) Уйти от использования глобальной f
1) Уйти от использования глобальной n
Проверить на наборе:
_____________
матфак вгу и остальная классика =)
vedro-compota
Wed, 12/08/2021 - 19:06
Permalink
#####
_____________
матфак вгу и остальная классика =)