Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Задачи _ Точки на плоскости

Автор: m@dule 9.01.2007 3:17

Вообщем надо сделать программу на Паскале, я до сих пор не могу даже условия понять, а уж о программе вообще молчу....без неё меня до экзамена не допустят, экзамен 10-го числа....вот полное условие задачи:

Составить программу, отображающую на экране дисплея в графическом режиме исходные данные и требуемые результаты. Исходные данные генерировать случайным образом.
Заданно множество М точек на плоскости. Определить верно ли, что для каждой точки А,принадлежащей М существует точка В, принадлежащая М такая,что не существует двух точек М, лежащих по разные стороны от прямой АВ.

 ! 
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ... Перенаименовал, в следующий раз удалю тему.


Автор: Michael_Rybak 9.01.2007 4:28

В условие можно и не вникать, а проверить то, что просят:


// верно ли?
answer := true;
for a := 1 to n do begin // что для каждой точки А,принадлежащей М
// существует точка В?
found_b := false;
for b := 1 to n do if b <> a then begin
// такая,что не существует двух точек М, лежащих по разные стороны от прямой АВ.
have_left := false; //есть ли точки по одну сторону?
have_right := false; //есть ли точки по другую?
for c := 1 to n do if c <> a then if c <> b then
if векторное произведение векторов a->b и a->c больше нуля then
have_left := true
else if векторное произведение векторов a->b и a->c меньше нуля then
have_right := true;
if not(have_left and have_right) then
found_b := true;
end;
if not found_b then
answer := false;
end;
if answer then
Writeln('Верно')
else
Writeln('Не верно');