Форум: "Основная";
Текущий архив: 2005.02.13;
Скачать: [xml.tar.bz2];
ВнизТест по 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;
Скачать: [xml.tar.bz2];
Память: 0.81 MB
Время: 0.049 c