Форум: "Прочее";
Текущий архив: 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