Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Задачка 
:(
    Опции темы
ubiy
Дата 7.5.2004, 18:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 7.5.2004

Репутация: нет
Всего: нет



1. Даны координаты вершин четырехугольника и
координаты точки. Определить, находится ли точка
внутри четырехугольника.
2. Написать вариант функции calloc(), используя
функцию malloc().
PM MAIL   Вверх
Golod
Дата 8.5.2004, 09:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 8.5.2004

Репутация: нет
Всего: нет



По-поводу 1-й задачки, если тебе даны координаты точек, то ты можешь построить сам 4-х угольник, и, например закрасить его. Затем проверяешь координаты точки на цвет, если они совпадают с цветом заливки, то точка попала, если нет, то нет. В Pascal'e это делается элементарно.
PM MAIL   Вверх
Dr.Drunk
Дата 10.5.2004, 10:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 179
Регистрация: 12.1.2004
Где: Волжский

Репутация: нет
Всего: нет



ubiy, по поводу 2 задачки.
На сколько я помню, calloc() - переопределение дин. памяти
а malloc - выделение.

Тогда алгоритм примерно таков
Есть дин. массив который надо увеличить/уменьшить
Вызываешь свою функцию
    - через malloc выделяешь память
    - копируешь в выделенный кусок исх. массив
    - возвращает указатель на нов. массив

Если нов. массив больше старого, то нужно занулить элементы за последним из старого, чтобы в них "мусора" не было.


--------------------
_Theory_ is when you know everything but nothning works._Practice_ is when everything works but no one knows why._IN THIS PLACE_ we're combining theory and practice -nothing works and no one knows why!
PM MAIL WWW ICQ   Вверх
Secandr
Дата 10.5.2004, 10:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Связист
****


Профиль
Группа: Экс. модератор
Сообщений: 4043
Регистрация: 3.8.2003
Где: Russia, Volgograd

Репутация: нет
Всего: 39



Golod Зачем такие сложности? и ещё, если я дам координаты -10000,10000,-998,999 и точку 50,50 smile.gif

ubiy
Первая задача:
Код
пусть x,y - координаты точки, x1,y1,x2,y2 - координаты четырёхугольника.
Если (x1<x<x2) и (y1<y<y2) то поподает

Предворительно можно тосортировать x1,x2 и y1,y2 по возрастанию.



--------------------
Мышки плакали, кололись, но продолжали жрать кактусы (с) cisco
PM ICQ AOL   Вверх
dargaard
Дата 10.5.2004, 13:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Экс. модератор
Сообщений: 450
Регистрация: 7.5.2004

Репутация: нет
Всего: 25



Secandr
С каких пор 4-угольник (а не прямоугольник) описывается 2 координатами?


ubiy
А вообще просто надо правильно разбить 4х угольник на 2 треугольника (правильно разбить так как 4х угольник может быть вогнутым). после этого задача сводится к нахождению точки в двух треугольниках.


здесь алгоритм о точке и треугольнике
http://mcraefamily.com/MathHelp/GeometryPo...ndTriangle2.htm

тут есть алгоритм о точке и многоугольнике
http://www.dfanning.com/tips/point_in_polygon.html




--------------------
Ты должна сделать добро из зла 
потому что его больше не из чего
сделать. Р.П.Уоррен
PM MAIL WWW ICQ   Вверх
Secandr
Дата 10.5.2004, 17:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Связист
****


Профиль
Группа: Экс. модератор
Сообщений: 4043
Регистрация: 3.8.2003
Где: Russia, Volgograd

Репутация: нет
Всего: 39



dargaard Скажем так - этостандартная олимпиадная задача.

Хотя в общем случае я конечно неправ.


--------------------
Мышки плакали, кололись, но продолжали жрать кактусы (с) cisco
PM ICQ AOL   Вверх
ubiy
Дата 13.5.2004, 08:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 7.5.2004

Репутация: нет
Всего: нет



Блаходарю. Буду пробовать.
PM MAIL   Вверх
Гость_Eugene
Дата 13.5.2004, 08:38 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Hello, ALL !

2 Dr.Drunk

По поводу calloc() вы ошиблись. Она выделяет память точно так-же
как и malloc(), но есть отличие. Перераспределяет память realloc() !

2 Ubiy

Читайте доку по библ-м функциям С .

Удачи !
  Вверх
ubiy
Дата 17.5.2004, 08:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 7.5.2004

Репутация: нет
Всего: нет



2 Dr.Drunk

Не совсем понятно, как этот алгоритм написать.

2 Гость_Eugene

Может знаешь, как решить 2 задачу.
PM MAIL   Вверх
Гость_Eugene
Дата 17.5.2004, 09:35 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Посмотрев _синтаксис_ вызова обеих ф-ций, ты и сам её решишь wink.gif
И не забудь, что calloc _чистит_ выделяемую память.

Удачи !

  Вверх
maxim1000
Дата 17.5.2004, 11:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник
Сообщений: 3334
Регистрация: 11.1.2003
Где: Киев

Репутация: 33
Всего: 110



можно попробовать что-то вроде этого:
есть прямоугольник ABCD (имена вершин - последовательно, т.е. ребра AB,BC,CD,DA), и точка E
для того, чтобы точка была внутри пр. достаточно, чтобы
(AB,AE)>0
(AD,AE)>0
(CD,CE)>0
(CB,CE)>0


--------------------
qqq
PM WWW   Вверх
DenDen
Дата 18.5.2004, 00:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 84
Регистрация: 25.3.2004

Репутация: нет
Всего: нет



1.А не проще ли самая дальняя вершина отстоит от точки на величину большую самой длинной стороне прямоугольника?
(не рабоет для невыпуклых многоугольников)
2. свести задачу к 2 треугольникам
3. maxim1000,respect довольно остроумно
PM MAIL   Вверх
Dr.Drunk
Дата 18.5.2004, 10:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 179
Регистрация: 12.1.2004
Где: Волжский

Репутация: нет
Всего: нет



2 Гость_Eugene, ну так давненько уже в С не программил smile.gif






--------------------
_Theory_ is when you know everything but nothning works._Practice_ is when everything works but no one knows why._IN THIS PLACE_ we're combining theory and practice -nothing works and no one knows why!
PM MAIL WWW ICQ   Вверх
Гость_Eugene
Дата 19.5.2004, 13:06 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Да нет, всё более на "приплюснутом", wink.gif в Linux-e.

Удачи !
  Вверх
ubiy
Дата 21.5.2004, 08:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 7.5.2004

Репутация: нет
Всего: нет



2 Гость_Eugene

Нет, не понятно.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Алгоритмы"

maxim1000

Форум "Алгоритмы" предназначен для обсуждения вопросов, связанных только с алгоритмами и структурами данных, без привязки к конкретному языку программирования и/или программному продукту.


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, maxim1000.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Алгоритмы | Следующая тема »


 




[ Время генерации скрипта: 0.0827 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.