Вниз
Скачать: CL | DM;

---|Ветка была без названия|---   Найти похожие ветки 

← →
Ihor Osov'yak ©   (2003-03-21 13:20) [40]

2 Style (21.03.03 12:37)
Да и 1 вопрос!


>т.е. было $FFFFFFFF стало $00FFFFFF
$7FFFFFFF стало $007FFFFF

maxint - это $7FFFFFFF; $FFFFFFFF в интерпритации как целое знаковое дает -1

>W := PWord(Integer(@I) + 2)^;
>тоже самое что
> W := integer(I shr 16);

не совсем то... Обычная адресная арифменика...
Если не забывать что в памяти сначала младшие байты - затем чтаршие - то результат 7F:

FF FF 7F 00


$007F после интерпритации как word дает 127.

Усе..



← →
Игорь Шевченко ©   (2003-03-21 13:21) [41]


> PostThreadMessage - посылка прямо в цыкл выборки сообщения.
> Что с ним делать дальше - решает разработчик цыкла...


PostThreadMessage - эквивалент PostMessage, за тем исключением, что при выборке сообщения параметр hwnd сообщения будет равен 0


← →
Ihor Osov'yak ©   (2003-03-21 13:24) [42]

Сорри за опячатки в предыдущих двух постингах... Торопился.. Но надеюсь, текст все же понять можно...


← →
Ihor Osov'yak ©   (2003-03-21 13:28) [43]

2 Игорь Шевченко © (21.03.03 13:21)

Ну я это и имел ввиду - ведь для этих сообщений DispatchMessage не будет предпринимать никаких действий, то есь вызовов соотв. оконных процедур.. Или я заблуждаюсь?


← →
Игорь Шевченко ©   (2003-03-21 13:33) [44]

Ihor Osov"yak © (21.03.03 13:28)

Да, конечно. Нет окна - нет вызова оконной процедуры. Но DispatchMessage корректно отработает сообщения WM_TIMER и WM_SYSTIMER при этом.


← →
Style   (2003-03-21 13:44) [45]

Ihor Osov"yak © >>

На счет SendMessage может я немного не понимаю :)

Из созданного мной потока я делаю SendMessage(..)

В другом потоке написал процедуру OmMyMessage(Var: TMessage); message WM_USER;

Если я использую SendMessage, то при получении сообщения в OnMyMessage программа считает что поток остался прежним, т.е. GetCurrentThread возвращает ту же нить что и в SendMessage..

Потому я и использовал PostThread - что навело меня на такую мысль что PostThread посылка всем :)


← →
Ihor Osov'yak ©   (2003-03-21 13:53) [46]

Style (21.03.03 13:44)

Вы наверно чего-то делали неакуратно и сделали неправильные выводы. Процедура окна вызывается всегда в контексте того потока, который создавал окно.

> В другом потоке написал процедуру OmMyMessage(

Вы также путаете потоки (в понимании windows, сори за каламбур) и методы класса-потомка TThread...


← →
Style   (2003-03-21 14:04) [47]

TThread ->> возможно.. Я создаю свой поток с помощью TThread.
получается что в моем Application 2 потока...

на Form1 обрабатываю сообщения

Из TThread посылаю..

Вот если я использую SendMessage() то обработка на Form1 думает что текущий поток -> TThread

Если PostMessage() -> то поток уже другой.

Потому у меня и были такие выводы! :)


← →
y-soft ©   (2003-03-21 14:11) [48]

А что вообще под уровнем программиста подразумевается - Знание базовых алгоритмов? Знание архитектуры ОС и процессоров? Знание языков и инструментов программирования? Умение правильно ставить и оптимально решать задачи? Умение работать самостоятельно и в команде?

IMHO лучший критерий - увидеть человека в деле...


← →
Ihor Osov'yak ©   (2003-03-21 14:11) [49]

2 Style (21.03.03 14:04)
Код в студию.

2 Mike_Goblin © (21.03.03 12:02)

Я невнимательно читал. Посему мое утверждение в Ihor Osov"yak © (21.03.03 12:10) не совсем верно. Приношу извинения.


← →
Style   (2003-03-21 14:12) [50]

>> Юрий Зотов -> вообще очень интересные вопросы..
Очень много ньюансов. И ошибиться можно на чем угодно!

Спасибо :)


← →
Ihor Osov'yak ©   (2003-03-21 14:17) [51]

2 y-soft © (21.03.03 14:11)

> А что вообще под уровнем программиста подразумевается - Знание базовых алгоритмов? Знание архитектуры ОС и процессоров? Знание языков и инструментов программирования? Умение правильно ставить и оптимально решать задачи? Умение работать самостоятельно и в команде?


Это есть обязательные условия. C некоторыми оговорками. Если я позиционируюсь как SQL-программист, то мне пожалуй особенностей работы процессора знать не обязательно. Ну и понимать тонкости архитектуры ОС тоже пожалуй..

> IMHO лучший критерий - увидеть человека в деле...

А вот здесь можно очень легко обмануться.. Особенно если "видение" идет непродолжительное время. Или в области, где ты сам не очень компетентен.. Так что оценка "базы" есть условие просто необходимое..



← →
y-soft ©   (2003-03-21 14:21) [52]

>Ihor Osov"yak © (21.03.03 14:17)

Так я к тому и говорю, что subj сложней, чем просто наличие каких-то знаний...

А вопросы хорошие...


← →
Ihor Osov'yak ©   (2003-03-21 14:28) [53]

2 y-soft © (21.03.03 14:21)

О вопросах - согласен. Я просто поражаюсь ЮЗ. Интересно только, были ли него заготовки, или експромпт?

> Так я к тому и говорю, что subj сложней, чем просто наличие каких-то знаний...

не сложней, а очень субьективно... Посему к сабжу можно переходить после "проверки" первого Вашего набора..





← →
Style   (2003-03-21 14:31) [54]

Ihor Osov"yak © >>
Странно, сейчас все работает!
И SendMessage и PostMessage одинаково
Наверное я действительно чего-то напутал.
потому и сомневаясь отвечал :)


← →
Style   (2003-03-21 14:35) [55]

> IMHO лучший критерий - увидеть человека в деле...

Да наверное это самый лучший способ.. Если не видить работы человека, нельзя оценить его уровень! Да наверное даже по двум работам его не оценить. (Все же еще зависит от сложности работы)


← →
Николай Быков ©   (2003-03-21 14:37) [56]

практически ни на один вопрос не ответил.
А почему нельзя пользоваться хелпом и гуглей? IMHO, программисто должен уметь найти необходимую документацию, и всё.

---

А как называются такие умный книги, где про это написано?


← →
Ihor Osov'yak ©   (2003-03-21 14:39) [57]

2 Style (21.03.03 14:35)

Я, к примеру, как и большинство здешних, в работе Зотова, Подгорецкого, Шевченко не видел. Но почему-то уверен и их уровне компетентности и проффесионализме...


← →
Ihor Osov'yak ©   (2003-03-21 14:44) [58]

2 Style (21.03.03 14:31)

Я ж говорил, что чего-то делали неакуратно и были сделаны неверные выводы. Такое, к сожалению, тоже иногда бывает.

2 Николай Быков © (21.03.03 14:37)

Без базовых знаний и гугля не поможет...

> А как называются такие умный книги, где про это написано?

Наверно, где все вместе - нету.. А некоторые вопросы отсутствуют вообще..
Написать хорошую техническую книгу очень сложно, ибо нужно быть
Альтруистом,Проффесионалом Высокого класса, Писателем.. В одном человеке это довольно редко встречается...


← →
y-soft ©   (2003-03-21 14:45) [59]

>Николай Быков © (21.03.03 14:37)

А как называются такие умный книги, где про это написано?

Опыт работы:)

>Style (21.03.03 14:35)

Тут такой момент: какой программист лучше - тот, который пишет тщательно, умно, оригинально, но оооочень долго, или тот, который знает мало, но зато типовые рутинные задачи щелкает, как орешки? Или - брать ли на работу СуперГуру, страдающего запоями, или привлечь молодого и неопытного, но дисциплинированного и многообещающего, и обучить в процессе?


← →
Ihor Osov'yak ©   (2003-03-21 14:50) [60]

2 y-soft © (21.03.03 14:45)

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

Нужны и те, и те. На разные участки.


> Или - брать ли на работу СуперГуру, страдающего запоями,

Никогда. Ни прикаких условиях. В крайнем случае - внештатный консультант. Если человек согласится. И не очень расчитывать на факт его наличия..



← →
Style   (2003-03-21 14:51) [61]

Ihor Osov"yak © >> Помимо больших познаний люди еще умеют грамотно общаться и выражать свои мысли.

Что немогу сказать о себе. :)

Мне куда проще написать программу, чем выражать ее своими словами.



← →
Nickola2 ©   (2003-03-21 14:53) [62]

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


← →
y-soft ©   (2003-03-21 14:53) [63]

>Ihor Osov"yak © (21.03.03 14:50)

Вот и приходится руководствоваться факторами, непосредственно к программированию отношения не имеющими...


← →
Style   (2003-03-21 14:55) [64]

y-soft!
>> привлечь молодого и неопытного, но дисциплинированного и
многообещающего, и обучить в процессе!

Если у человека в голове что-то есть ... то наверное лучше молодого .. как я :) (Мне 21) а вам скока??


← →
y-soft ©   (2003-03-21 14:56) [65]

>Style (21.03.03 14:55)

Уже 45:(


← →
MsGuns ©   (2003-03-21 14:58) [66]

Знание инструмента, пусть даже в совершенстве, еще делает из простого столяра художника по резьбе.
ИМХО, хороший программист - это тот, кто берется за практически любую задачу (подлежащую решению), находит приемлимый для потребителя способ решения и РЕШАЕТ ее.


← →
MsGuns ©   (2003-03-21 14:59) [67]

..еще НЕ делает из простого столяра художника по резьбе.


← →
Style   (2003-03-21 14:59) [68]

y-soft ©
Ну сейчас очень много предприятий и других организации где нужны программисты.. И возвраст тут не причем.



← →
Ihor Osov'yak ©   (2003-03-21 15:00) [69]

2 y-soft © (21.03.03 14:53)

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

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


← →
y-soft ©   (2003-03-21 15:01) [70]

>MsGuns © (21.03.03 14:58)

Это точно, профессия творческая. Только вот в реалиях нужны не только Рафаэли, но и маляры и терщики красок:)


← →
Юрий Зотов ©   (2003-03-21 15:01) [71]

Протестировал сам себя. Честно - только с бумагой и ручкой. Уложился в 49 минут (2В - 13 минут, 3Д - 6 минут, 4В - 1 минута). В общем, тест прошел, но не без напряга.


← →
y-soft ©   (2003-03-21 15:04) [72]

>Ihor Osov"yak © (21.03.03 15:00)
Конечно, если этот потолок не выше твоего :-).

Больной вопрос уровня некомпетентности руководителя:) Увы, в наших условиях решается только путем естественной ротации...


← →
y-soft ©   (2003-03-21 15:10) [73]

>Style (21.03.03 14:59)
>>y-soft ©
>> Ну сейчас очень много предприятий и других организации где >>нужны программисты.. И возвраст тут не причем.

Ничего кроме зависти к Вашему возрасту не имею:|


← →
Style   (2003-03-21 15:15) [74]

y-soft © >>
Просто у меня еще все в переди :)
А впрочем молодости можно и позавидовать. Наверное я пойму это позже!


← →
Страждущий   (2003-03-21 18:44) [75]

Начал читать ветку. Огромное спасибо, Юрий Зотов, за содействие ! Прочитав немного далее - понял, что люди сами начали отвечать на вопросы. Читать поэтому дальше не стал...
Уважаемые мастера ! Я очень польщен, что вас так заинтересовала моя тема, но... как бы сказать... получше...это наверное эгоистично... но не могли бы вы выражаться только по теме ?

А теперь начинаю отвечатть на вопросы, заданные в начале Юрием Зотовым... ТОЛЬКО НЕ СМЕЙТЕСЬ, ПОЖАЛУЙСТА !

Чему будет равно W после выполнения следующего кода процессором x86? Ответ объяснить.

type
PWord = ^word;
var
I: integer;
W: word;
begin
I := High(I) shr 8;
W := PWord(Integer(@I) + 2)^;
end;


Сложно. С побитовыми операциями очень мало знаком... ответа дать не смогу... можно я напишу трудности, которые у меня возникли ?
High(I) - немного не понимаю смысла этого. High возвращает наибольший элемент массива (я так привык). А в применении к integer... даже не знаю. Справкой вы сказали не пользоваться - поэтому прочитать про High не могу. Возможно, он возвращает наибольшее значение, возможное у integer. Так как Integer это 32-ух знаковый тип, то наибольшее значение - это 01111111111111111111111111111111 (0 и 1x31). Первый бит на знак.
Потом идет логический сдвиг вправо... вот тут я потерялся. Как я читал, логический сдвиг имеет смысл только для беззнаковых типов, а тут же знаковый (нужен арифмитический сдвиг). Допускаю, получится:
00000000011111111111111111111111 (0x9 и 1x23). Этому будет равно I после I := High(I) shr 8;

Далее, integer(@I). Не понимаю. У меня две идеи:
1) Бредовая. @I - это адрес на I. Тогда integer(@I) - это адрес на I будет рассматриваться как число. Но так как адрес на I предугадать невозможно, то точно нельзя будет сказать значение W. Поэтому, считаю идея неправильная
2) Integer(@I)=I - думаю, неправильно. Слишком было бы легко.

Далее прибавляется 2. Если б в результате Integer(@I) получилось бы 32-ух битовое число, то это еще плюс 00000000000000000000000000000010 (0x30 и 10)

Далее все это приводится к PWord. Опять не знаю :((((
Идеи есть, но еще более бредовые... внятно ничено сказать не могу...

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


← →
Страждущий   (2003-03-21 18:54) [76]

а). Что такое открытые массивы и их конструкторы?

Эх. Когда они передаются в функцию или процедуру, то их размер заранее неизвестен. Можно определить с помощью length
Похожи на динамические. Про их внутреннюю сущность и про конструктор ничего сказать не могу

б). Напишите пример перегрузки процедуры.

procedure A(iinteger);
procedure A(s:string); overload;

Это их объявление. Думаю, это имелось в виду как ответ на вопрос.
Есди написать A(5) - то вызовется первая процедура. Если A("hi") - то вторая

в). Написать процедуру поиска в заданном каталоге и всех его подкаталогах всех файлов по маске A?.B* (контрольное время - 20 минут).

Вообще не знаю. Никогда не искал файлы. Вроде как процедура FindFirst используются или как-то так... но не смотря в Win32SDK ни одной строчки написать не смогу.

г). В чем недостаток такого кода:
try
Obj := TMyObject.Create;
...
finally
Obj.Free;
end;


Вероятно в том, что Try должен быть после Obj := TMyObject.Create;
Иначе, если возникнет ошибка при создании объекта, то сразу будет попытка уничтожения объекта... а он еще может не создаться.

а). Что такое Custom-класс, абстрактный метод, классовый метод?

Custom не знаю. Абстрактный метод - это метод, который может быть использован в потомках класса с таким методом. Нельзя объявить переменную типа объект с абстрактными методами.
Классовый метод. Не уверен в терминологии. Но если это:
class function...
То это метод, которые может выполняться без создания экземпляра класса. Он не должен использовать методы и свойства класса (так как сам объект может быть не создан)

б). В чем главное отличие TLabel от TStaticText?
Не видел нигде тип TStaticText (может, не обращал внимания). Может быть, TStaticText это константа. Не смотря в дельфи не могу сказать.

в). От какого класса наследуется TCollection и почему.
Даже не представляю. Никогда с ним не работал


← →
Страждущий   (2003-03-21 18:56) [77]

г). У каких компонентов есть событие OnCreate? Почему его нет у других компонентов?

Никогда не делал собственные компоненты. Думаю, что есть OnCreate у компонентов, которые являются классами. Ну а которые не используют классы - у тех и нету...это только догадки

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

Наверное, есть какие-то функции, которые проверяют, существует ли уже объект такого-то типа. И если уже существует, то в OnCreate исключение. Но без справки даже не представляю как реализовать

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

б). Приводят ли вызовы функций LoadLibrary/FreeLibrary к загрузке DLL в ОЗУ?
Ну если она еще не загружена - то приводят, думаю

в). Написать стандартный код цикла выборки сообщений (контрольное время - 2 минуты).
не очень понял, что надо. В общем, не знаю

г). Чем отличаются функции SendMessage, PostMessage и PosrThreadMessage?
Первая посылает сообщение в очередь приложения. Вторая сразу обращается к прилодению, используя DispatchMessage. Про третью никогда не слышал

д). Каково назначение функций GetStockObject и SelectObject?
не знаю :(((((


Нда-а-а-а... ну блин. Могу в свое оправдание сказать, что мне 18 лет всего... (или уже?).

Люди. Я так считаю, что тестирование не прошел это. Это означает, что меня не возьмут на работу ?
Понимаете, мне бы устроиться, посмотреть что другие люди делают, чем увлекаются. Что в работе требуются больше всего.

Эх, ладно, пойду дальше ответы читать.

P.S. Юрий Зотов, может, посоветуете мне что-нибудь ? Ну я даже не знаю... ну чтобы в следующий раз в грязь лицом не ударить?


← →
D   (2003-03-21 19:17) [78]

> 18
Скорее, всего
Все то, что было в вопросах, далеко не все знают.
А образование получить не хотите? Работодатели на это тоже внимание обращают.
А программистами и весьма мало знающие люди работают (я, например) и знаний набираются на практике.


← →
MBo ©   (2003-03-21 19:47) [79]

>Далее, integer(@I). Не понимаю. У меня две идеи:
>1) Бредовая. @I - это адрес на I. Тогда integer(@I) - это адрес >на I будет рассматриваться как число. Но так как адрес на I >предугадать невозможно, то точно нельзя будет сказать значение

@I - именно адрес переменной I. Он известен компилятору (если переменная локальна, то адрес относительно указателя стека), 32-х битный, как и Integer, поэтому его можно привести к этому типу (арифметические операции с указателями в Паскале намеренно ограничены) и прибавить 2,
а при приведении результата к типу указателя на Word и разыменовании его (^) получим значение старшего слова
(для платформы X86 именно так хранятся 32-битные числа)
0000000001111111 это 127




← →
Страждущий   (2003-03-21 20:12) [80]

MBo, все равно не очень понял !

Можно подробнее.

1) Чему будет равно I после I := High(I) shr 8;

2) После этого чему будет равно Integer(@I) ?

3) Чему будет равно после этого PWord(Integer(@I) + 2) ?

и вообще, здесь непонятно. Если можно - поподробнее. Приведение к типу word я могу понять. Но приведение к типу указателя на word ? Чем он отличается от указателя на integer или string ?



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

Скачать: CL | DM;



Память: 0.63 MB
Время: 0.015 c
3-30318
tERRORist
2003-03-20 18:43
2003.04.10
Можно ли выбрать двунапр. набор данных используя dbExpress


6-30493
DimonZh
2003-02-18 20:21
2003.04.10
Wake On Lan


14-30528
Карелин Артем
2003-03-24 11:20
2003.04.10
Ну янки ваще.


3-30274
Andrei
2003-03-21 17:30
2003.04.10
Фильтрация


4-30654
Manix
2003-02-11 17:27
2003.04.10
Как программно сделать нажатие кнопки мышы ?




   Наверх