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

Вниз

Как определить чего ты стоишь как программист.   Найти похожие ветки 

 
Матлабист   (2004-04-06 14:52) [80]

> Прогоняют теорию.  Черт, а я ее уже и не помню..
Практику за пять минут можно посмотреть в F1. Практический вопрос это вроде пятый параметр CreateFile ?


> Я считаю нет такой задачи которой не смог бы решить..

Учите матчасть. Такие задачи есть. Называется алгоритмически неразрешимая проблема.

просто
>Работодатели обычно нужно что бы они взяли и человек сразу сел и начал
> писать..

Далеко не всегда... Даже скорее всего не всегда...


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


Почитай Дж. Спольски. Характер вопросов может варьироваться от того, какой человек нужен. Теоретически подкованный человек имеет больший рессурс, что ли... Потому как теория одна, а практика это но 80% приложения теории. Лучше знать теорию и в случае необходимости приспособить ее под определенные нужды, чем придумывать что-то свое... Знание теории подразумевает изучение литературы, широту интересов...

Есть еще личностные качества. Которые можно определить по манере собеседования, по характеру написания исходников, ...

Поэтому вопросы должны быть самые разные.

А вести себя надо достойно и честно.


 
вразлет ©   (2004-04-06 14:53) [81]

data ©  

в х86 сначала младший потом страший


 
data ©   (2004-04-06 14:54) [82]

вразлет ©   (06.04.04 14:53) [81]
я так и написала


 
MBo ©   (2004-04-06 14:55) [83]

[71]
3.1 -
Смысл уловлен правильно, но ответ инверсный ;)


 
вразлет ©   (2004-04-06 14:56) [84]

Сдвиг на 8 вправо дает число 0111....111 - всего 24 разряда. А последующая операция со сдвигом указателя на 2 байта

Не знаю как в делфи, а в С это сдвиг указателя на 2*размер unteger


 
вразлет ©   (2004-04-06 14:56) [85]

integer


 
вразлет ©   (2004-04-06 14:57) [86]

data ©  

я так и написала

виноват, мне показалось


 
data ©   (2004-04-06 14:58) [87]

в дельфи на 2 байта должно быть, сейчас проверю..


 
вразлет ©   (2004-04-06 15:00) [88]

Юрий Зотов ©   (06.04.04 14:44)

Извините, но тогда я не понимаю - как же можно судить о том, поверхностные это вопросы, или нет, если это не Ваша область??

Да, это не моя область, но тем не менее, со многими из вопросов мне пришлось столкнуться


 
nikkie ©   (2004-04-06 15:01) [89]

>Не знаю как в делфи, а в С это сдвиг указателя на 2*размер unteger
если не производить преобразование указателя к integer


 
data ©   (2004-04-06 15:01) [90]

не, операция W := PWord(Integer(@I) + 2)^; сдвигает на 2 байта (в дельфи), проверила, получилось 127, как и ожидалось теоритически:)))


 
Юрий Зотов ©   (2004-04-06 15:03) [91]

> MBo ©   (06.04.04 14:55) [83]

Точно! Это уже мне минус - за невнимательность. :о)


 
вразлет ©   (2004-04-06 15:03) [92]

nikkie ©  

Я же вслепую, даже не знаю, как обозначается операции извлечения адреса и извлечения данных по указателю)


 
Vuk ©   (2004-04-06 15:05) [93]

to Карелин Артем:
>3.4. Можно мьютекс забабахать в конструктор. А можно статью
>глянуть на Королевстве.
Mutex - это не интересно. Есть способ более изящный. По большому счету, это вопрос на знание RTL. Кстати, если не ошибаюсь, мы этот способ с Юрием как-то, давно еще, задолго до первого тура ответов на эти вопросы, здесь обсуждали. :o)

to Юрий Зотов:
Вообще говоря, я уже на эти вопросы пытался для себя ответить еще в самый первый раз. Честно завалился на первом. C поиском файлов затруднения только в том, что не особо часто приходится этим пользоваться, и многое просто не помнится, принцип же и средства понятны. Остальное, по большей части, каких-либо вопросов не вызвало, кроме OnCreate, над которым пришлось тогда малость подумать.


 
data ©   (2004-04-06 15:05) [94]

2 ALL
меня очень вопросы 3.2 и 3.3 продолжают интересовать:
как выяснилось, про 3.3 я в принципе ошибалась:(
а 3.2 кажется, что здесь дело в методе Assign у TPersistent, но не уверена. Может у кого есть еще варианты?


 
вразлет ©   (2004-04-06 15:11) [95]

1.1

Ответ 65535?


 
вразлет ©   (2004-04-06 15:13) [96]

то есть 255


 
Юрий Зотов ©   (2004-04-06 15:13) [97]

>  вразлет ©   (06.04.04 15:00) [88]

> Да, это не моя область, но тем не менее, со многими из
> вопросов мне пришлось столкнуться

И о чем же это говорит? Ровно ни о чем. Мне вот пришлось столкнуться с квартирным вопросом - толку ноль.

Уверяю Вас, что на эти вопросы (которые Вы сочли поверхностными) правильно и полностью здесь ответят совсем немногие (если вообще не единицы). Что само по себе совсем не страшно (см.[13], второй абзац). Тест как раз и составлен с расчетом на то, чтобы выяснить уровень кандидата (который говорит о его опыте, зрелости, мышлении и т.п.) и наилучшую область его использования в команде. Если такой человек нужен - он проходит.


 
data ©   (2004-04-06 15:16) [98]

2 вразлет ©   (06.04.04 15:13) [96]
127


 
вразлет ©   (2004-04-06 15:19) [99]

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


 
вразлет ©   (2004-04-06 15:21) [100]

data ©  

Где ты взяла старший 0?


 
MBo ©   (2004-04-06 15:22) [101]

>data ©   (06.04.04 15:05) [94]
http://www.delphikingdom.ru/asp/viewitem.asp?catalogid=215


 
Матлабист   (2004-04-06 15:23) [102]

Примено так (без F1 и Delphi)

1.1.  
 High(I) = $7FFF FFFF
 High(I) shr 8 = $007F FFFF
 Ответ: $007F

2.1.

procedure PrintFolder(const Name, Mask: string);
var
 SR: TSearchRec;
begin
 FindFirst(Name + "\" + Mask, SR, faAnyFile);
 repeat
   if SR.Name = "." then Continue;
   if SR.Name = ".." then Continue;
   WriteLn(Name + "\" + SR.Name);
   if SR.Attribute or faDirectory
     then PrintFolder(Name + "\" + SR.Name + Mask);
 until False;
end;

begin
 PrintFolder("C:\", "A?.B*");
end.
 
3.1. При клике на TLabel активизируется ассоциированный с ним контрол. TStaticText просто отображает информацию. Скорее всего у них даже наследники разные --- TStaticText должен по идее не содержать Handle а рисоваться на канвасе формы.

3.2. От какого класса наследуется класс TCollection и почему?
Скорее всего TPersistent, чтобі иметь возможность быть записанной в поток. Хотя для записи коллекций используются независимые и встроенные от TPersistent механизмы.

3.3. У каких компонентов есть событие OnCreate? Почему его нет у других компонентов?
Не знаю. Догадка -- у контейнеров других компонентов. Чтобы проинициализировать все элементы...

3.4. Написать модуль, содержащий класс, который позволяет создать только единственный экземпляр объекта этого класса (контрольное время - 10 минут).

Если по памяти, то перекрыть GetInstance... Вот только без помощи трудно это сделать... План примерно такой:

type
 TSingleton = class(TObject)  
   function GetInstance: Pointer; override;
 end;

var
 SingleClass: TSignleton;
 
function TSingleton.GetInstance: Pointer;
begin
 if Assigned(SingleClass) then
 begin
   Result := SingleClass;
   Exit;
 end;
 Result := inherited  GetInstance;
 SingleClass := Result;
end;

// + синхронизация, если необходимо...

4. Знание основ Win32 и его API.

4.1. Что такое объекты ядра? Перечислите несколько функций, в которых они используются.

Объекты, которые принадлежат одинаково всем процессам (и к которым можно получить доступ из всех процессов). CreateMutex

4.2. Приводят ли вызовы функций LoadLibrary/FreeLibrary к загрузке/выгрузке DLL в/из ОЗУ?

Если счетчик ссылок этой DLL = 0 (и количество потоков и процессов, ее использующей), то да. DLL, загруженные по разным адресам, считать разными.

4.3. Написать стандартный код цикла выборки сообщений (контрольное время - 2 минуты).
var
 Msg: _MESSAGE;
while GetMessage(Application.MainForm.Handle, Msg, 0, 0) <> 0 do
begin
 TranslaceMessage // если есть акселераторы
 DispatchMessage // если надо вызвать MainWndProc
end;

4.4. Чем отличаются друг от друга функции SendMessage и PostMessage?
В случае разных потоков SendMessage ждет окончания обработки сообщения (или вызова не помню какой функции), а PostMessage нет.

4.5. Как послать сообщение в безоконное приложение и как его там принять?
PostThreadMessage
GetThreadMessage / или GetMEssage(0, ...)
Надо уточнить.

4.6. Каково назначение функций GetStockObject и SelectObject? Нужно ли после их вызова вызывать функцию DeleteObject?

SelectObject нужен дл ятого, чтобы установить текущий элемент для рисования (стиль кисти, например). Нужно или нет надо смотреть в помощи... Уже не помню, но судя по логике нет. DeleteObjct должен соответствовать соответвующей Create-функции (например CreatePen). Возможно надо удалить, если мы выбираем текущую кисть, и потом не возвращаем старое значение... Тогда то старое надо удалить.


 
data ©   (2004-04-06 15:23) [103]

вразлет ©   (06.04.04 15:21) [100]
я же писала в [70] - это знаковый байт.


 
data ©   (2004-04-06 15:24) [104]

т.е бит:)))


 
Юрий Зотов ©   (2004-04-06 15:29) [105]

> вразлет ©   (06.04.04 15:19) [99]

> Это же Азы вин програмиирования

Если Вы говорите о разделе 4, то совершенно верно. Если же о других, то это скорее не Win, а Паскаль и VCL. И там есть вопросы, которые ДАЛЕКО не азы.

> без них вообще никак!

Если писать "на чистом API" - то да. Но Вы забываете, что речь идет о Delphi. А это RAD-среда, и VCL берет на себя многие тонкости API, позволяя ПРИКЛАДНОМУ программисту сосредоточиться на ПРИКЛАДНОЙ проблеме, а не на освобождении хэндлов - то есть, программировать, даже не зная толком, что такое ядро системы. Поэтому раздел 4 как раз и проверяет, знает ли человек основы Windows и API, способен ли он программировать "ручками", на чистом языке и без всяких VCL.


 
Юрий Зотов ©   (2004-04-06 15:32) [106]

> Матлабист   (06.04.04 15:23) [102]

Оценки интересуют?
:о)


 
Матлабист   (2004-04-06 15:33) [107]

Можно


 
Матлабист   (2004-04-06 15:37) [108]

Только попутал порядок байт в первом --- они в обратной последовательности


 
data ©   (2004-04-06 15:38) [109]

>4.2. Приводят ли вызовы функций LoadLibrary/FreeLibrary к
>загрузке/выгрузке DLL в/из ОЗУ?

>Если счетчик ссылок этой DLL = 0 (и количество потоков и >процессов, ее использующей), то да. DLL, загруженные по разным >адресам, считать разными.

Мне кажется, загрузка происходит лишь частичная, т.е. при LoadLibrary загружается в память только ф-ция, которая отвечает за увеличение-уменьшение счетчика process attach, а другие ф-ции только метятся ссылками, но в реальную физическую память не грузятся. А собственно их подгрузка происходит уже при вызовах.
т.е. я бы ответила на вопрос "грузится частично".


 
Algol   (2004-04-06 15:39) [110]


> При клике на TLabel активизируется ассоциированный с ним
> контрол. TStaticText просто отображает информацию.


TLabel это TGraphicControl, а TStaticText это TWinControl , с всеми вытекающими ...


 
вразлет ©   (2004-04-06 15:48) [111]

Юрий Зотов ©  

Наконец –то уловил Вашу мысль, и в значительной степени не могу не согласиться


 
Игорь Шевченко ©   (2004-04-06 15:48) [112]

:(


 
Юрий Зотов ©   (2004-04-06 15:53) [113]

> Матлабист   (06.04.04 15:33) [107]

Пока без полных комментариев, чтобы сохранить интригу, ОК?

1.1 * (неполное объяснение)
2.1 * (искать будет, но совсем не так, как нужно)
3.1 - (просто неверно)
3.2 +
3.3 * (неточное объяснение)
3.4 * (идея не доведена до конца)  
4.1 * (неточное объяснение)
4.2 + (с небольшой натяжкой)
4.3 +
4.4 + (с небольшой натяжкой)
4.5 + (с небольшой натяжкой)
4.6 * (ответ неполный и частично неверный)

IMHO, результат довольно высокий.


 
Игорь Шевченко ©   (2004-04-06 15:55) [114]


> 2.1.
>
> procedure PrintFolder(const Name, Mask: string);
> var
>  SR: TSearchRec;
> begin
>  FindFirst(Name + "\" + Mask, SR, faAnyFile);
>  repeat
>    if SR.Name = "." then Continue;
>    if SR.Name = ".." then Continue;
>    WriteLn(Name + "\" + SR.Name);
>    if SR.Attribute or faDirectory
>      then PrintFolder(Name + "\" + SR.Name + Mask);
>  until False;
> end;


А эта...FindNext ?


 
Игорь Шевченко ©   (2004-04-06 15:58) [115]


>  Догадка -- у контейнеров других компонентов


TPanel и TPageControl (например) являются контейнерами. У них нету события OnCreate :)


 
Style ©   (2004-04-06 15:59) [116]

3.1 - (просто неверно)

>>>Скорее всего у них даже наследники разные

2Ю.З.
А наследники что у них не разные??
Лейбл - это TGraphicsControl,  а StaticText -  TWinControl.
помоему даже в CreateWindow был тип такой - "Static"..


 
Vuk ©   (2004-04-06 16:01) [117]

Добавлю к
>У них нету события OnCreate

а если бы было, то...

Это подсказка такая. :o)


 
Style ©   (2004-04-06 16:06) [118]

2Vuk
то это было бы и не нужно :))


 
Vuk ©   (2004-04-06 16:08) [119]

to Style ©   (06.04.04 16:06) [118]:
>то это было бы и не нужно
Ну почему, я бы иной раз не отказался бы от такого события. Да вот не судьба... :o)


 
Матлабист   (2004-04-06 16:12) [120]


> А эта...FindNext ?


Забыл. Привык к циклам repeat until False, что не отвыкнешь... Правильно, конечно же FindNext(SR) <> 0.  И FindClose тоже надо. Привык, что если что неправильно --- то при отладке всплывет... Вообще с листа писать довольно-таки неприятно...

IMHO, результат довольно высокий

В смысле взяли бы?



Страницы: 1 2 3 4 5 6 7 8 вся ветка

Форум: "Потрепаться";
Текущий архив: 2004.05.02;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.7 MB
Время: 0.054 c
3-1081325950
Term
2004-04-07 12:19
2004.05.02
Трех звенные приожения, что я сделал не так.....???


14-1081789585
тихий вовочка
2004-04-12 21:06
2004.05.02
Свой логгер


3-1080908541
WondeRu
2004-04-02 16:22
2004.05.02
Подмена Field на TMemoField


14-1081849758
RealRascal
2004-04-13 13:49
2004.05.02
Как хранить большие логичесике матрицы?


7-1079334850
comwad
2004-03-15 10:14
2004.05.02
Как послать сообщение неактивному приложению ?





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский