Карта сайтаПоискОбратная связь
f-баня
а тебя здесь нет?
(мучеников: 12878)


Вернуться   Форум о FIFA 15, FIFA 14, PES 2014 и других футбольных симуляторах на fifasoccer.ru > Жизнь > Трепология > Программирование

Ответ
 
Опции темы
Старый 30.12.2008, 10:44   #1
Zenit-club
 
Аватар для Kup9
 
Регистрация: 26.03.2008
Сообщений: 47
Отправить сообщение для Kup9 с помощью ICQ
По умолчанию Задача по програмированию

Помогите пожалуйста написать программу по программированию, желательно на паскале или бейсике
программа такая: "Интересные точки"
Задан многоугольник, вершины которого находятся в точках с целоцисленными координатами.Назавём точку интересной, если хотя бы одна из её координат является целой.
Необходимо найти число интересных точек, которые находятся на границе заданного многоугольника.

Прошу написать программу, срочно нужна, заранее благодарен.
__________________
Зенит - чемпион
Kup9 вне форума   Ответить с цитированием
Старый 10.01.2009, 23:05   #2
Zenit-club
 
Аватар для Kup9
 
Регистрация: 26.03.2008
Сообщений: 47
Отправить сообщение для Kup9 с помощью ICQ
По умолчанию

ап пля
__________________
Зенит - чемпион
Kup9 вне форума   Ответить с цитированием
Старый 10.01.2009, 23:25   #3
Посетитель
 
Аватар для VelvetDust
 
Регистрация: 06.12.2006
Адрес: ЮГ-2-низ
Сообщений: 2,017
Отправить сообщение для VelvetDust с помощью ICQ
По умолчанию

Есть такая “формула Пика (клик на Вику)”: если вершины многоугольника расположены в точках с целочисленными координатами (твои “интересные точки”), то выполняется следующее равенство: S = K + M/2 – 1, где S — площадь многоугольника, K — число целых точек, лежащих внутри многоугольника, M — число целых точек, лежащих на границе многоугольника. Зная координаты вершин многоугольника, ты можешь подсчитать S и M, то есть требуемый ответ к задаче, по формуле Пика. О том, как найти площадь S многоугольника, зная координаты его вершин, смотри ниже. Что касается нахождения числа M, оно вроде является суммой НОД(Δx, Δy) для всех сторон многоугольника (Δx и Δy — разности абсцисс и ординат концов отрезка)

P/S - Поправьте, если где наврал...
__________________
Кто лжец и кто подлец – для нас загадка,
И правду знает лишь детектор лжи.
Но на душе довольно-таки гадко –
Нет истины, а есть лишь миражи…

Последний раз редактировалось VelvetDust; 10.01.2009 в 23:55..
VelvetDust вне форума   Ответить с цитированием
Старый 10.01.2009, 23:46   #4
Посетитель
 
Аватар для VelvetDust
 
Регистрация: 06.12.2006
Адрес: ЮГ-2-низ
Сообщений: 2,017
Отправить сообщение для VelvetDust с помощью ICQ
По умолчанию

Паскаль плохо помню, наверняка чо не так написал... Компилятора нету.
<<< Как найти площадь S многоугольника, зная координаты его вершин >>>

program ploschad(input,output);
var i,n:integer; x,y,x1,y1,x2,y2,r,a,b,c,p:real;
begin
writeln('Number of vertices? ');
read(n);
{ Многоугольник разбиваем на кусочки:
первая вершина и каждые две соседних образуют треугольник;
площадь каждого вычисляем по формуле Герона,
сумма всех треугольников даст целиком многоугольник }
write('Vertice 1 (x,y): '); read(x,y);
write('Vertice 2 (x,y): '); read(x1,y1);
r:=0;
for i:=3 to n do
begin
write('Vertice ',i,' (x,y): ');
read(x2,y2);
a:=sqrt(sqr(x-x1)+sqr(y-y1));
b:=sqrt(sqr(x-x2)+sqr(y-y2));
c:=sqrt(sqr(x2-x1)+sqr(y2-y1));
p:=(a+b+c)/2;
r:=r+sqrt(p*(p-a)*(p-b)*(p-c));
x1:=x2; y1:=y2;
end;
writeln('S = ',r);
end
__________________
Кто лжец и кто подлец – для нас загадка,
И правду знает лишь детектор лжи.
Но на душе довольно-таки гадко –
Нет истины, а есть лишь миражи…

Последний раз редактировалось VelvetDust; 10.01.2009 в 23:48..
VelvetDust вне форума   Ответить с цитированием
Старый 11.01.2009, 11:37   #5
Zenit-club
 
Аватар для Kup9
 
Регистрация: 26.03.2008
Сообщений: 47
Отправить сообщение для Kup9 с помощью ICQ
По умолчанию

Спасибо, помог, но немного не понял как найти саму "М" или "К"...не силён я к математике..
__________________
Зенит - чемпион
Kup9 вне форума   Ответить с цитированием
Ответ


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Часовой пояс GMT +3, время: 18:45.