Задача 3 урок 16
Primary tabs
Вспомогательная задача (можно решить, просто используя одномерные массивы):
Пользователь вводит 4 целых числа, считаем все их координатами на прямой, а именно:первые два числа - начало и конце отрезка 1
вторые два - начало и конец отрезка 2Задача: напишите подпрограмму, которая определит какой отрезок является
пересечением этих двух заданных отрезков (если это пересечение вообще есть).Примечание: оформить поиск пересечения в виде процедуры, которая получает
на вход 4 координаты, а также 2 параметра по ссылке:одномерный массив из 2 элементов, куда будет записано пересечение
(если оно будет найдено)
булево значение, которое показывает найдено ли пересечение
Type segment = array[1..100]of integer; var i:integer; a,b,s:segment; f:boolean; Procedure intersection(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 2 do begin if a[i]>s1 then s1:=a[i]; if b[i]<s2 then s2:=b[i]; s[1]:=s1; s[2]:=s2; end; f1:=true; for i:=1 to 2 do begin if s1>b[i]then f1:=false; if s2<a[i]then f1:=false; end; end; begin for i:=1 to 2 do begin writeln('Enter the ends of the segment'); readln(a[i],b[i]); end; intersection(a[1],b[1],a[2],b[2], s, f); if f then writeln('Yes! Segment of the intersection: ',s[1],' - ',s[2]) else writeln('no intersection'); readln(); end.
- Log in to post comments
- 955 reads
vedro-compota
Wed, 11/24/2021 - 18:17
Permalink
a[1]:= a1;
--лишняя перестройка, можно сразу работать с числами по-идее
2) форматирование
3)
- в первой итерации условия точно не выполнять, а значит присваивание :
можно провести до цикла
_____________
матфак вгу и остальная классика =)
nglag
Mon, 11/29/2021 - 11:36
Permalink
Исправленный вариант
задача 3 урок 16
vedro-compota
Sun, 12/05/2021 - 13:44
Permalink
Procedure intersection(var a
1)
- то что не собираемся менять лучше передавать по значению
2)
-- в первой итерации оба if всегда вернут false, значит она вообще не нужно
_____________
матфак вгу и остальная классика =)
nglag
Mon, 12/06/2021 - 08:50
Permalink
Исправил