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

Вниз

Тест по Delphi при приеме на работу   Найти похожие ветки 

 
jack128 ©   (2005-01-26 17:39) [120]

Юрий Зотов ©   (26.01.05 16:52) [119]
Мдя.

Ну если человек ответил на этот вопрос, то можно сказать многое об этом человеке..А сли нет, то и сказать ничего нельзя, вопрос, всё таки не тривиальный.


 
Игорь Шевченко ©   (2005-01-26 17:50) [121]


> Кто тут спорит насчет форматирования , вы бы попробовали
> на
> С++ программить


Форматировать нужно при программировании на любом, поддерживающем форматирование языке.

Юрий Зотов ©   (26.01.05 16:52) [119]


> И получается, что OnCreate можно, в принципе, ввести в любой
> класс, но только это будет иметь смысл лишь для контейнеров.


Которые загружаются из ресурсов :)

С уважением,


 
GuAV ©   (2005-01-26 17:59) [122]

Юрий Зотов ©   (26.01.05 16:33) [114]

Тогда ничего не понял. Если дело только в том что попытка вызова обработчика из ресурса сработает только после заргрузки из ресурса, о чём я пытался сказать в [98] , то это вполне решимая проблема. и в  [103] Вы говорите что дело не в том. Так ещё раз, в чём дело.


 
GuAV ©   (2005-01-26 18:01) [123]

Кстати, с фреймами кажется понял. OnCreate сработал бы если бы он был назначен как TFrame1.Frame1FrameCreate, но назначенный TForm1.Frame11Create нне сработал бы.


 
}|{yk ©   (2005-01-26 18:26) [124]


> При таком размещении по смещению [+2] будет
> расположено как раз НЕвыделенное слово.

Обратный порядок байт?


 
Piter ©   (2005-01-26 18:47) [125]

Игорь Шевченко ©   (26.01.05 13:19) [62]
У TForm


это не полный ответ :)


 
Игорь Шевченко ©   (2005-01-26 19:01) [126]

Piter ©   (26.01.05 18:47) [125]

> это не полный ответ :)


Да я уже сознался в своем невежестве :)

С уважением,


 
Piter ©   (2005-01-26 19:28) [127]

Был задан вопрос:

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


Я обращаюсь к Юрию Зотову. Пожалуйста, напишите точный ответ на этот вопрос, без всяких поправок. Вот как бы строго надо было ответить на этот вопрос.


 
Юрий Зотов ©   (2005-01-26 19:54) [128]

> Piter ©   (26.01.05 19:28) [127]

Событие OnCreate есть у компонентов-контейнеров, загружающихся из ресурсов (формы, модули данных). У других компонентов его нет потому, что в нем нет смысла - вызвать его обработчик можно только после загрузки ресурсов, а для этого уже есть событие OnCreate контейнера.


 
KSergey ©   (2005-01-27 06:03) [129]

Рискну высказать еще вот что, с утра пораньше ;)

Сразу скажу, что абзац ниже - на основе мысли из default ©   (26.01.05 15:48) [106].Ну и разумеется, лишь мое понимание, возможно - ошибочное.

В примере и позже сформулированном ответе Юрия Зотова упор делается на то, что "OnCreate просто неимеет смысла". Но как-то вот не устраивает меня такой мотив. В том смысле, что здесь нет явного противоречия и, вроде бы, можно как-то таки извернуться и такое событие припендюрить. Но, пожалуй, тут все же есть принципиальная невозможность такого события: положим, каким-то образом все же это событие срабатывает при создании компонента (ну не важно как, ну что - фантастику не читаем? :)  Так вот, как было указано default - будет корявость: тот компонент, OnCreate которого уже сработало - создан, возможно - инициализирван. Но другие-то не созданы! (или не инициализированы или еще что-то). Получается, в обработчике мы не можем обращаться ни к чему, кроме самомого этого компонента, хотя сам метод (обработчик) и относится к форме...
И это на мой взгляд именно принципиальная невозможность создания такого события, что мне как-то милее, нежели "не имеет смысла" - слишком это как-то мягко... (В принципе может и можно, исхитриться создать корректно, но тогда, по сути, инициатором должен будет являться контейнер... к тому и пришли.)

Это же, к стати, объясняет, почему его нет у фрейма.
Положим, у фрейма оно таки есть (ну в каком-то смысле это вроде как самостоятельный элемент, даже dfm свою имеет.)
Однако что получится? Ну назначили обработчик на OnCreate у самого фрейма. Положили на форму, опять что-то приписали на событие OnCreate фрейма, однако как вызвать обработчик, привязанный к самому фрейму? inherited - не то, это к форме.. Получается - совсем никак?! Да, получается... Т.е. опять же сделать нормально функционирующее OnCreate для фрейма просто невозможно. Потому его и нет.


 
Игорь Шевченко ©   (2005-01-27 13:21) [130]

На мой взгляд, событие OnCreate у контейнеров может быть заменено перекрытием их метода Loaded. Но неудобно.

Поправьте, если ошибаюсь.


 
_Lucky_   (2005-01-27 13:43) [131]

По поводу тестов. Как-то мой друг по универу в конец забадал меня спором о том что лучше си или пас, причем спорил не приводя особых довод (да и фиг с ними, дело то не в этом), тогда я сказал, что для начала неплохобы просто знать хотя бы пас, на что получил утвердительный ответ: "мол я все знаю!", я конечно сразу поймал его на слове, поскольку был уверен в обратном и написал ему такой вот код:
Program FindMinPrg;

Uses Crt;

Type
TVector = Array [1..10000] Of integer;

Var
Vector : TVector;
  I : Integer;

Function FindMin (Vect : TVector) : Integer;
Var
X, Min : Integer;
Begin
Min := Vect [1];
For X := 2 To 10000 Do
 If Min > Vect [x] Then
  Min := Vect [X];

FindMin := Min;
End;

Procedure SetRandom (Var Vect : TVector);
Var
X : integer;
Begin
For X := 1 To 10000 Do
   Vect [x] := random (32767)-16384;
End;

Begin
ClrScr;
Randomize;
  SetRandom (Vector);
  WriteLn ("Min: ", FindMin (Vector));
End.

код был написан для turbo pascal, задача ставилась исправить его, причем принципиально не меняя его, т.е. можно было дописать или стереть всего пару "слов".
Естественно у него ничего не вышло, хотя его товарищь из магазина в котором они оба работали, исправил все за 10 секнуд.
Смысл всего: "Каждому уровню свой тест!".


> Игорь Шевченко ©   (26.01.05 11:57) [49]
> Gero ©   (25.01.05 19:38) [27]
>
>
> > > И по форматированию многое можно сказать об опыте.
> >
> > Ничего подобного.
>
>
> Когда у тебя будет такой же опыт, как у Сергея или у меня,
> тогда ты сам придешь к тому, что по форматированию и прочим
> аспектам оформления кода можно очень многое сказать о его
> авторе. Без обид.

Абсолютно согласен! Учась на 5-м курсе, я сделал 2 курсача девченкам со второго курса, темы были разные, одна математика другая графика, но когда они пошли здаваться, то препод посмотрев минут по 5 на каждый заявил: "Это делал программист  с опытом, и с уже сложившимся собственным стилем написания ...", а после он даже им сказал, что курсачи делал один человек, вот так, а вы говорите не может быть.


 
Kerk ©   (2005-01-27 13:50) [132]

на первом курсе препод в лицо узнавал написанные мной товарищам лабы.. :)


 
}|{yk ©   (2005-01-27 14:13) [133]

Нифига не согласен про оформление. Я вот пользуюсь DelForEx и доволен. Че мне еще думать про формление? Именно по этой же причине я перехожу на LaTeX. Чтобы не отвлекаться на оформление и остальную мишуру.


 
jack128 ©   (2005-01-27 14:34) [134]

}|{yk ©   (27.01.05 14:13) [133]
Че мне еще думать про формление?

Так в том то и дело, что уже не думаешь..Все на автомате оформляется... Ну кроме названий идентификаторов, но тут DelForEx не поможет


 
Piter ©   (2005-01-27 15:17) [135]

Игорь Шевченко ©   (27.01.05 13:21) [130]

[101] внизу
[118]


 
Derevyanniy kak Rels   (2005-01-27 15:23) [136]

Если я не ошибаюсь Юрий Зотов на моей памяти на этом форуме
вопрос:
" У каких компонентов есть событие OnCreate? Почему его нет у других компонентов?"

и отвечает на него раз пятый :)


Игорь Шевченко ©   (26.01.05 17:50) [121]

> Кто тут спорит насчет форматирования , вы бы попробовали
> на
> С++ программить

Форматировать нужно при программировании на любом, поддерживающем форматирование языке.


Несомненно !
но я не это имел ввиду , я имел ввиду то что там бывает волей неволей форматировать начинаешь .

но это я утрирую конечно :)


 
jack128 ©   (2005-01-27 16:47) [137]

Derevyanniy kak Rels   (27.01.05 15:23) [136]
и отвечает на него раз пятый :)


Насколько я помню - третий. Я каждый раз НАПРОЧЬ забываю ответ на этот вопрос и начинаю думать по новой. Надеюсь в следующий раз отвечу сам и без подсказок..


 
JJJ   (2005-01-27 16:53) [138]

Блин, а кто-нито эту задачу решил, а то уже мозги набекрень ?)))

б). Имеется таблица

create table T (Client_ID integer, CNT integer);

Пример заполнения:

Client_ID  CNT
----------------
1          3
1          2
2          1
4          2
4          3
4          4
5          2
5          7
...

Напишите запрос, удовлетворяющий стандарту SQL92,
возвращающий значение CLIENT_ID, для которого сумма CNT максимальна.


 
Юрий Зотов ©   (2005-01-27 17:16) [139]

> Derevyanniy kak Rels   (27.01.05 15:23) [136]

Это все Romkin виноват...
:о)


 
Rule ©   (2005-01-27 18:24) [140]

JJJ   (27.01.05 16:53) [138]
ну так на вскидку навернео что-то типа

select first 1 client_id  from t  group by client_id order by sum(cnt) desc


хотя почемуто меня мучают сомнения что это не соответствует стандарту SQL92, там помоему ферст нет ....


 
raidan ©   (2005-01-27 18:33) [141]

Забыл SQL92 напрочь :(
Неправильный, наверна, будет ответ :(

SELECT *
 FROM (SELECT tio.client_id AS cid, sum(tio.cnt) AS csum
        FROM t tio
    GROUP BY tio.client_id)
WHERE csum = (SELECT max(csum)
                FROM (SELECT tio.client_id AS cid, sum(tio.cnt) AS csum
                       FROM t tio
            GROUP BY tio.client_id))


 
raidan ©   (2005-01-27 18:39) [142]

>Rule ©   (27.01.05 18:24) [140]
На Оракле не заработает ни в жисть :)
(я уж проверил :))
Громоздяку пришлось написать :(


 
Rule ©   (2005-01-27 18:58) [143]

raidan ©   (27.01.05 18:39) [142]
странно, а я на фаерберде решил проверить, и заработало сразу, написал даже без ошибок ... руку уже набил :-), про Оракл ничего не скажу, я его не знаю, значит я был прав и не очень мой запрос совместим с SQL92, но твой тоже, так как вложеные запросы вроде тоже
SELECT max(csum)
               FROM (SELECT tio.client_id AS cid, sum(tio.cnt) AS csum
                      FROM t tio
           GROUP BY tio.client_id)

не очень то по правилам ....


 
Rule ©   (2005-01-27 18:59) [144]

Rule ©   (27.01.05 18:58) [143]
хотя утверждать не буду, давное не читал SQL92, мож кто поправит ...


 
TUser ©   (2005-01-27 19:16) [145]


> _Lucky_   (27.01.05 13:43) [131]

Если не секрет. Я вот переписал это дело - сделал Vector указателем и соотвественнос все переписал. Заработало. Только мне очень интересно почему так (во времена ТР я был дитем малым, так что извините) - там что массивы в качестве параметров как-то по-другому передавались?


 
Fay ©   (2005-01-28 03:33) [146]

2 Rule ©   (27.01.05 18:58) [143]
>> вложеные запросы вроде тоже не очень то по правилам ....

Ага. Их же нет в IB/FB! 8)


 
Derevyanniy kak Rels   (2005-01-28 11:41) [147]


Jack128 ©
Насколько я помню - третий. Я каждый раз НАПРОЧЬ забываю ответ на этот вопрос и начинаю думать по новой. Надеюсь в следующий раз отвечу сам и без подсказок..


Ну значит в подчетах ошибся , кстати я тоже постоянно забываю ответ на него .

наде еще раз пять будет прочитать ответ :) :)


 
Rule ©   (2005-01-28 13:23) [148]

Fay ©   (28.01.05 3:33) [146]

кто сказал что нет ?


 
Romkin ©   (2005-01-28 13:33) [149]

Select from select и first - не подходит :)))
Нетути. Все проще и элегантнее делается ;)
А с first еще и проблема: с максисумом-то может быть несколько client_id, и надо бы получить все, а не первый попавшийся


 
Romkin ©   (2005-01-28 13:36) [150]

Rule ©  (28.01.05 13:23) [148] select from select нету в Firebird :)


 
Romkin ©   (2005-01-28 13:37) [151]

JJJ  (27.01.05 16:53) [138] Не расстраивайся. Я потратил на решение этой задачки 2 часа. И все вокруг говорили, что это невозможно :)))


 
Александр Иванов ©   (2005-01-28 13:46) [152]

Romkin ©   (28.01.05 13:33) [149]
HAVING?


 
Romkin ©   (2005-01-28 14:08) [153]

Александр Иванов ©  (28.01.05 13:46) [152] Идея правильная :)


 
Rule ©   (2005-01-28 14:08) [154]

Romkin ©   (28.01.05 13:33) [149]
действительно :-), не подумал ....

Romkin ©   (28.01.05 13:36) [150]
а разве в последнем интербейзе не появилося ?, я лично с ним не сталкиваюсь, но ктото вроде говорил ....
а в фаерберде, то понятно что нет :)


 
Rule ©   (2005-01-28 14:13) [155]

Romkin ©   (28.01.05 14:08) [153]
Очень прошу, не надо публиковать решение, очень хочеться подумать :-)


 
Rule ©   (2005-01-28 14:21) [156]

Усовершенствовав предыдущий запрос с учетом
Romkin ©   (28.01.05 13:33) [149]

то получается
select client_id from t group by client_id having sum(cnt)=
(select first 1 sum(cnt)  from t  group by client_id order by sum(cnt) desc)


 
Rule ©   (2005-01-28 14:23) [157]

Rule ©   (28.01.05 14:21) [156]
все нормально, только вот   я не уверен что ферст есть в 92 ....


 
Romkin ©   (2005-01-28 14:26) [158]

Ну нету там first! Так что обходитесь.
Запрос вообще и предыдущему стандарту удолетворяет :))
Rule ©  (28.01.05 14:21) [156] Почти :)


 
Александр Иванов ©   (2005-01-28 14:27) [159]

Rule ©   (28.01.05 14:23) [157]
Зачем first, если можно просто max?


 
DenK_vrtz ©   (2005-01-28 14:30) [160]

select client_id, sum(cnt) sum_cnt from t
GROUP BY client_id
HAVING sum(cnt) =
(select max(sum(cnt)) sum_cnt from t
GROUP BY client_id)



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

Текущий архив: 2005.02.13;
Скачать: CL | DM;

Наверх




Память: 0.83 MB
Время: 0.061 c
1-1107187863
dumper
2005-01-31 19:11
2005.02.13
Дамп процедуры


1-1106825905
Antonn
2005-01-27 14:38
2005.02.13
Заменить ресурс в Dll


4-1103888825
tradakad
2004-12-24 14:47
2005.02.13
Событие клик по элементы системного меню


8-1099039831
evg13
2004-10-29 12:50
2005.02.13
Как вывести форматированный текст на bitmap


3-1105802841
Mortal
2005-01-15 18:27
2005.02.13
Помогите с SQL запросом.