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

Вниз

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

 
Матлабист   (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;
Скачать: CL | DM;

Наверх




Память: 0.71 MB
Время: 0.041 c
3-1080830024
White
2004-04-01 18:33
2004.05.02
Запущен ли InterBase Server?


7-1078560595
DuhcmanSoft
2004-03-06 11:09
2004.05.02
Системный трей


1-1081788628
c1
2004-04-12 20:50
2004.05.02
Как сделать чтобы hint над button не исчезал


1-1081878711
wall7
2004-04-13 21:51
2004.05.02
ActionList и MessageBox


1-1081940111
clover
2004-04-14 14:55
2004.05.02
ScrollBars в MDI Form