Пример выполения тестового задания www.auslogics.com

Пример тестовых заданий предлагаемое AUSLOGICS . Скачать его мжно зсдесь. Могу сказать, что по не объяснимым причинам оно не было принято. Предлагаю в комментариях собирать примеры. Так будет проще разобраться что кто не так сделал, поскольку мало кто аргументирует почему тестовое не удовлетворительно. Идет просто й официальный отказ без каких либо объяснений.

Тестовые задания

Задание 1.

Решить как минимум двумя способами (простым и быстрым) следующую задачу: написать функцию, которая возвращает количество нулевых бит в символах строки (не считая нулевой символ в конце строки). Пример заголовка такой функции:


function CountZeroBits(s : PAnsiChar): Integer;

Задание 2.

Дан массив размера N из целых чисел, принимающих значения в диапазоне от 1 до M, при

этом одно число в этом массиве повторяется два раза. Найти это число за время O(N).

Возьмите в качестве примера

N   = 100

M   = 1000

Задание 3.

Написать простую программу для поиска файлов-дупликатов.

Поиск можно осуществлять только по диску «C:». Во время поиска программа должна отображать полосу прогресса и над ним имя обрабатываемого на данный момент файла или каталога. Поиск можно поставить на паузу или остановить.  Искать дубликаты нужно путем сравнивания размера файлов, даты их последнего изменения и названия (содержимое файлов сравнивать не надо, для простоты). Желательно, чтобы скорость обновления ГУИ не влияла на скорость поиска.

После поиска вывести список найденных наборов повторяемых файлов. Список должен

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

Share

Tags: , ,

23 Responses to “Пример выполения тестового задания www.auslogics.com”

  1. yumata пишет:

    Я тоже получил предложение решить тестовое задание. Сейчас отправлю в Auslogics, после получения ответа от них – сообщю.

  2. Даже если ответ будет отрицательный, оставте с комментариями, исходный код. Что бы можно было посмотреть как их не устраивает.

  3. Виталий пишет:

    Ответ,ребята, будет отрицательнымв любом случае.
    Хотелось бы услышать обратное, но….
    Вот пример:

    function fm_CalcZeroBitsS(str:pchar):integer;
    // eax -> pointer to string
    // eax <- result value
    //
    // Performance ~0.4 MB/s per MHz on ADM K10 architecture
    //
    asm
    push esi // source index
    push ecx // counter
    push edx
    mov esi,eax // save source address
    xor ecx,ecx
    xor eax,eax
    @@loop:
    // **************************************
    lodsd
    test al,al
    jz @@done
    movzx edx,al
    add ecx,dword ptr [bits_Array+4*edx]
    test ah,ah
    jz @@done
    movzx edx,ah
    add ecx,dword ptr [bits_Array+4*edx]
    bswap eax
    test ah,ah
    jz @@done
    movzx edx,ah
    add ecx,dword ptr [bits_Array+4*edx]
    test al,al
    jz @@done
    movzx edx,al
    add ecx,dword ptr [bits_Array+4*edx]
    jmp @@loop
    // **************************************
    @@done:
    mov eax,ecx
    pop edx
    pop ecx
    pop esi
    end;

    bits_Array – заранее подготовленный массив (int32) с количеством нулевых бит для каждого байта.

    Кто предложит что-то быстрее?
    При длине массива 1e8 байт у меня на Атлоне 3ГГц
    этот код выполняется 81 мс, а на Intel E6600 – 68 мс.
    Возможно с использованием SSE или MMX или
    хотя-бы 64-битных инструкций можно еще что-то дожать,
    но далеко не все версии Delphi это понимают.

  4. Выложите на файлообменнике код, что бы можно было посмотреть воочию, как оно работает на готовом проекте, а не городить самому тестовый проект. К тому же, в случае неудачного ответа это поможет разобраться, что все таки не так делалось.

  5. [...] обсуждались примеры выполнение тестовых задания auslogic.com и searchinform.ru. В данной статье предлагаю обсудить пример [...]

  6. Николаев Сергей пишет:

    Аналогичный случай произошел в авиации :-)))
    Украина. Вакансия от них

    – знание и опыт разработки на Delphi, отличные знания VCL/RTL
    – глубокие знания Windows API
    – чтение технического английского, элементарные навыки письма.

    Обязанности:

    – разработка программ и вспомогательных модулей на Delphi
    – работа с Deskzilla (Bugzilla), SVN (Tortoise SVN)
    – проведение технических исследований и экспертиз.

    Тестовое задание:
    Вам требуется написать простую программу для просмотра графических файлов. Слева
    будет дерево каталогов, а справа миниатюры (thumbnails) графических файлов в каталоге,
    выбранном в дереве слева. Достаточно поддерживать лишь JPEG / BMP файлы. При
    просмотре каталога с очень большим количеством графических файлов программа не
    должна подвисать или не позволять переключиться на другой каталог.

    Сделал за 2 дня с использованием виндовой gdi+. Написано с использованием потоков, переключает папки мгновенно, во время построения эскизов позволяет открыть любой файл в полном просмотре. Скорость построения та же, что у виндового проводника – проверил на папке с 2000 фото (оно и не удивительно, метод реализации тот же).

    вот ответ – задание НЕ подошло:

    Добрый день,

    Большое спасибо за выполненное Вами задание. Ваше решение было выполнено на достойном уровне, однако сравнив решение с решениями других кандидатов и учитывая узкую специфику предстоящих проектов, мы не готовы в настоящий момент сделать Вам предложение. Мы добавим Ваше резюме в нашу базу на случай, если появится подходящая вакансия. Я хотел бы еще раз поблагодарить Вас за потраченное время на решение заданий и пожелать Вам успеха в дальнейшем поиске работы!

    С уважением,
    Шведов Андрей
    HR менеджер

    Auslogics Software Pty Ltd
    http://www.auslogics.com

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

  8. [...] Мы продолжаем выполнение тестовых заданий пролагаемых кандидатам на вакансии Delphi programmer. Рассмотрим задание предлагаемое  компанией  auslogics.com.  Пред идущее тестовое задание этой компании обсуждалось здесь . [...]

  9. Кошка пишет:

    Да, похоже за год компания так и не нашла ни 1 кандидата. Все прошлогодние вакансии висят. Очень странно. Мне тоже был отказ.

  10. Действительно, было бы интересно увидеть тестовое задание человека , который прошел. Подозреваю, что там все делалось при помощи Win Api функций и не использовалиcь стандартные дельфийские компоненты. Не совсем понятно почему ищут дельфи программиста, если такое делают в основном те кто пишут на С. Хотя никто не мешает дельфи программисту писать все с использование Win Api функций.

  11. Ярик пишет:

    сорри, не видел эту тему, и наоффтопил про auslogics в теме про searchinform.

    кому интересно – вот моя реализация тестового задания, которая прошла у них, и меня приняли на работу…
    http://turbobit.net/byl8pf257a55.html

    А теперь по теме:
    Это не совсем австралийская контора, там одни русскоязычные. И там действительно большая текучка кадров. Но контора серьезная, вся работа отлажена.

    На самом деле там ооочень сложные проекты. И реализация сложна. Примеры программных продуктов: оптимизация системы, дефрагментация диска, антивирус (сложно его так назвать), восстановление данных… и тп… и все конечно через win32, а как мы знаем нет ничего тупее и сложнее чем логика win32)))
    Так что думаю что если вам отказали, значит сэкономили вам 2 недели испытательного срока… Если толковый программист, думаю они бы с руками забрали

    Также там счетчик времени… отошел в туалет, покушать, отвлекли – нажимаешь на паузу, так как программа пишет все действия… чтоб наработать минимум 7 часов приходилось тратить от 10 часов в день…

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

  12. Ярик пишет:

    Забыл сказать, что это все происходило в сентябре 2010.. сейчас просто много времени ушло…они оказывается до сих пор ищут программистов на свой продукт)) А я перешел на другие языки.. на Делфи больше не программирую.. разве что старые проекты поддерживаю…

  13. Презалил код на наш сайт скачать можно

  14. да они до сих пор ищут программиста и предлагают различные тестовые задания.

  15. Ярослав, а для чего необхолдимо было реализовыват интерфейс в приложинии? т.е. это было их требование или они настаивали про это. в Тестовом задании ничего про это не было.

  16. Ярик пишет:

    Там было условие – чтоб не залипало гуи. Если изучишь код, от этого интерфейса наследуется форма, и реализует его методы.. таким способом можно передать саму форму как интерфейс в любой поток одной строчкой , и не реализовывать и объявлять множество каллбек функций, и проверять потом в потоке их на Assigned…
    Благодаря этому интерфейсу легко управлять гуи формы, и кстати без критических секций и другой синхронизации.

  17. Frenk пишет:

    Случайно нашел это обсуждение….в прошлом году тоже пытался устроиться в Auslogics, сделал первые 2 задания (поиск нулевых бит в строке и работа с массивом), на 3-ем с файлами застрял – с потоками я еще не умел работать. Хочу выложить свой вариант функции определения нулевых бит в строке

    function CountZeroBits4(s:PAnsiChar):byte;
    var
    i,k:integer;
    begin
    k:=0;
    for i:= 0 to length(s)-1 do
    case s[i] of
    #0: inc(k,8);
    #1: inc(k,7);
    #2: inc(k,7);
    #3: inc(k,6);
    #4: inc(k,7);
    и так далее вплоть до
    #253: inc(k,1);
    #254: inc(k,1);
    end;
    result:=k;

    //программно создав Memo и записав туда строки, подсчитав в каждом конкретном символе
    // количество нулевых бит, прибавляем в цикле соответственно каждой букве
    // соответствующее количество нулевых бит
    // наиболее быстрая из всех вариантов, возможно, что на ассемблере будет работать быстрее (сначала преобразуем строку в PAnsiChar)

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

  19. [...] Auslogics, с которыми можно ознакомиться здесь   и здесь . Однако их обсуждение плавно перетекло в комментарии [...]

  20. Дмитрий пишет:

    Я один как видимо из немногих кто успешно прошел этот тест. И даже поработал некоторое время в этой компании. Вылетел по собственной дурости. Скажу сразу, что прошел к ним не сразу. До этого тоже пробовал – не проходил. И только попав в компанию, понял почему. Вы конечно извините, но таким кодом что выложен тут – вы никогда туда не пройдете. Это похоже на подделку студента-первокурсника. Серьезно. Не обижайтесь, но это так. Что конкретно тут не так – не буду. Во первых давал соглашение о не разглашении, во вторых вы программисты, должны думать сами. Дам только две подсказки:
    1. Выкиньте метод синхронизации потока – есть другие, более правильные способы. Ваш способ нарушает несколько правил ООП.
    2. Обязательно прочтите это http://edn.embarcadero.com/article/10280 – это не просто так написано, поверьте на слово.

    З.Ы. А контора неплохая, мне понравилось у них. Жаль вылетел… (

  21. Дмитрий, спасибо за полезную ссылку. Хотелось бы поблагодарить за объективную критику, но в высказываниях вида “я то то знаю но не скажу” благодарить не за что.

  22. Сергей пишет:

    Евгений, можете восстановить ссылку из поста http://fk-uran.com.ua/primer-vypoleniya-testovogo-zadaniya-www-auslogics-com-2/comment-page-1/#comment-2617 ?

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

Leave a Reply