Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.10.29;
Скачать: CL | DM;

Вниз

Спрашивали на собеседовании...   Найти похожие ветки 

 
Сатир   (2006-10-04 19:00) [0]

Какая связь между published, TPersistent и RTTI?


 
Ketmar ©   (2006-10-04 19:03) [1]

* в каждом слове все буквы -- латинские;
* ни в одном из слов нет пробелов;
* о них упоминали на собеседовании.

могу и ещё придумать. %-)


 
Сатир   (2006-10-04 19:05) [2]


> могу и ещё придумать

давай ещё варианты%)


 
EvS ©   (2006-10-04 19:07) [3]

Во всех словах присутствует буква i


 
Ketmar ©   (2006-10-04 19:09) [4]

* все буквосочетания короче 12 символов;
* ни об одном спрашивающий не знает нихрена (иначе зачем спрашивать?);
* в VBA такого нет;
* зато вопрос о них появился на "мастаках".

%-)


 
Yegorchic ©   (2006-10-04 19:11) [5]


> * ни об одном спрашивающий не знает нихрена (иначе зачем
> спрашивать?);


Почему же? Может знать об одном..


 
Ketmar ©   (2006-10-04 19:12) [6]

>[5] Yegorchic(c) 4-Oct-2006, 19:11
>Почему же? Может знать об одном..
и этот вариант вполне возможен. или о двух.


 
Palladin ©   (2006-10-04 19:18) [7]

хм...

* TPersisten позволяет своим наследникам организовать хранение и назначение published свойств посредством доступа к ним через RTTI...

думаю необходимый и достаточный ответ :)
по крайней мере его бы мне на собеседовании хватило


 
Сатир   (2006-10-04 19:19) [8]

ладно, я ответил,  что
published свойства типа TPersistent отображаются в RTTI

и мне тут коллега подсказал, что
у типа ТПерсистент есть методы, позволяющие считывать и записывать целые объекты в рантайме, но позволяет оно это делать только с паблишед свойствами


 
Palladin ©   (2006-10-04 19:21) [9]

выразился правда не совсем точно, но спишем это на градус


 
Сатир   (2006-10-04 19:21) [10]


> Palladin ©   (04.10.06 19:18) [7]

ага, только я этого не знал, а предположил наугад)))
называется "сериализация"


 
Сатир   (2006-10-04 19:22) [11]


> выразился правда не совсем точно

а в чём неточность?


 
Palladin ©   (2006-10-04 19:22) [12]

а... точно... так оно и называется...


 
Джо ©   (2006-10-04 19:23) [13]

> [8] Сатир   (04.10.06 19:19)
> и мне тут коллега подсказал, что
> у типа ТПерсистент есть методы, позволяющие считывать и
> записывать целые объекты в рантайме, но позволяет оно это
> делать только с паблишед свойствами

У TPersistent нет таких методов.


 
Palladin ©   (2006-10-04 19:24) [14]


>  [11] Сатир   (04.10.06 19:22)

это я про себя сказал а не про тебя...


 
Джо ©   (2006-10-04 19:24) [15]

А всего-то то в этом классе и есть отличного от других классов, что он объявлен с {$M+}.


 
Сатир   (2006-10-04 19:25) [16]


> Джо ©   (04.10.06 19:23) [13]

ну тогда давай свой вариант ответа:-)


 
Джо ©   (2006-10-04 19:33) [17]

> [16] Сатир   (04.10.06 19:25)
>
> > Джо ©   (04.10.06 19:23) [13]
>
> ну тогда давай свой вариант ответа:-)


Класс TPersistent объявлен с директивой {$M+}, следовательно, при компиляции для него и всех его наследников будет генерироваться информация времени исполнения (Runtime type info, RTTI) для его полей, свойств и методов, находящихся в секции published. Вот, пожалуй, и всё :)


 
Сатир   (2006-10-04 19:34) [18]


> Джо ©   (04.10.06 19:33) [17]

супер!:)


 
Palladin ©   (2006-10-04 19:47) [19]


> [17] Джо ©

ага :) тут то тебя буквоедом и назначат :))


> Спрашивали на собеседовании

если честно подобных вопросов никогда на собеседованиях не задаю

только:
три теоретических
1. Какой ЯВУ Вы предпочитаете для решения (задача придумывается)?
2. Почему?

и три практических
1. поменять две целочисленных переменных местами без использования третьей
2. найти дыры в наборе целых чисел
3. определить вхождение точки в n-угольник (опционально)

по поводу теории разговор идет незамедлительно, а по поводу практики даю неограниченное время, бо самое интересное начинается потом :) когда ко мне приходят с ответами...


 
Palladin ©   (2006-10-04 19:49) [20]


> три теоретических

фу блин... почти три...
третий тоже опционален и выглядит как: "а почему не Делфи?"


 
Джо ©   (2006-10-04 19:51) [21]

> [19] Palladin ©   (04.10.06 19:47)
>
> > [17] Джо ©
>
> ага :) тут то тебя буквоедом и назначат :))

Нее... Буквоедом я и сам не согласен у них работать :) Пусть с такими вопросами остаются без работников :)


 
Ketmar ©   (2006-10-04 19:54) [22]

>[19] Palladin(c) 4-Oct-2006, 19:47
>1. Какой ЯВУ Вы предпочитаете для решения (
>задача придумывается)?
тот, на котором пишут в данной конторе.

>2. Почему?
потому что на нём пишут в данной конторе. %-)

>3. определить вхождение точки в n-угольник (
>опционально)
а вот это с ходу не решу. потому что лениво формулы вспоминать. когда-то решал оригинальным методом: для каждого ребра: поворачивал его, чтобы было вертикальным, направлено снизу вверх, потом смотрел, с какой стороны точка. %-)


 
Иксик ©   (2006-10-04 19:56) [23]

RTTI это MetaData в .NET?


 
Джо ©   (2006-10-04 19:57) [24]

Да ну, трассировка луча — самое простое, что можно реализовать за разумное время "в полевых условиях". И всех-то формул, что пересечение прямой с отрезком :)


 
Джо ©   (2006-10-04 19:58) [25]

> [23] Иксик ©   (04.10.06 19:56)
> RTTI это MetaData в .NET?

Нет, MetaData в .NET — это RTTI :)


 
Ketmar ©   (2006-10-04 19:58) [26]

>[24] Джо(c) 4-Oct-2006, 19:57
>условиях". И всех-то формул, что пересечение
>прямой с отрезком :)
проблема была в том, что как раз этого я и не помнил. т.е. универсальной формулы. а ещё тогда активно занимался 3д-движками. отсюда и повороты. %-)


 
Palladin ©   (2006-10-04 19:59) [27]


> [22] Ketmar ©



> тот, на котором пишут в данной конторе.

неа, чел понятия не имеет на чем пишут в нашей конторе


> потому что на нём пишут в данной конторе.

неуд! :)


> а вот это с ходу не решу. потому что лениво формулы вспоминать.
> когда-то решал оригинальным методом: для каждого ребра:
> поворачивал его, чтобы было вертикальным, направлено снизу
> вверх, потом смотрел, с какой стороны точка. %-)

ага... меня формулы не устраивают и мне они не интересны, мне интересен подход человека к этой проблемме, а формулы идут лесом... если сможет хоть чуть чуть мне обьяснить алгоритм и добиться того что бы я вник в решение... я даже сомневаться не буду, беру сразу... но вопрос опциональный и для решения не обязателен...


 
Ketmar ©   (2006-10-04 20:02) [28]

>[27] Palladin(c) 4-Oct-2006, 19:59
>неа, чел понятия не имеет на чем пишут в нашей
>конторе
а пофигу. на чём пишут -- на том и я буду. %-) потому что конторские правила. %-)

>> потому что на нём пишут в данной конторе.
>неуд! :)
обоснуй. %-))

>ага... меня формулы не устраивают и мне они не
>интересны, мне интересен подход человека к этой
>проблемме, а формулы идут лесом... если сможет
ну вот я тебе описал подход. самое интересное, что это работало. и было написано с учётом ограничений (не было ни книжек, ни математика рядом, ни -- в то время -- никакого инета). %-)

>хоть чуть чуть мне обьяснить алгоритм и добиться
>того что бы я вник в решение... я даже
долго бить по голове, пока ты не согласишься, что вник. %-)


 
MeF Dei Corvi ©   (2006-10-04 20:11) [29]


> 3. определить вхождение точки в n-угольник (опционально)

Я бы попытался как-нибудь хитро найти :) Ну не знаю. Соединять две точки каждого ребра с этой точки -> получаем треугольник. Считаем площади таких треугольников. Считаем площадь n-угольника. Сравниваем. Хотя в таком случае возможна неточность из-за того, что числа в памяти представляются, увы, не с бесконечной точностью. Впрочем, если n-угольник невыпуклый, то этот способ не катит. Хм...
Не найдя хитрый способ, начал бы писать тупую проверку на пересечения.


 
Palladin ©   (2006-10-04 20:11) [30]


> [28] Ketmar ©  



> а пофигу. на чём пишут -- на том и я буду. %-) потому что
> конторские правила. %-)

может я и не прав, но писать у меня могут на том на чем лучше получается и что лучше подходит для задачи. проектировка позволяет (сам себя не похвалишь, нокто не похвалит :) )


> обоснуй. %-))

дык... вроде как обосновал выше... :)


> долго бить по голове, пока ты не согласишься, что вник.
> %-)

нююю... при таком подходе я у тебя заказ сделаю на очередную поставку мётел... :)


 
Palladin ©   (2006-10-04 20:13) [31]


> [29] MeF Dei Corvi ©

n-угольник любой... хоть выпуклый хоть впуклый...


 
MeF Dei Corvi ©   (2006-10-04 20:13) [32]


> хоть выпуклый хоть впуклый...

самопересечения не допускаются?


 
Ketmar ©   (2006-10-04 20:15) [33]

>[30] Palladin(c) 4-Oct-2006, 20:11
>может я и не прав, но писать у меня могут на том
>на чем лучше получается и что лучше подходит для
>задачи.
ой. а потом это состыковывать? бр-р-р... common lisp, например, prolog, php и assembler. %-)

>проектировка позволяет (сам себя не
>похвалишь, нокто не похвалит :) )
%-)

>нююю... при таком подходе я у тебя заказ сделаю
>на очередную поставку мётел... :)
тоже вариант. %-)


 
Сатир   (2006-10-04 20:15) [34]

о, вспомнил другой вопрос с другого собеседования...
что такое "агрегирование" и чем оно отличается от обычного наследования?


 
Palladin ©   (2006-10-04 20:15) [35]

допускаются...


 
Джо ©   (2006-10-04 20:16) [36]

> [34] Сатир   (04.10.06 20:15)
> о, вспомнил другой вопрос с другого собеседования...
> что такое "агрегирование" и чем оно отличается от обычного
> наследования?

Это простой вопрос, вообще-то.


 
Ketmar ©   (2006-10-04 20:19) [37]

>[34] Сатир 4-Oct-2006, 20:15
>что такое "агрегирование" и чем оно отличается
>от обычного наследования?
неинтересно. %-)


 
Сатир   (2006-10-04 20:19) [38]


> Это простой вопрос, вообще-то.

не спорю. но читал об этом только в одной книжке и потому не особо запомнилось.
напомни, плиз:)


 
Иксик ©   (2006-10-04 20:21) [39]


> Джо ©   (04.10.06 19:58) [25]

Ну да :))) Я не так выразился :)


 
Ketmar ©   (2006-10-04 20:21) [40]

"агрегирование" -- это включение объекта в другой объект. обычно при помощи поля-переменной. %-) остальное додумай сам. %-))


 
MeF Dei Corvi ©   (2006-10-04 20:22) [41]


> допускаются...

Гм. Ну можно попытаться триангулировать этот полигон и проверять принадлежность точки полученым треугольникам. Или разбить его на выпуклые. Что-то умное решение не придумывается :(


 
Palladin ©   (2006-10-04 20:22) [42]


> ой. а потом это состыковывать? бр-р-р... common lisp, например,
> prolog, php и assembler. %-)

во блин... ну ты вспомнил... однажды что то на lisp"е решал задачку для знакомой (гы :) )...

конечно есть разумные ограничения для используемых инструментов :) например нет денег чтобы его купить :))


> [34] Сатир  

фигасе чем... да всем... агрегация - включение сущности в состав другой и никакого отношения к наследованию абсолютно не имеет...


 
Ketmar ©   (2006-10-04 20:24) [43]

>[42] Palladin(c) 4-Oct-2006, 20:22
>во блин... ну ты вспомнил... однажды что то на
>lisp"е решал задачку для знакомой (гы :) )...
а что? прикольный язык. иногда пописываю.
>
>конечно есть разумные ограничения для
>используемых инструментов :) например нет денег
>чтобы его купить :))
а у меня свой лисп. на нём написан целый тетрис и текстовый редактор. %-) и всё -- public domain. %-)


 
Джо ©   (2006-10-04 20:26) [44]

> [38] Сатир   (04.10.06 20:19)
>
> > Это простой вопрос, вообще-то.
>
> не спорю. но читал об этом только в одной книжке и потому
> не особо запомнилось.
> напомни, плиз:)

Ну, вот Кетмар напомнил. От себя, буквоеда эдакого, могу только добавить, что агрегирование и наследование ничего общего не имеют :)


 
Джо ©   (2006-10-04 20:27) [45]

> [43] Ketmar ©   (04.10.06 20:24)
> а у меня свой лисп. на нём написан целый тетрис и текстовый
> редактор. %-) и всё -- public domain. %-)

Компилятор или интерпретатор?


 
Иксик ©   (2006-10-04 20:29) [46]

А эта, оно возможно без виртуальной машины?


 
Сатир   (2006-10-04 20:29) [47]


> агрегирование и наследование ничего общего не имеют :)

вот это называется вопрос с подковыркой)))


 
Palladin ©   (2006-10-04 20:30) [48]


> [43] Ketmar ©

да ептыть, какие проблемы :) если научишь свой lisp реализовывать интерфесы и компилировать dll без проблем милости просим...

и в связи с такими способностями у меня найдется очень очень много интересных низкоуровневых задачь... "гы-хы-хы" (C) bender... :)


 
Джо ©   (2006-10-04 20:30) [49]

> [46] Иксик ©   (04.10.06 20:29)
> А эта, оно возможно без виртуальной машины?

Что, Lisp или RTTI? :)


 
Ketmar ©   (2006-10-04 20:37) [50]

>[45] Джо(c) 4-Oct-2006, 20:27
>Компилятор или интерпретатор?
уомпилит в нечто, похожее на байт-код (хотя по сути это всё ещё лисповые списки), и иногда это даже оптимайзит. умеет делать модули/oop. %-)

>[48] Palladin(c) 4-Oct-2006, 20:30
>lisp реализовывать интерфесы
лениво. %-)

>и компилировать dll
запросто. собираем runtime как dll, прифигачеваем скомпиленый пул ресурсом -- и вперёд. %-)

>и в связи с такими способностями у меня найдется
>очень очень много интересных низкоуровневых
>задачь... "гы-хы-хы" (C) bender... :)
ну да. "инициатива наказуема" (ц) остальные отработают положеное -- и домой, а ты сиди, делай свой низкий уровень. %-))


 
Palladin ©   (2006-10-04 20:44) [51]


> лениво. %-)

у чела оперделяется на уровне объяснения практики :)


> ну да. "инициатива наказуема" (ц) остальные отработают положеное
> -- и домой, а ты сиди, делай свой низкий уровень. %-))

ага... в точку :)

а остальные, кстати, нифига не домой. пока приложение не будет валиться при обращении к затронутой функциональности... да и низкоуровневое тестируется отдельно, так что чел может домой утопать гораздо раньше "высоких" :)


 
DiamondShark ©   (2006-10-04 20:45) [52]


> и чем оно отличается от обычного наследования?

Встречный вопрос: а наследование бывает каким-либо кроме обычного?


 
Ketmar ©   (2006-10-04 20:49) [53]

>[52] DiamondShark(c) 4-Oct-2006, 20:45
>Встречный вопрос: а наследование бывает каким-
>либо кроме обычного?
множественным. или через анус. что, в принципе, одно и то же. %-)


 
Ketmar ©   (2006-10-04 20:50) [54]

>[51] Palladin(c) 4-Oct-2006, 20:44
>> лениво. %-)
>у чела оперделяется на уровне объяснения
>практики :)
ленивые пишут код так, чтобы потом как можно меньше его менять и отлаживать. чтобы, блин, работало железобетонно. потому что лень перерабатывать. %-)


 
Palladin ©   (2006-10-04 20:53) [55]


> ленивые пишут код так, чтобы потом как можно меньше его
> менять и отлаживать. чтобы, блин, работало железобетонно.
> потому что лень перерабатывать. %-)

для "низких" это правило... для "высоких" наиутопическая архиутопия...  :)


 
Ketmar ©   (2006-10-04 20:58) [56]

>[55] Palladin(c) 4-Oct-2006, 20:53
>для "низких" это правило... для "высоких"
>наиутопическая архиутопия...  :)
ну, я про идеал и говорил... %-)


 
Prohodil Mimo ©   (2006-10-04 21:46) [57]

Palladin ©   (04.10.06 19:47) [19]
определить вхождение точки в n-угольник (опционально)


Определить самую левую вершину, самую правую, самую верхнюю и самую нижнюю.
После чего пустить 4 луча вверх, вниз, влево и вправо, пока он не достигнет самой крайней граници или не пересечётся с гранью. Если все 4 пересеклись, значит входит :о)


 
Prohodil Mimo ©   (2006-10-04 21:47) [58]

Prohodil Mimo ©   (04.10.06 21:46) [57]

хотя такой вариант не всегда прокатит, но можно и до ума довести :о)


 
Джо ©   (2006-10-04 21:50) [59]

> [58] Prohodil Mimo ©   (04.10.06 21:47)
> Prohodil Mimo ©   (04.10.06 21:46) [57]
>
> хотя такой вариант не всегда прокатит, но можно и до ума
> довести :о)

А зачем доводить? Если изначальный подход неверен... :о)


 
Ketmar ©   (2006-10-04 21:52) [60]

>[59] Джо(c) 4-Oct-2006, 21:50
>А зачем доводить? Если изначальный подход
>неверен... :о)
из мазохизма? %-)


 
Джо ©   (2006-10-04 21:55) [61]

> [60] Ketmar ©   (04.10.06 21:52)
> >А зачем доводить? Если изначальный подход
> >неверен... :о)
> из мазохизма? %-)

Разве что... А я бы лучше выспался... или напился. Чем неверные алгоритмы  доводить до того, чтобы они выдавали псевдо-верные результаты :)


 
Ketmar ©   (2006-10-04 21:56) [62]

>[61] Джо(c) 4-Oct-2006, 21:55
я вот на одну контору писал тестовое задание -- построитель блок-схем. алгоритм был кривой, зато работал на их примерах. меня взяли. %-)


 
Джо ©   (2006-10-04 21:57) [63]

> [62] Ketmar ©   (04.10.06 21:56)
> >[61] Джо(c) 4-Oct-2006, 21:55
> я вот на одну контору писал тестовое задание -- построитель
> блок-схем. алгоритм был кривой, зато работал на их примерах.
> меня взяли. %-)

Неужели эта контора выкупила исходники у Димы? :)


 
Petr V. Abramov ©   (2006-10-04 21:57) [64]

> Какая связь между published, TPersistent и RTTI?
глубокая
все слова очень умные
связи никакой, т.к. published - ключевое слово, TPersistent - имя класса, а RTTI - фича
слово published здесь вообще лишнее, т.к. в нем нет буквы R
слово RTTI тоже лишнее, т.к целиком написано большими буквами
слово TPersistent тоже лишнее, т.к. published и RTTI лишние слова, и по этому признаку оно от них отличается.


 
Джо ©   (2006-10-04 22:00) [65]

TPersistent, кроме прочего — использует  Upper Camel Case, в отличие от остальных слов :)


 
Джо ©   (2006-10-04 22:01) [66]

Тьху, даже не upper camel case, а как его? В общем, что-то из этой оперы :)


 
saxon   (2006-10-04 22:05) [67]

Ну тогда RTTI - просто Upper Case, а published ваще ни какой Upper не использует - оно лишнее. :)


 
Ketmar ©   (2006-10-04 22:05) [68]

>[63] Джо(c) 4-Oct-2006, 21:57
>Неужели эта контора выкупила исходники у Димы? :)
хуже. они посчитали мои написаными нормально. %-)


 
Джо ©   (2006-10-04 22:09) [69]

> [68] Ketmar ©   (04.10.06 22:05)
> >[63] Джо(c) 4-Oct-2006, 21:57
> >Неужели эта контора выкупила исходники у Димы? :)
> хуже. они посчитали мои написаными нормально. %-)

Вай, что делается, что делается... [качаю головой]. :))


 
Ketmar ©   (2006-10-04 22:12) [70]

>[69] Джо(c) 4-Oct-2006, 22:09
>Вай, что делается, что делается... [качаю
>головой]. :))
всё было ещё хуже: они меня на работу взяли. %-)


 
Джо ©   (2006-10-04 22:14) [71]

> [70] Ketmar ©   (04.10.06 22:12)
> >[69] Джо(c) 4-Oct-2006, 22:09
> >Вай, что делается, что делается... [качаю
> >головой]. :))
> всё было ещё хуже: они меня на работу взяли. %-)

Это, простите, вообще ни в какие ворота! ;-)


 
Prohodil Mimo ©   (2006-10-04 22:17) [72]

хотите сказать, что если точка находится внутри многоугольника, все пущенные от неё лучи не достигнут граней?


 
Ketmar ©   (2006-10-04 22:17) [73]

>[71] Джо(c) 4-Oct-2006, 22:14
>Это, простите, вообще ни в какие ворота! ;-)
на я их спас: быстро уволился. %-)


 
Джо ©   (2006-10-04 22:29) [74]

> [72] Prohodil Mimo ©   (04.10.06 22:17)
> хотите сказать, что если точка находится внутри многоугольника,
> все пущенные от неё лучи не достигнут граней?

Нет, хочу сказать, что то, что луч достигнет грани еще ничего не означает:
http://www.unclejoe.ho.com.ua/img/poly.PNG
;)


 
wl ©   (2006-10-04 22:36) [75]

>3. определить вхождение точки в n-угольник (опционально)
я бы стал решать такую задачу геометрически - нарисовать многоугольник, закрасить цветом, отличным от цвета фона, после чего проверить цвет в нужной точке - если совпадает с цветом фона не попадает


 
Prohodil Mimo ©   (2006-10-04 22:46) [76]

Джо ©   (04.10.06 22:29) [74]
А вот это я и имел в виду во втором своём посте.

вот вам второй вариант: определяем точку за пределами многоугольника и пытаемся из первой точки прийти к нему (встретив препятствие - обходим его). Если не удалось, значит мы внутри. :о)

ЗЫ. бредовых идей у меня много, и все их можно заставить работать, даже, если через одно место :о)


 
Чапаев ©   (2006-10-04 22:50) [77]

> а вот это с ходу не решу. потому что лениво формулы вспоминать.

А я бы CreatePolygonRgn()+PtInRgn()... ;-)


 
Ketmar ©   (2006-10-04 22:57) [78]

>[77] Чапаев(c) 4-Oct-2006, 22:50
>А я бы CreatePolygonRgn()+PtInRgn()... ;-)
неинтересно. так кто угодно может. %-)


 
Чапаев ©   (2006-10-04 22:57) [79]

Кто угодно может, да не кто угодно вспомнит вовремя... ;-)


 
atruhin ©   (2006-10-04 22:58) [80]

Треугольник.
Решение сводится к алгоритмам выхода из лабиринта. Например:
1. Вычисляем описывающую область (прямоугольник).
2. Находим ближайшее ребро.
3. Двигаемся по векторам (ребрам), пока не достигнем вершины принадлежащей многоугольнику и описывающей области.
4. Проверяем с какой стороны свободное пространство и вектор. Если с одной стороны, точка внутри.


 
Ketmar ©   (2006-10-04 23:00) [81]

>[79] Чапаев(c) 4-Oct-2006, 22:57
>Кто угодно может, да не кто угодно вспомнит
>вовремя... ;-)
я эту задачу решал в досе и на TP5. %-)


 
Чапаев ©   (2006-10-04 23:02) [82]

Ещё что-то из матана вспоминается... Берём угол, образованный вершиной, данной_точкой, следующей_вершиной. Суммируем так все углы. Если точка внутри, сумма равна 2*Pi, если снаружи -- 0.

Не помню сходу, как точно формулируется, но суть такая.


 
atruhin ©   (2006-10-04 23:03) [83]

> [80] atruhin ©   (04.10.06 22:58)

Соврал в 4 пункте, нужно проверить угол пересечения, ограничивающей области и вектора:
Меньше 90 вышли на улицу
больше внутри многоугольника
равно 90 переходим к следующему вектору.
Ну и отдельно проверить на прямоугольник.


 
atruhin ©   (2006-10-04 23:05) [84]

> [82] Чапаев ©   (04.10.06 23:02)

Это только для выпуклого


 
Чапаев ©   (2006-10-04 23:07) [85]

Насколько я знаю, нет. Это вообще для любой фигуры верно, не только для многоугольника, только тогда приходится к интегралам и пределам переходить... ;-)


 
Чапаев ©   (2006-10-04 23:07) [86]

Вообще в матане такая теоремка была для интегралов по контуру. Многоугольник -- частный случай.


 
isasa ©   (2006-10-04 23:27) [87]

Джо ©   (04.10.06 22:29) [74]

Хитро. :)
Но в случае внутри, количество пересечений - нечетное?

Если выпуклая - обход по образуюшим векторам, если точка для всех с одной стороны - внутри ...


 
noname_   (2006-10-05 09:39) [88]

если количество пересечений сторон многоугольника с произвольным лучом, проведенным из точки, нечетное, то точка внутри


 
wal ©   (2006-10-05 09:54) [89]


> [88] noname_   (05.10.06 09:39)
Точка внутри "внутреннего" пятиугольника самопересекающейся пятиконечной звезды - внутри этой звезды или снаружи?


 
clickmaker ©   (2006-10-05 10:04) [90]


> поменять две целочисленных переменных местами без использования
> третьей

asm
  xchg a, b

?


 
Иксик ©   (2006-10-05 10:11) [91]


> Джо ©   (04.10.06 20:30) [49]
> > [46] Иксик ©   (04.10.06 20:29)
> > А эта, оно возможно без виртуальной машины?
>
> Что, Lisp или RTTI? :)
> <Цитата>

RTTI


> > поменять две целочисленных переменных местами без использования
>
> > третьей

a=a+b
b=a-b
a=a-b


 
Иксик ©   (2006-10-05 10:12) [92]

Модули забыл..


 
noname_   (2006-10-05 10:16) [93]

2 wal [89]

это зависит от определения понятия "внутри" для самопересекающегося многоугольника


 
clickmaker ©   (2006-10-05 10:19) [94]


> a=a+b
> b=a-b
> a=a-b

а если переполнение произойдет на 1-м шаге?


 
Palladin ©   (2006-10-05 10:27) [95]


> а если переполнение произойдет на 1-м шаге?

монопенисуально


 
Palladin ©   (2006-10-05 10:35) [96]

если конечно Range и/или Overflow checking не выставленно :)


 
wal ©   (2006-10-05 11:05) [97]


> [93] noname_   (05.10.06 10:16)
Вот это первое, о чем бы я спросил Palladin"а, до того, как сел решать задачу, точнее второе, первое - для самопересекающихся тоже должно быть верное решение?


 
Palladin ©   (2006-10-05 11:23) [98]

noname_
wal ©

ну если вдруг случится так что появитесь на собеседовании там и будете задавать вопросы и уточнения :)

задача дается в том виде в котором я ее написал и советую еще раз перечитать [27]


 
wal ©   (2006-10-05 11:40) [99]


> [98] Palladin ©   (05.10.06 11:23)
Ну если вдруг случится так, что меня занесет в Ханты-Мансийск, то почему бы и нет :)

[27] перечитал, но ведь и подходы и методы зависят от этих уточнений. Или нет?


 
Думкин ©   (2006-10-05 11:45) [100]

Понятие "внутри многоугольника" в общем случае - философское.

Можно ли оказаться внутри бутылки Клейна?


 
Palladin ©   (2006-10-05 11:54) [101]


> wal ©   (05.10.06 11:40) [99]

мне нужно знать как себя человек поведет... что спросит, и вообще спросит ли? решать прямо на месте не обязательно... может вместе с ней уйти, как решит придет... само решение задачи, как таковое, меня абсолютно не интересует... эта задача дается когда решение о приеме вобщем то принято, но вот за что его лучше посадить - довольно туманно...


 
wal ©   (2006-10-05 12:16) [102]


> [101] Palladin ©   (05.10.06 11:54)
Да я все понимаю, сам собеседования иногда провожу :)

Всем:
А что вы считаете многоугоугольником? Лично мне при решении этой задачи, без уточняющих вопросов, удобнее было бы считать многоугольником замкнутую ломаную линию, а не часть плоскости, ограниченную этой линией, и проверить точку на принадлежность конечному числу отрезков ;)

С уважением.


 
Думкин ©   (2006-10-05 12:30) [103]

> wal ©   (05.10.06 12:16) [102]

Многоугольник - упорядоченный набор точек, соединенных согласно этому порядку попарно отрезками.


 
Prohodil Mimo ©   (2006-10-05 12:52) [104]

Джо ©   (06.10.04 22:29) [74]
http://www.unclejoe.ho.com.ua/img/poly.PNG


а если сделать в форме бублика? :о)


 
Джо ©   (2006-10-05 16:57) [105]

> [104] Prohodil Mimo ©   (05.10.06 12:52)
> Джо ©   (06.10.04 22:29) [74]
> http://www.unclejoe.ho.com.ua/img/poly.PNG
>
> а если сделать в форме бублика? :о)

А PtInRegion из Win32, кстати, "бублики" тоже хорошо понимает :)


 
Иксик ©   (2006-10-05 17:00) [106]

Так эта, возможно ли RTTI без виртуальной машины?


 
Джо ©   (2006-10-05 17:02) [107]

> [106] Иксик ©   (05.10.06 17:00)
> Так эта, возможно ли RTTI без виртуальной машины?

Ну, так в Делфи же реализовано. :) Конечно, не в такой мере, как, скажем, в .Net, однако, достаточной для целого ряда задач.


 
Иксик ©   (2006-10-05 17:08) [108]


> Джо ©   (05.10.06 17:02) [107]

Ага :) Спасибо! Я почти не в теме..


 
Prohodil Mimo ©   (2006-10-05 17:33) [109]

Джо ©   (06.10.05 16:57) [105]
PtInRegion

ну так это же не интересно.


 
Lamer@fools.ua ©   (2006-10-05 17:37) [110]

>>clickmaker ©   (05.10.06 10:04) [90]

> > поменять две целочисленных переменных местами без использования
>
> > третьей
>
> asm
>   xchg a, b

Если a и b переменные в памяти, то не прокатит, если мне не изменяет склероз.


 
Sandman29 ©   (2006-10-05 17:41) [111]

Думкин ©   (05.10.06 12:30) [103]

Многоугольник - упорядоченный набор точек, соединенных согласно этому порядку попарно отрезками

То есть задача о принадлежности многоугольнику сводится к определению, есть ли указанная точка среди множества заданных? :)


 
Джо ©   (2006-10-05 17:47) [112]

> [110] Lamer@fools.ua ©   (05.10.06 17:37)
> >>clickmaker ©   (05.10.06 10:04) [90]
>
> > > поменять две целочисленных переменных местами без использования
>
> >
> > > третьей
> >
> > asm
> >   xchg a, b
> Если a и b переменные в памяти, то не прокатит, если мне
> не изменяет склероз.


 A := A+B;
 B := A-B;
 A := A-B;

:)


 
Ketmar ©   (2006-10-05 17:52) [113]

>[112] Джо(c) 5-Oct-2006, 17:47
> A := A+B;
> B := A-B;
> A := A-B;
фе.
procedure Exchange (var a, b: Integer); register;
asm
 push ebx
 mov  ebx,[eax]
 mov  ecx,[edx]
 mov  [eax],ecx
 mov  [edx],ebx
 pop  ebx
end;


вот так пишут настоящие фрики! и не говорите мне, что регистры -- это тоже такие переменные. %-)


 
Gero ©   (2006-10-05 18:30) [114]


> поменять две целочисленных переменных местами без использования
> третьей

xor


 
Чапаев ©   (2006-10-05 18:53) [115]

> xchg a, b

Низачот! ;-) Нельзя выполнять операции над двумя операциями в памяти. А вот загрузить одну из них в регистр, а затем содержимое регистра с переменной поменять -- это да.


 
MeF Dei Corvi ©   (2006-10-05 19:00) [116]

Ещё так можно:
A := A mod B;
B := A mod B;
A := A mod B;


 
MeF Dei Corvi ©   (2006-10-05 19:00) [117]


> A := A mod B;B := A mod B;A := A mod B;

mod = xor :) Что-то меня глючит.


 
Чапаев ©   (2006-10-05 19:01) [118]

> Нельзя выполнять операции над двумя операциями в памяти.

Операндами, конечно.


 
tesseract ©   (2006-10-05 22:08) [119]


> Джо ©   (05.10.06 17:47) [112]


Ох и тормозить будет :-) Операции с памятью всё-таки быстрее мат процессора, особенно если переменные вещественные.



Страницы: 1 2 3 вся ветка

Текущий архив: 2006.10.29;
Скачать: CL | DM;

Наверх




Память: 0.78 MB
Время: 0.049 c
1-1158920867
salexn
2006-09-22 14:27
2006.10.29
обратное событие OnIdle


15-1160511177
default
2006-10-11 00:12
2006.10.29
Грамматика Мерфи(English grammar in use)


8-1143410774
vlad145
2006-03-27 02:06
2006.10.29
Захват части изображения


3-1157366093
tytus
2006-09-04 14:34
2006.10.29
помогите с подключением


15-1159960137
Тульский
2006-10-04 15:08
2006.10.29
Переводчик On-Line