Re: Тестовое задание C++ win
От: KhConstantine Россия  
Дата: 02.05.10 14:47
Оценка:
Здравствуйте, amberovsky, Вы писали:

A>Здравствуйте.

A>При попытке устроится в одну фирму прислали "удалённое" тестовое задание.
Мне пришло такое задание от DrWeb. Кто-то еще так развлекается?
В общем, побывал я в DrWeb на собеседовании и даю правильный с их точки зрения ответ:
По первому заданию:

void f_drWeb( size_t n )
{
     using namespace std;
     vector<char> a (n), b(n);
     g( &a[0], &b[0], n );
     cout<<endl<<"func f_drWeb said:"<<"a="<<&a[0]<<" b="<<&b[0];
};



По второму заданию:



int main(int argc, char* argv[])
{
    const char *locId="Russian";
    // Для C
    if(argc>1)
    {
        printf("\n printf said: %s", argv[1]);
        setlocale(LC_ALL, "Russian"); // "Russian" - для винды и русского. Это необходимо для C, 
                                      // но недостаточно для wcout
    }      

    //Для потоков
    locale loc(locId);
      locale::global(loc); // Это необходимо для wcout(setlocale недостаточно).
    wcout.imbue(loc);    // Применяем к wcout, потому что wcout УЖЕ открыт. Действует и на stdout
                         // так что в принципе можно обойтись и без setlocale
    if(argc>1)
    {
        wcout<<endl<<"wcout said:"<<argv[1];
    };
return 0;
}



A>
A>Какие проблемы Вы видите в этих фрагментах кода и как предлагаете их решать?
A>1.
A>void g( char *, char *, size_t );
A>void f( size_t n )
A>{
A> char *a = new char[n];
A> char *b = new char[n];
A> g( a, b, n );
A> delete [] b;
A> delete [] a;
A>}

A>2.
A>int main(int argc, char* argv[])
A>{
A> if( argc > 1 )
A>  printf( argv[1] );
A> return 0;
A>}

A>



Кроме того, можете скачать http://piterludi.com/fordeveloponbox/stlfuns.zip
В этом проекте (VC++ 2008) я продемонстрировал также поведение виртуальных функций, вызываемых из конструкторов и деструкторов — вопрос,
который почему-то нередко возникает на собеседованиях. Также немного побаловался с промышленным дизайном для этой же задачи.
Хотя по ходу собеседования я и сделал вывод, что промышленный дизайн и общепринятые подходы они считают
ненужным усложнением и ретроградством.

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

Если будете у них на собеседовании — в момент, когда от вас потребуют что-либо написать, постарайтесь не отвлекаться
на вопросы "экзаменаторов", "заторапливание" и попытки вывести вас из себя. Иначе наделаете таких ляпов, что самому потом будет стыдно.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.