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