Помощь - Поиск - Пользователи - Календарь
Полная версия: Принадлежность точки отрезкам.
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
sergey121212
Вообщем не пойму саму суть определения...
const n=3;
var i,x,k:integer;
a,b:array[1..n] of real;
begin
for i:=1 to n do
begin
writeln('Введите начало ',i,' отрезка');
readln(a[1]);
writeln('Введите конец ',i,' отрезка');
readln (b[1]);
end;
k:=0;
for i:=1 to n do
if (x>=a[i]) and (x<=b[i]) then
k:=k+1;
writeln(k);
if k=n then writeln('Да')
else
writeln ('Нет');
end.


Изображение



Думаю как-то так , хотя тут проверка пока-что только 2 отрезка...

const n=3;
type point=record
x,y:real;
end;
otr=record
k1,k2:point;
end;
var i:integer;
t:array[1..n] of otr;
x,y:real;


procedure ras(t1,t2:otr;var x,y:real);
begin
x:=((t1.k1.x*t1.k2.y-t1.k2.x*t1.k1.y)*(t2.k1.x-t2.k1.x)-(t2.k1.x*t2.k2.y-t2.k2.x*t2.k1.y)*(t1.k2.x-t1.k1.x))/((t1.k1.y-t1.k2.y)*(t2.k2.x-t2.k1.x)-(t2.k1.y-t2.k2.y)*(t1.k2.x-t1.k1.x));
y:=((t2.k1.y-t2.k2.y)*x-(t2.k1.x*t2.k2.y-t2.k2.x*t2.k1.y))/(t2.k2.x-t2.k1.x);
end;

begin
writeln('Введите координаты отрезков:');
for i:=1 to n do
begin
writeln('Отрезок #',i);
write('x1=');readln(t[i].k1.x);
write('y1=');readln(t[i].k1.y);
write('x2=');readln(t[i].k2.x);
write('y2=');readln(t[i].k2.y);
end;
ras(t[1],t[2],x,y);
if (((t[1].k1.x<=x)and(t[1].k2.x>=x)and(t[2].k1.x<=x)and(t[2].k2.x >=x))or((t[1].k1.y<=y)and(t[1].k2.y>=y)and(t[2].k1.y<=y) and(t[2].k2.y>=y))) then
writeln('Есть точка пересечения ! ')
else writeln('Нет точки пересечения ! ');

end.
Lapp
Там очень простая суть.
Проверяем в цикле все отрезки и считаем, сколько из них содержит эту точку (то есть левый край лежит слева от этой точки, а правый - справа от нее). Если это количество равно n (то есть числу ВСЕХ отрезков), то то все они содержать эту точку..
Все, мне, кажется, прозрачно. Нарисуй себе числовую ось и пометь на ней отрезки (разными цветами) - и все поймешь.

А твой код - судя по тому, что в нем мелькают игреки - по-видимому, призван реализовывать двумерную версию задачи. В условии ничего не сказано про количество измерений пространства. Так что ты уточни, что тебе нужно - двумерный случай или одномерный (а может, трехмерный..)
sergey121212
двумерный
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.