Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2006.10.29;
Скачать: [xml.tar.bz2];

Вниз

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

 
Сатир   (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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.76 MB
Время: 0.056 c
2-1160634179
Александр10
2006-10-12 10:22
2006.10.29
Копирование файлов


2-1160821158
Sanya_BBB
2006-10-14 14:19
2006.10.29
Как преобразовать double к string ?


2-1160741232
AlexanderMS
2006-10-13 16:07
2006.10.29
Обнаружение русской версии Windows.


2-1160567845
ян
2006-10-11 15:57
2006.10.29
вопрос по Excel


15-1160038958
worldmen
2006-10-05 13:02
2006.10.29
Подобрать Switch.





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский