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

Вниз

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

 
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 вся ветка

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

Наверх





Память: 0.64 MB
Время: 0.016 c
3-30211
volodya_
2003-03-20 17:21
2003.04.10
Перекодировка Win->Dos и Dos->Win


3-30245
User_OKA
2003-03-20 09:43
2003.04.10
Fib и Lookup поля


14-30554
D
2003-03-24 16:43
2003.04.10
Как сгенерировать звук?


1-30338
Alexander Vasjuk
2003-03-31 15:21
2003.04.10
Как разобрать метафайл по косточкам?


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





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