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

Вниз

Тестовые задания по Delphi   Найти похожие ветки 

 
K-1000 ©   (2016-06-11 02:41) [0]

Хочу узнать свой скилл.


 
Юрий Зотов ©   (2016-06-11 08:26) [1]

Три вопроса по теме "знание и понимание VCL":

1. У каких компонентов есть событие OnCreate?

2. Почему этого события нет у других компонентов?

3. Если Вы пишете свой компонент, в предках которого события OnCreate нет, то как можно реализовать такое событие (или его аналог)?

Если действительно хотите узнать свой скилл, то отвечать нужно "на память", никуда не подглядывая.


 
K-1000 ©   (2016-06-11 09:34) [2]


> Юрий Зотов ©   (11.06.16 08:26) [1]
> Три вопроса по теме "знание и понимание VCL":
>
> 1. У каких компонентов есть событие OnCreate?

Которые обрабатывают событие WM_CREATE.

> 2. Почему этого события нет у других компонентов?

Там где это не нужно.

> 3. Если Вы пишете свой компонент, в предках которого события
> OnCreate нет, то как можно реализовать такое событие (или
> его аналог)?

Перекрыть AfterConstruction()?


 
Pavia ©   (2016-06-11 09:35) [3]

Дядя Юра.
А в чем смысл сих вопросов? Ответы простые, но не всем"же нужны знания создания компонентов.

Вот вы лучше скажите ... Вопрос вынес в отдельную тему.


 
Leonid Troyanovsky ©   (2016-06-11 09:52) [4]


> K-1000 ©   (11.06.16 02:41)

http://delphimaster.net/view/15-1227448089

--
Regards, LVT.


 
Юрий Зотов ©   (2016-06-11 09:58) [5]

> K-1000 ©   (11.06.16 09:34) [2]

Увы, все три ответа - неверные.


 
Игорь Шевченко ©   (2016-06-11 10:02) [6]


> Хочу узнать свой скилл.


Выложи пример своего кода на обозрение - узнаешь.


 
Юрий Зотов ©   (2016-06-11 10:07) [7]

> Pavia ©   (11.06.16 09:35) [3]

> А в чем смысл сих вопросов?

В выяснении того, насколько человек знает (а главное, понимает!) VCL.

> Ответы простые
А Вы сначала попробуйте на них ответить. Вдруг окажется, что не такие уж они и простые?

> но не всем"же нужны знания создания компонентов.
Не всем. Поэтому мы и выясняем скилзы отвечающего - может ли он писать свои компоненты, или пока еще только готовые может использовать?

> Вот вы лучше скажите ... Вопрос вынес в отдельную тему.
Пошел читать.


 
K-1000 ©   (2016-06-11 14:30) [8]

Вообще, хотелось бы получить именно задания по программированию.
Типа: "нужно написать класс для работы с [на ваше усмотрение]".


 
K-1000 ©   (2016-06-11 14:31) [9]


> Игорь Шевченко ©   (11.06.16 10:02) [6]
>
> > Хочу узнать свой скилл.
>
>
> Выложи пример своего кода на обозрение - узнаешь.


Хорошая идея. )


 
DayGaykin ©   (2016-06-11 14:34) [10]


> Выложи пример своего кода на обозрение - узнаешь.

Результат будет один и тот-же вне зависимости от кода.


 
Юрий Зотов ©   (2016-06-11 15:03) [11]

> K-1000 ©   (11.06.16 14:30) [8]

> Типа: "нужно написать класс для работы с [на ваше усмотрение]".


1. Это - чисто на программирование:

Написать библиотеку для работы со знаковыми целыми числами, визуально задаваемыми строками в любой позиционной системе счисления с основанием от 2 до 256. Разрядная сетка имеет длину 256 байт. Реализовать следующий набор операций:
- ввод и вывод;
- перевод из одной кодировки в другую (прямая, обратная, дополнительная);
- перевод из одной системы счисления в другую;
- сложение и вычитание.

2. А это чтобы - с VCL и WinAPI помучаться:

Написать класс формы, у которой контролы могут быть расположены в неклиентской области (в том числе, в design-time).


 
DayGaykin ©   (2016-06-11 22:47) [12]


> Юрий Зотов ©   (11.06.16 15:03) [11]

Это все частные задачи, а не показатель уровня.

Довести проект до релиза, внедрить его, получить положительные отзывы - вот что выдает уровень. Это важно умение.
А как у вас переменные называются, как код отформатирован, сколько памяти ест ваш алгоритм (если он решает задачу), используете ли вы goto и тому подобные факты по большому счету никого не интересуют, кроме заурядных программистов.


 
Eraser ©   (2016-06-12 01:31) [13]

Да, в [6] чуть ли не единственный работающий способ узнать скилл программиста.
причем, чем больше кода, тем лучше. еще лучше какой-нибудь готовый проект.
именно по-этому, один из лучших способов в любой момент найти, без особых усилий, приличную работу по нашей специальности - вести свой open source проект (будь то приложение, библиотека, фреймворк и т.д.), который действительно полезен хотя бы десятку человек.


> [11]


> системе счисления


> Разрядная сетка

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

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

поэтому я за [6].


 
Германн ©   (2016-06-12 01:37) [14]


> DayGaykin ©   (11.06.16 22:47) [12]
>
>
> > Юрий Зотов ©   (11.06.16 15:03) [11]
>
> Это все частные задачи, а не показатель уровня.
>
> Довести проект до релиза, внедрить его, получить положительные
> отзывы - вот что выдает уровень.

Чей уровень?
Прикладного программиста в некоей фирме решающей некие частные задачи? Возможно в этом случае ты прав. Но что хотел узнать о своём уровне автор вопроса?


 
Германн ©   (2016-06-12 01:46) [15]


> DayGaykin ©   (11.06.16 22:47) [12]

Ну и вдобавок.

> Довести проект до релиза, внедрить его, получить положительные
> отзывы - вот что выдает уровень.

Это относится к индивидуальным предпринимателям-программистам. В нормальной ситуации за это всё должны отвечать многие.


 
Германн ©   (2016-06-12 01:48) [16]

Удалено модератором
Примечание: Создание пустых сообщений


 
DayGaykin ©   (2016-06-12 02:41) [17]


> Германн ©   (12.06.16 01:46) [15]
>
> > DayGaykin ©   (11.06.16 22:47) [12]
>
> Ну и вдобавок.
>
> > Довести проект до релиза, внедрить его, получить положительные
>
> > отзывы - вот что выдает уровень.
>
> Это относится к индивидуальным предпринимателям-программистам.
>  В нормальной ситуации за это всё должны отвечать многие.

Это относится ко всем. Один ты или в команде не имеет значения. Если нет результатов - нет и мастерства, будьте вы там хоть все суперменами.

По этой теории тот же alexdn больший мастер, чем большинство здесь, потому что есть результат. А то что пол-форума считают его глупым значения не имеет.

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


 
Юрий Зотов ©   (2016-06-12 08:22) [18]

Неожиданный ракурс приняло обсуждение...

ТС спрашивает тестовые задания по Delphi. Из этого следует, что он хочет понять свой уровень, как программиста.

Ему же предлагают оценить свой уровень как аналитика, архитектора, менеджера, сейлера... в общем, кого угодно, но только не программиста.

А давайте еще дадим ему гастрономические рецепты? Тогда он сможет оценить свой уровень, как повара. Нам ведь наплевать, что хотел он совсем другого, не так ли?.

Болтовня высокого уровня...


 
Юрий Зотов ©   (2016-06-12 08:30) [19]

> Германн ©   (12.06.16 01:48) [16]

Правильные ответы я, конечно, привести могу. Но хотелось бы, чтобы их привели те, кто посчитал вопросы очень простыми.

Это же нетрудно и недолго... раз все так просто...


 
Юрий Зотов ©   (2016-06-12 08:39) [20]

Что же касается экспертной оценки кода - вещь хорошая, если выработаны единые для всех экспертов критерии такой оценки. Иначе получим басню:
http://deti-online.com/basni/basni-mihalkova/slon-zhivopisec


 
Игорь Шевченко ©   (2016-06-12 10:25) [21]

DayGaykin ©   (11.06.16 22:47) [12]

Lamers must die!


 
Kerk ©   (2016-06-12 11:47) [22]

Вопросы содержащие в себе фразу "никуда не поглядывая", по-моему по определению бесполезны, потому что автоматически подразумевают, что поглядывая на них ответить легко. Я вот например со всеми этими нюансами конструкторов сталкиваюсь раз в пятилетку. У меня есть конечно какие-то соображения по этим вопросам, но понять насколько они верны я смогу посмотрев в код. А если код всегда под рукой, то в чем ценность этого знания?

Идея написать преобразование чисел между системами счисления уже лучше. С той точки зрения, что будет интересно посмотреть как именно человек это сделает. Я бы даже для большей красноречивости усложнил: допустим один класс будет представлять собой число и всю информацию о нем, а другой - операции над такими классами-числами. Не из практических соображений, а просто чтобы увидеть что получится и как.

Ну и лучше всего конечно посмотреть на код. Какой-нибудь опенсорс в идеале.


 
Юрий Зотов ©   (2016-06-12 12:11) [23]

> Kerk ©   (12.06.16 11:47) [22]

Хорошо - ответь, подглядывая. Куда угодно.
:o)


 
Kerk ©   (2016-06-12 13:20) [24]

Если честно, лень. Но я посмотрю когда буду рядом с компьютером.

P.S. Как продолжение задачи про конвертацию, я бы попросил добавить операции над римскими числами. Чтобы посмотреть как оно впишется в код написанный по первоначальной формулировке.


 
Юрий Зотов ©   (2016-06-12 13:56) [25]

> Kerk ©   (12.06.16 13:20) [24]

> добавить операции над римскими числами. Чтобы посмотреть как оно
> впишется в код написанный по первоначальной формулировке.


Впишется. В библиотеку добавляются 4 функции:
- ввод/вывод римских чисел;
- перевод из римской системы в любую позиционную и обратно.

Таким образом, задача сводится к уже решенной. А самое главное, что это расширение функционала никак не влияет на уже отлаженный код. Поэтому впишется.

PS
Кстати, эту задачу я не из головы придумал - это был реальный курсовой проект одного студента-первокурсника из МИРЭА. Только задача у него была более объемной, чем я здесь обозначил.


 
Kerk ©   (2016-06-12 14:30) [26]

Так я ж не говорю, что не впишется. Я говорю, что конкретное решение конкретного человека многое о нем расскажет.


 
Германн ©   (2016-06-13 00:28) [27]


> Юрий Зотов ©   (12.06.16 08:30) [19]
>
> > Германн ©   (12.06.16 01:48) [16]
>
> Правильные ответы я, конечно, привести могу. Но хотелось
> бы, чтобы их привели те, кто посчитал вопросы очень простыми.
>
>

Я написал тот пост не к тому, чтобы ты дал ответ. Просто сей вопрос ты уже тут задавал когда-то. И тогда и сейчас на него сходу не смог ответить никто из желающих проверить свой "скилл".
P.S. Я тоже не смог :(  
Но мне так глубоко в VCL не было нужды залезать.


 
Германн ©   (2016-06-13 00:52) [28]


> Leonid Troyanovsky ©   (11.06.16 09:52) [4]

Только на delphimaster.net и сохранилось упоминание о королевской квинтане.
А некоторые не понимают для чего сей хостинг нужно оплачивать.


 
K-1000 ©   (2016-06-13 04:56) [29]


> Юрий Зотов ©   (11.06.16 15:03) [11]


Хорошие задания.

А можно ещё на для большего выбора? Я немного любитель с графикой поработать...


 
Игорь Шевченко ©   (2016-06-13 10:26) [30]


> А некоторые не понимают для чего сей хостинг нужно оплачивать.


Я не понимаю.


 
Юрий Зотов ©   (2016-06-13 11:42) [31]

> K-1000 ©   (13.06.16 04:56) [29]

> с графикой поработать...


В центр формы положить ListBox (так, чтобы он не закрывал всю форму). На форме нарисовать несколько линий, пересекающих ListBox. Все линии должны быть видны полностью и не должны исчезать при любых действиях.


 
Юрий Зотов ©   (2016-06-13 12:03) [32]

> Германн ©   (13.06.16 00:28) [27]
> на него сходу не смог ответить никто из желающих


Vuk смог (в чем можно было и не сомневаться). Еще кто-то смог (уж и не помню, кто именно).

Эти, на первый взгляд действительно простые вопросы на самом деле требуют именно понимания VCL, одними знаниями тут не обойтись.

Даже самый простой вопрос (первый) уже предполагает 2 варианта ответа - частный и общий. Частный ответ - это просто перечисление компонентов, имеющих событие OnCreate. А общий ответ начинается словами "Событие OnCreate имеют компоненты, которые..." - и далее идет расшифровка этого "которые".

Надо ли пояснять, что частный вариант предполагает знание, а общий - понимание VCL ?


 
Юрий Зотов ©   (2016-06-13 12:21) [33]

> Германн ©   (13.06.16 00:28) [27]

> мне так глубоко в VCL не было нужды залезать.


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


 
DayGaykin ©   (2016-06-13 12:39) [34]


> Игорь Шевченко ©   (12.06.16 10:25) [21]
> DayGaykin ©   (11.06.16 22:47) [12]
>
> Lamers must die!

Игорь, если ламеры не вымерли, значит для чего-то они нужны :)


 
megavoid ©   (2016-06-13 12:54) [35]

занимательно :)

procedure TForm1.winpaint(var Msg: TWmPaint);
var
 DC: HDC;
begin
 inherited;
 DC := GetDCEx(Handle, 0, DCX_PARENTCLIP);
 LineTo(DC, 300, 200);
 ReleaseDC(Handle, DC);
end;


 
megavoid ©   (2016-06-13 12:58) [36]

а не, контрол же перехватит ) не так всё сходу и просто ))


 
Юрий Зотов ©   (2016-06-13 13:02) [37]

> DayGaykin ©   (13.06.16 12:39) [34]

> если ламеры не вымерли, значит для чего-то они нужны


Два варианта:

1. Они не вымерли потому, что быстро плодятся.
2. Они нужны для того, чтобы быть звеном в пищевой цепочке.

:o)


 
Юрий Зотов ©   (2016-06-13 13:15) [38]

> megavoid ©   (13.06.16 12:58) [36]

> а не, контрол же перехватит ) не так всё сходу и просто


Ну не буду же я задавать задачку, которая решается одной простейшей строчкой в OnPaint формы?
:o)

В том-то фокус, что когда контрол получит свое WM_PAINT, то он спокойно отрисуется стандартным образом - ведь ни о каких линиях он ничего не знает (и не должен знать).

Пример решения этой задачки есть на сайте Розыча - но уж точно не в одну строчку.


 
Юрий Зотов ©   (2016-06-13 13:30) [39]

Более сложный вариант графической задачки - нарисовать не линию, а картинку, часть которой - на форме, а другая часть - на ListBox. Конечно, картинка не должна исчезать или искажаться ни при каких действиях.


 
Kerk ©   (2016-06-13 14:09) [40]


> Kerk ©   (12.06.16 13:20) [24]
> Если честно, лень. Но я посмотрю когда буду рядом с компьютером.

Ну ок, играть так играть.

Предположу, что все дело в порядке загрузки DFM. Глядя на датамодуль и форму, видно, что они в конструкторе вызывают InitInheritedComponent перед вызовом OnCreate, чтобы прочитать свои внутренности. Это и делает разницу. В момент работы конструктора остальных компонентов значения свойств еще не прочитаны и события вызывать нельзя. Судя по коду, все как-то так.



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

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

Наверх





Память: 0.57 MB
Время: 0.003 c
15-1466367185
NailMan
2016-06-19 23:13
2017.10.15
Читать COM-порт, передавать в RRD-Tools и генерировать HTML


4-1284236390
korbin dalas
2010-09-12 00:19
2017.10.15
Как определить с какими параметрами запущено ЧУЖОЕ приложение?


15-1466285401
Юрий
2016-06-19 00:30
2017.10.15
С днем рождения ! 19 июня 2016 воскресенье


15-1466356269
DayGaykin
2016-06-19 20:11
2017.10.15
Доказать или опровергнуть, что


15-1466199000
Юрий
2016-06-18 00:30
2017.10.15
С днем рождения ! 18 июня 2016 суббота





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