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

Вниз

Тестирование... на знание   Найти похожие ветки 

 
Плохиш ©   (2007-04-10 16:36) [40]


> MBo ©   (10.04.07 15:56) [32]
> О базовых алгоритмах и структурах данных, конечно, нужно
> представление иметь. На примере сортировок - это не значит,
>  что человек код квиксорта обязан наизусть помнить, но должен
> по крайней мере понимать, какую сортировку выгодно использовать
> в конкретном случае, а какую - вредно

order by 1

Блин не возьмут на работу...

> _Аноним   (10.04.07 16:17) [36]

Во людям заняться нечем 8-О
Всегда считал, что первым идёт конкурс заявлений (на туалетной бумаге - в корзину не читая, оформление не понравилось - в корзину, повторное использование - в корзину, с ошибками - в карзину), следующий этап - собеседование и уже оставшимся даётся тест...


 
TUser ©   (2007-04-10 16:36) [41]

Дай ему полку с книгами и прикажи не выкладывая книги на пол или на стол или на другую полку расставить книги по алфавиту. Можно и соревнования по такому программированию устраивать.

Одна из книг на полке сшита пьяным переплетчиком, который страницы 1000-1010 вставил на место после страницы 892. Найти участок, где страницы вставлены неправильно.

Та же задача, если в книге 100 томов с единой нумерацией (но, возможно с разным числом страниц в томе). Общее число страниц неизвестно.

Купить игрушечную железную дорогу и коробку кубиков. Кубики-города расставить на полу. Спроектировать железнодорожные линии, соединив вместе все города (пусть и ненапрямую), кто быстрее соберет дорогу, тот и молодец.

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

Описать в стихах муки древневавилонских школьников, вынужденных идучать таблицу умножения для 60-ной системы исчисления.

...


 
_Аноним   (2007-04-10 16:50) [42]


> Плохиш ©


> Всегда считал, что первым идёт

Все так. Только собеседование как раз и начинается с теста.
Пробовали и наоборот - получилось, что в большинстве случаев зря потратили время. И вот что обидно - вроде человек все гладко рассказывает, уже про себя  думаешь "ага.. наконец то"
а потом тест - и все, полный привет. Каждый раз разочарование :-)

Потом мы стали делать по другому - заменили тест на бумажный.
15 вопросов (простейших).
например:
найдите ошибку в коде:
procedure ClearList(List: TList);
var
 I: Integer;
begin
 for I:=0 to List.Count do
   List.Delete(I);
end;

В общем то, полностью все равно никто не ответил.


 
IA   (2007-04-10 17:03) [43]

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


> procedure ClearList(List: TList);
> var
>  I: Integer;
> begin
>  for I:=0 to List.Count do
>    List.Delete(I);
> end;


В этом коде _две_ ошибки.


 
pasha_golub ©   (2007-04-10 17:04) [44]


> default ©   (10.04.07 16:28) [39]

А почему бы 11-классникам не дать алгоритм сортировки пузырем как основной?


 
ferr ©   (2007-04-10 17:13) [45]

> А почему бы 11-классникам не дать алгоритм сортировки пузырем
> как основной?

Потому что это глупо. Иногда возникают  задачи где требуется отсортировать порядка 100 элементов, но даже в таких случаях рекомендуется использовать другие квадратичные алгоритмы, например SelectionSort, который программируется ничуть не сложнее пузырька. А вот как основной надо подавать что-то логрифмичесое, я бы предпочёл MergerSort, хотя она и не по месту, зато устойчивая и достаточно простая. В java например реализовано именно она.


 
isasa ©   (2007-04-10 17:20) [46]

IA   (10.04.07 17:03) [43]
В этом коде _две_ ошибки.

:)
... и, вообще, удаление так никто не пишет ...


 
_Аноним   (2007-04-10 17:22) [47]


> В этом коде _две_ ошибки.

Совершенно верно. Процентов 70 увидели только одну.


 
default ©   (2007-04-10 17:23) [48]

pasha_golub ©   (10.04.07 17:04) [44]
а смысл это декларировать как основной метод?


 
Юрий ©   (2007-04-10 17:25) [49]

> [43] IA   (10.04.07 17:03)

Вторая ошибка проверка на NIL?


 
_Аноним   (2007-04-10 17:27) [50]


> Юрий ©

Проверка на nil - это действительно чаще всего ошибка. Тут ее нету :-)


 
Юрий ©   (2007-04-10 17:27) [51]

> [50] _Аноним   (10.04.07 17:27)

Я это и имел в виду. :)


 
tesseract ©   (2007-04-10 17:28) [52]


> Вторая ошибка проверка на NIL?


первая ошибка - размерность list.

вторая Delete довольно скоро будет уничтожать несуществующие элементы list-а.


 
Юрий ©   (2007-04-10 17:29) [53]

> [52] tesseract ©   (10.04.07 17:28)

Умываю руки.


 
Gero ©   (2007-04-10 17:31) [54]

> [47] _Аноним   (10.04.07 17:22)
> > В этом коде _две_ ошибки.
>
> Совершенно верно. Процентов 70 увидели только одну.

Процентов 70 среди кого? Студентов первого курса? Мне кажется, ошибки слишком очевидны, чтобы можно быть говорить о каком-то уровне тестируемого.


 
tesseract ©   (2007-04-10 17:32) [55]


> Юрий ©   (10.04.07 17:29) [53]


С подобным  приколом при работе с Tlist/ДинМассивами в приниципе столкнулся на 3 месяц работы программистом :-)  Весьма часто попадающийся костыль у новичков.


 
Юрий ©   (2007-04-10 17:33) [56]

> [55] tesseract ©   (10.04.07 17:32)

Я почему то сразу подумал, про проверки, туда-сюда... Смотришь в книгу, видишь ...


 
isasa ©   (2007-04-10 17:44) [57]

Юрий ©   (10.04.07 17:33) [56]
:)
... главное TLict.Count свеженький брать ...
а for ... downto или while дело десятое


 
_Аноним   (2007-04-10 17:48) [58]


> Gero ©


> Процентов 70 среди кого?

Среди тех, кто пришел на собеседование.
То есть среди тех, чье резюме не отправилось в корзину сразу.
(а куча резюме отправилась в нее сразу по причинам, описанным Плохишом выше).


> tesseract ©


> Весьма часто попадающийся костыль у новичков.


ну как раз ставка сделана на то, чтобы проверить - а правда ли есть опыт. Если есть, костыль был, то ответ готов сразу :-)


 
StriderMan ©   (2007-04-10 17:48) [59]


> tesseract ©   (10.04.07 17:28) [52]

+1, я сразу внимание обратил :)

кстати про листы. обычно принято очищать листы "обратным" циклом от Count-1 do 0. Я, пока этого не знал, придумал другой способ:

while List.Count > 0 do
 List.Delete(List.Count - 1);

не нужна переменная i :)


 
Чапаев ©   (2007-04-10 17:48) [60]

> [54] Gero ©   (10.04.07 17:31)
Я только со второй попытки обнаружил, что цикл от 0 до List.Count, а не до List.Count-1. Сам бы такой ошибки не допустил, на бумажке чужую наверняка не заметил бы...


 
tesseract ©   (2007-04-10 17:51) [61]


> ... главное TLict.Count свеженький брать ...а for ... downto
> или while дело десятое


For i:=0 to List.count-1 do
begin
 dispose(list[0])
 list.delete(0);
end;

Вроде должно сработать без утечек, хлтя репа ща чугунная.


 
Gero ©   (2007-04-10 17:52) [62]

> [42] _Аноним   (10.04.07 16:50)
> найдите ошибку в коде:

Вобще нехорошо, что говорится про ошибку. Тогда ответ про Count — 1 можно считать верным.


 
isasa ©   (2007-04-10 17:54) [63]

Кстати о птичках. В данной ситуации постановка вопроса

найдите ошибку в коде:
может вогнать испытуемого в ступор, т.к. приведен, совсем не корректный код, а человек волнуется, стрессовое состояние, может и в морду дать, что бывало. :)
Тогда спрашивать надо
перепишите правильно код:


 
Юрий ©   (2007-04-10 17:56) [64]

> [57] isasa ©   (10.04.07 17:44)

В любом случае, делать тут мне нечего, пошёл топится. :о)


 
Ega23 ©   (2007-04-10 17:56) [65]

for i:=List.Count-1 downto 0 do List.Delete(i);

Но, впрочем, дело-то не в этом. ИМХО, главное тут - желание работать.


 
_Аноним   (2007-04-10 17:58) [66]


> Gero ©  

Формулировка была такая:
"Найдите в приведенных примерах ошибки, если они есть"
и было 5 примеров - это один из них.
второй был на тему: "функция вернула PChar (result:=PChar(s)) , а s - локальная переменная типа string
еще один был вообще без ошибок.


 
default ©   (2007-04-10 18:00) [67]


> может вогнать испытуемого в ступор, т.к. приведен, совсем
> не корректный код, а человек волнуется, стрессовое состояние,
>  может и в морду дать, что бывало. :)

про морду можно поподробнее!


 
isasa ©   (2007-04-10 18:08) [68]

default ©   (10.04.07 18:00) [67]
про морду можно поподробнее!

Давно, была тут ветка о том, как на собеседовании двое не поделили индексы. А TList, он, посерьезнее будет. :)


 
Плохиш ©   (2007-04-10 18:09) [69]


> StriderMan ©   (10.04.07 17:48) [59]


> кстати про листы. обычно принято очищать листы "обратным"
> циклом от Count-1 do 0. Я, пока этого не знал, придумал
> другой способ:
>
> while List.Count > 0 do
>  List.Delete(List.Count - 1);

Фигня, это круче:
List.Delete(0);
;-)


 
isasa ©   (2007-04-10 18:15) [70]

Плохиш ©   (10.04.07 18:09) [69]

Фигня, это круче:
List.Delete(0);
;-)


Да ну, легче перегрузиться.:)


 
default ©   (2007-04-10 18:16) [71]

проще вообще List.Clear:)


 
Бишоп   (2007-04-10 18:27) [72]


> Плохиш ©   (10.04.07 18:09) [69]
> Фигня, это круче:
> List.Delete(0);

да, прочитал и вспомнил, что так и делал :)))


> default ©   (10.04.07 18:16) [71]
> проще вообще List.Clear:)

кстати для TObjectList - самое оно


 
StriderMan ©   (2007-04-10 18:27) [73]


> Бишоп   (10.04.07 18:27) [72]

это я :)


 
Юрий Зотов ©   (2007-04-10 19:03) [74]

Познавшие ДАО очищают списки так:

procedure ClearList(List: TList);
begin
 List.Clear;
end;

:o)


 
pasha_golub ©   (2007-04-10 19:03) [75]


> ferr ©   (10.04.07 17:13) [45]
>
> > А почему бы 11-классникам не дать алгоритм сортировки
> пузырем
> > как основной?
>
> Потому что это глупо. Иногда возникают  задачи где требуется
> отсортировать порядка 100 элементов, но даже в таких случаях
> рекомендуется использовать другие квадратичные алгоритмы,
>  например SelectionSort, который программируется ничуть
> не сложнее пузырька. А вот как основной надо подавать что-
> то логрифмичесое, я бы предпочёл MergerSort, хотя она и
> не по месту, зато устойчивая и достаточно простая. В java
> например реализовано именно она.

Роман, Вы заканчивали пед. ВУЗ? Вы понимаете, что такое информатика в средней неспециализированной школе и ее задачи?


 
Чапаев ©   (2007-04-10 19:13) [76]

А мне сортировка выбором всегда представлялась проще пузырьковой... В том числе и в реализации.


 
pasha_golub ©   (2007-04-10 19:20) [77]


> Чапаев ©   (10.04.07 19:13) [76]
>
> А мне сортировка выбором всегда представлялась проще пузырьковой.
> .. В том числе и в реализации.

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


 
ferr ©   (2007-04-10 19:22) [78]

> А мне сортировка выбором всегда представлялась проще пузырьковой...
> В том числе и в реализации.

Selection = выбор. Это факт - она лучше.

> Роман, Вы заканчивали пед. ВУЗ? Вы понимаете, что такое
> информатика в средней неспециализированной школе и ее задачи?

Я учусь(!) в техническом, с натяжкой сказать вузе. Ну если так подходить тогда думаю лучше контр-страйк установить..

P.S. MergeSort, опечаточка.


 
ferr ©   (2007-04-10 19:25) [79]

С вашего позволения вставлю некоторые свои "выкройки". При сортировке целых чисел мною были получены следующие результаты(мс).
Кол-во         16 32 64 128 256 512 1024 2048 4096 8192 16384 32768 65536
Bubble         0.0025 0.0085 0.0323 0.1293 0.5214 2.0936 8.3018 32.793 130.88 532.87 2151.6 8685.4 47761
Shaker         0.0025 0.0080 0.0282 0.1092 0.4288 1.6955 6.7565 26.718 106.15 426.11 1716.6 6896.2 30936
Selection 0.0024 0.0070 0.0222 0.0772 0.2831 1.0826 4.1964 16.536 65.508 263.50 1054.2 4213.4 19436
Insertion 0.0012 0.0034 0.0114 0.0416 0.1588 0.6169 2.4413 9.7193 38.740 154.76 618.77 2474.2 13597
InsertionO 0.0013 0.0033 0.0099 0.0338 0.1238 0.4723 1.8481 7.3261 29.112 116.23 463.99 1855.5 11466
QuickSort 0.0027 0.0062 0.0137 0.0300 0.0650 0.1400 0.3000 0.6400 1.3600 2.9000 6.1400 13.000 28.100
QuickSortO 0.0016 0.0040 0.0092 0.0210 0.0468 0.1000 0.2250 0.4910 1.0600 2.2800 4.8700 10.410 23.270
HeapSort 0.0027 0.0061 0.0136 0.0305 0.0678 0.1493 0.3261 0.7000 1.5400 3.3800 7.4100 15.930 37.570
MergeSort 0.0015 0.0042 0.0104 0.0251 0.0571 0.1290 0.2871 0.6339 1.3996 3.0379 6.9225 15.633 35.464


 
ferr ©   (2007-04-10 19:27) [80]

Съехало, есть основания полагать что из-за DMClient"а, ибо в блокноте всё было замечательно.



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

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

Наверх





Память: 0.62 MB
Время: 0.048 c
3-1172797089
Ш-К
2007-03-02 03:58
2007.05.20
Как получить записи с единственным значением поля?


2-1177757214
Steep
2007-04-28 14:46
2007.05.20
Диалог выбора директории


3-1172760328
Alex2006
2007-03-01 17:45
2007.05.20
Проблема с Dialect?


15-1177342559
фонк
2007-04-23 19:35
2007.05.20
А можно ли тут найти все ветки, созданные одним автором?


2-1177669220
Knight
2007-04-27 14:20
2007.05.20
Классы на базе TList...





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