Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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
1-1106881630
gsformat
2005-01-28 06:07
2005.02.13
как отловить утечку памяти


1-1106947872
Ser_max
2005-01-29 00:31
2005.02.13
Maskedit


1-1107250958
Anknown
2005-02-01 12:42
2005.02.13
XML для Delphi - сохранить и загрузить...


1-1107163743
denis24
2005-01-31 12:29
2005.02.13
Проверка поля стрингрида


3-1105599161
Jann
2005-01-13 09:52
2005.02.13
из dbf в txt





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