Компьютерный форум
Правила
Вернуться   Компьютерный форум > Форум программистов > Теория программирования > Игры разума
Перезагрузить страницу Внимание, аккредитация отсутствует свободное место
Ответ
 
Опции темы Опции просмотра
  (#1 (permalink)) Старый
Кошмар Кошмар вне форума
Member
 
Сообщений: 2,694
Сказал(а) спасибо: 0
Поблагодарили 1 раз в 1 сообщении
Регистрация: 23.04.2005
По умолчанию Внимание, аккредитация отсутствует свободное место - 04.04.2006, 20:17

Ранее поднималась эта тема, но тогда в шутку.

Сейчас, в связи с отсутствием свободного места на сервере, повальной безграмотностью участников форума, и огромного количества "мёртвых душ" действительно введён тест на комп. грамотность.

Администрацией форума предложено, а мной подготовлен ряд вопросов, на которые необходимо ответить в этой ветке.
Для "аккредитации" на форуме достаточно ответить хотя бы на один вопрос. Вопросов предложенно достаточно, так что всем хватит. К тому же многие из них неоднозначны, и всегда можно подправить того, кто ответил раньше, что тоже "идёт в зачёт".

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

для тех, кто на форуме "только спрашивает", думаю заново зарегистрироватся трагедией не станет.

Не прошедшие отбор до 4 мая 2006 года будут подвергнуты чистке.

Вопросы:

Будьте внимательны, некоторые вопросы сформулированы провокационно.


Вопрос 1
Что некорректно в следующем коде?
Код:
#include <string>
void
main() {
    string a = "foo";
    cout << a << endl;
    return 1;
}
Необходимо добавить using std::string;
Необходимо добавить #include <iostream>;
Необходимо выполнить пункты 1 и 2 и добавить using namespace std;
Нет правильного ответа.
Аргументируйте ответ


Вопрос 2
Выберите самый точный вариант вычисления суммы положительных чисел:
Код:
double sum(vector<float> &v)
{
     return accumulate(v.begin(), v.end(), 0.0);
}

double sum(vector<float> &v)
{
     sort(v.begin(), v.end());
     return accumulate(v.begin(), v.end(), 0.0);
}

double sum(vector<float> &v)
{
     sort(v.begin(), v.end(), greater<float>());
     return accumulate(v.begin(), v.end(), 0.0);
}
Аргументируйте ответ


Вопрос 3
В чём разница между public и private наследованием?
private наследования не существует.
нет никакой разницы
при private наследовании все методы базового класса становятся приватными, при public - публичными.
public наследует интерфейс, private - реализацию.
Аргументируйте ответ


Вопрос 4
Какой контейнер лучше всего подходит для хранения объектов, если чаще всего обработка будет происходить по принципу FIFO?
vector
list
deque
map
Другой стандартный контейнер
Стандартные контейнеры не удовлетворяют требованию, и придётся написать свой.
Аргументируйте ответ

Вопрос 5
Код:
class Foo
{
public:
    Foo(int j) { i=new int[j]; }
    ~Foo() { delete i; }
private:
    int* i;
};

class Bar: Foo
{
public:
    Bar(int j) { i=new char[j]; }
    ~Bar() { delete i; }
private:
    char* i;
};


void main()
{
    Foo* f=new Foo(100);
    Foo* b=new Bar(200);
    *f=*b;
    delete f;
    delete b;
}
Перечислите все проблемы, которые вы видите в данном коде


Вопрос 6
Какие из следующих стандартных контейнеров позволяют найти в них элемент (по его значению) за O(ln(n))?
std::vector
std::list
std::deque
std::set
std::multiset
std::hash_set
сортированный std::vector
сортированный std::list
сортированный std::deque
сортированный std::set
сортированный std::multiset
сортированный std::hash_set
Аргументируйте ответ, прокомментируйте правильность постановки вопроса.


Вопрос 7
Базы данных/SQL.

Вам нужно создать в MySQL таблицу со следующей структурой

CREATE TABLE `URL_IDS` (
`ID` INTEGER(11) NOT NULL AUTO_INCREMENT,
`PICTURE_ID` INTEGER(11) NOT NULL UNIQUE,
`URL` VARCHAR(255) NOT NULL,
PRIMARY KEY (`ID`, `URL`))TYPE=MyISAM ;


и быстро вставить в нее 100M записей из файла.
Опишите, как бы вы стали реализовывать эту задачу.



Вопрос 8
Есть приложение, написанное на C++ под Linux, производительность которого необходимо серьезно улучшить. Расскажите, как можно найти его «узкие места» и какие инструменты вы станете для этого использовать.


Вопрос 9
Есть класс CodeGenerator, который умеет генерить код на разных языках.
Код:
class CodeGenerator
{
public:
    enum Lang {JAVA, C_PLUS_PLUS, PHP};
    CodeGenerator(Lang language) { _language=language; }
    std::string generateCode()
    {
        switch(_language) {
        case JAVA:        //return generated java code
        case C_PLUS_PLUS: //return generated C++ code
        case PHP:         //return generated PHP code
        }
        throw new std::logic_error("Bad language");
    }
    std::string someCodeRelatedThing() // used in generateCode()
    {
        switch(_language) {
        case JAVA:        //return generated java-related stuff
        case C_PLUS_PLUS: //return generated C++-related stuff
        case PHP:         //return generated PHP-related stuff
        }
        throw new std::logic_error("Bad language");
    }

private:
    Lang _language;
}
Исходя из предположения, что количество языков будет добавляться, предложите refactoring кода. Аргументируйте преимущество вашего кода над существующим.


Вопрос 10

Есть реализация класса scoped_lock
Код:
class scoped_lock {
public:
    explicit scoped_lock(Mutex& mx, bool initially_locked=true)
        : m_mutex(mx), m_locked(false) {
        if (initially_locked) lock();
    }
    ~scoped_lock() {
        if (m_locked) unlock();
    }
    void lock() {
        if (m_locked) throw lock_error();
        m_mutex.lock();
        m_locked = true;
    }
    void unlock() {
        if (!m_locked) throw lock_error();
        m_mutex.unlock();
        m_locked = false;
    }

    bool locked() const { return m_locked; }
private:
    Mutex& m_mutex;
    bool m_locked;
};
Эта реализация:
Может приводить к ситуации, когда m_locked равно true, а мьютекс m_mutex не захвачен;
Может приводить к вызову функции abort() при штатном использовании;
Почти один в один скопирована с реализации библиотеки boost и не содержит ошибок.
Аргументируйте свой ответ


Вопрос 11

Наша система должна принимать от партнёра сообщения, регулярно и в большом количестве присылаемые по сети, и сохранять их у себя. Мы пытаемся одновременно удовлетворить двум требованиям: I — как можно реже отказывать партнёру в приёме сообщений и II — ни в коем случае не терять сообщения.
Как нам следует поступить:
записывать сообщения в транзакционную базу данных, после чего подтверждать партнёру получение
записывать сообщения на жёсткий диск, подтверждать получение, а потом записывать сообщение ещё на несколько дисков для сохранности
записывать сообщение на несколько дисков, подтверждать получение
записывать сообщение на несколько дисков, подтверждать получение и после этого записывать сообщение в транзакционную базу
Аргументируйте свой ответ


Вопрос 12

Наше приложение отвечает на большое количество запросов пользователей. Сформированный и готовый к отправке пользователю результат представляет собой русский текст и занимает около 100 килобайт. Для формирования результата используется ресурсоёмкий алгоритм. Известно, что вероятность повторного запроса в течение суток довольно велика, а данные, по которым строится результат, постепенно обновляются в течение суток. Известно также, что если данные не меняются, то вероятность попадания запроса в кеш зависил от размера кеша следующим образом: если размер кеша 2 гигабайта, то вероятность составляет 50%, если размер кеша 20 гигабайт, то вероятность 80%, если размер кеша 200 гигабайт, то вероятность 95%.
Какой размер кеша вы бы выбрали для случая, когда данные меняются? Какие бы ещё исследования вы бы провели?


Вопрос 13

Есть две реализации класса string. Одна реализация содержит дефект, не позволяющий использовать её в многопоточных приложениях. Вторая реализация имеет неоптимальную реализацию нескольких функций и нестандартный интерфейс.
Что бы вы предпочли:
Использовать первую реализацию и обойтись без многопоточных приложений
Использовать вторую реализацию
Использовать вторую реализацию, но перетащить в неё более оптимальную реализацию
Использовать первую реализацию, но модифицировать её для поддержки многопоточности
Найти стороннюю реализацию строки, отвечающую вашим требованиям
Разработать свою реализацию
Аргументируйте свой ответ

Вопрос 14
Что напечатает программа?
Код:
<?
my $i = "";
if (defined($i)) {
  print "defined";
} else {
  print "not defined";
}
?>
defined
not defined
зависит от реализации Perl


Вопрос 15
Что напечатает программа?
Код:
<?
$a = "0";
if ($a) {
    print "A";
} else {
    print "B";
}
?>
A
B
зависит от реализации Perl
при выполнении интерпретатор выдаст ошибку, т.к. нельзя однозначно интерпретировать выражение в условии

Вопрос 16
Что напечатает программа?
Код:
<?
$a = "000";
if ($a) {
    print "A";
} else {
    print "B";
}
?>
A
B
зависит от реализации Perl
при выполнении интерпретатор выдаст ошибку, т.к. нельзя однозначно интерпретировать выражение в условии


Вопрос 17
Что напечатает программа?
Код:
<?
@a = (10, 1, 2);
print join(" ", sort(@a));
?>
10 1 2
1012
1 2 10
1210
1 10 2
1102
1



Вопрос 18
Чему равно $1 после выполнения?
Код:
$title = "Happy new 2004 year";
$title =~ m/^.*(d+) year$/;
Happy new
appy new 2004
Happy new 2004
2
4
2004




Вопрос 19
Как отсортировать массив строк в обратном порядке?
Код:
reverse(sort(@strings));

sort {$b <=> $a} (@strings);

sort {$b <> $a} (@strings);
Предложите свой вариант



Вопрос 20
Чему равно $1 после выполнения?
Код:
$title = "Lambada 2004";
$title =~ m/([0-4]*)/;
4
004
2
2004
пустой строке
Lambada (после последнего символа “a” - пробел)
Поясните, если нужно




Вопрос 21
Дана строка, представляющая собой корректное арифметическое выражение языка C. В выражении допускаются только целые числа, переменные, состоящие только из букв, операции +, -, *, /, круглые скобки и вызовы функций. Имя функции может состоять только из букв, параметры функций могут состоять из описанных выше арифметических выражений. Известно, что круглые скобки в данном выражении имеют уровень вложенности <= 1. Требуется выделить из строки выражения в круглых скобках (например, дано f(x, y(z));, нужно выделить x, y(z) ).
Какое из предложенных ниже регулярных выражений вы будете использовать для этой цели?
(Для наглядности в приведённых выражениях опущены сохраняющие скобки)
Код:
([^()]*?)

([^()]*)

(.*)

(.*?)

(([^()]|([^()]*))*)

([^()]*(([^()]))*)

([^()]*((.*))*)
Предложите свой вариант



Вопрос 22
Дан текстовый файл. Необходимо выделить из него 50 наиболее часто повторяющихся строк.
ваше решение


Вопрос 23
Как сравнить (просто узнать совпадают или не совпадают, список различий получать не требуется) два очень больших (таких, что команда diff говорит "memory exhausted" текстовых файла?
ваше решение


Вопрос 24
Дан скрипт:
Код:
#!/bin/sh -e
action1
action2
action3
action${i} — некоторые существующие в системе программы, прописанные в $PATH. Известно, что action1 и action2 никак не зависят друг от друга и могут выполняться параллельно, однако action3 требуется, чтобы и action1, и action2 успешно завершили свою работу.

Что необходимо изменить в скрипте, чтобы распараллелить работу action1 и action2, но запускать action3 только после успешного завершения action1 и action2?
ваше решение

Вопрос 25
Имеется файл, каждая строка которого представляет собой запись из двух полей. Поля разделены табуляцией. Первое поле — время в time_t, второе поле — URL. Задача: для каждого встречающегося в файле URL выделить запись, которой соответствует самое раннее время.
ваше решение



Я (как составитель) естественно от выполнения теста освобождаюсь.


импортирован с progz.ru
Ответить с цитированием
  (#2 (permalink)) Старый
Alexiski Alexiski вне форума
Любитель давать советы
 
Сообщений: 4,266
Сказал(а) спасибо: 27
Поблагодарили 54 раз(а) в 54 сообщениях
Регистрация: 16.10.2005
По умолчанию 05.04.2006, 00:48

Странно. Вроде бы первое апреля давно прошло..
А тем, кто принципиально не хочет дурью маятся предлагается добровольно покинуть форум ?
Ответить с цитированием
  (#3 (permalink)) Старый
Garik Garik вне форума
Member
 
Сообщений: 6,201
Сказал(а) спасибо: 0
Поблагодарили 1 раз в 1 сообщении
Регистрация: 07.06.2002
По умолчанию Re: Внимание, аккредитация! - 05.04.2006, 13:38

Цитата:
Originally posted by Кошмар
[b]Вопрос 1
Что некорректно в следующем коде?
Код:
#include <string>
void
main() {
    string a = "foo";
    cout << a << endl;
    return 1;
}
необходимо добавить using namespace std;
либо убрать return 1, либо сделать int main()


Что-то у тебя не хватает вариантов ответов...
Ответить с цитированием
  (#4 (permalink)) Старый
Кошмар Кошмар вне форума
Member
 
Сообщений: 2,694
Сказал(а) спасибо: 0
Поблагодарили 1 раз в 1 сообщении
Регистрация: 23.04.2005
По умолчанию 05.04.2006, 18:30

Ну если чесно, то вопросы не я придумывал - это вопросы для поступления на работу в Яндекс.


импортирован с progz.ru
Ответить с цитированием
  (#5 (permalink)) Старый
Fuud Fuud вне форума
Member
 
Сообщений: 4,076
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 03.09.2004
По умолчанию 06.04.2006, 03:12

А почему только С++ и perl? Я хочу Delphi!
Ответить с цитированием
Ads.
  (#6 (permalink)) Старый
Alexiski Alexiski вне форума
Любитель давать советы
 
Сообщений: 4,266
Сказал(а) спасибо: 27
Поблагодарили 54 раз(а) в 54 сообщениях
Регистрация: 16.10.2005
По умолчанию 06.04.2006, 07:54

А еще есть такой уважаемый форумчанин - Винитарх.
А если честно, ничего более бредового подобных вопросов придумать невозможно. Несколько раз приходилось проходить такие испытания в реале, пару раз - в интернете. Вываливают четыре варианта, ни один из которых не описывает ситуацию однозначно... И гадай, что автор теста хотел сказать.
Ответить с цитированием
  (#7 (permalink)) Старый
Dian Dian вне форума
Member
 
Сообщений: 5,243
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 17.09.2004
По умолчанию 06.04.2006, 15:21

Цитата:
Originally posted by Alexiski
[b]И гадай, что автор теста хотел сказать.
Хотел, чтоб ему случайно не нашли замену!
Ответить с цитированием
  (#8 (permalink)) Старый
StarLey StarLey вне форума
Новичок
 
Сообщений: 11
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 28.03.2006
По умолчанию 06.04.2006, 19:27

Запудрить мозги он хотел. Вот и все...
Ответить с цитированием
  (#9 (permalink)) Старый
Dian Dian вне форума
Member
 
Сообщений: 5,243
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 17.09.2004
По умолчанию Re: Внимание, аккредитация! - 06.04.2006, 19:37

Цитата:
Originally posted by Garik
[b]Что-то у тебя не хватает вариантов ответов...
Это вопрос с подвохом
Ответить с цитированием
  (#10 (permalink)) Старый
Кошмар Кошмар вне форума
Member
 
Сообщений: 2,694
Сказал(а) спасибо: 0
Поблагодарили 1 раз в 1 сообщении
Регистрация: 23.04.2005
По умолчанию 06.04.2006, 22:17

Цитата:
Будьте внимательны, некоторые вопросы сформулированы провокационно.
Там же предупредили

Ну что, ниужели вопросы не интересные?


импортирован с progz.ru
Ответить с цитированием
  (#11 (permalink)) Старый
[GANQ] QWERTY [GANQ] QWERTY вне форума
Member
 
Сообщений: 55
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 30.12.2005
По умолчанию 18.08.2006, 21:22

Некоторые интересные.
Вопрос 12 чего-то совсем не понял
Маленький еще...
Ответить с цитированием
  (#12 (permalink)) Старый
Narwal Narwal вне форума
Member
 
Сообщений: 1,039
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 07.10.2003
По умолчанию 09.10.2006, 13:49

Цитата:
необходимо добавить using namespace std;
либо убрать return 1, либо сделать int main()
8)
Что-то у тебя не хватает вариантов ответов...
:wink:
Кстати, говоря, убрать return 1 не всегда поможет.
Вроде бы стандартно main должна возвращать int, т. е. int main().
MinGW с gcc-3.4.2 вчера заругался на void main() и отказался ее компилировать. Сказал, что должно быть int main().
Ответить с цитированием
Ads
  (#13 (permalink)) Старый
Vladimir the Red Sunny Vladimir the Red Sunny вне форума
Member
 
Сообщений: 4,232
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 15.05.2003
По умолчанию 12.10.2006, 04:06

А что разве конструкция вида:
void
main()
...
будет вообще компилироваться? Я имею ввиду, что воид на одной строке, а майн - на следующей....
Ответить с цитированием
  (#14 (permalink)) Старый
Narwal Narwal вне форума
Member
 
Сообщений: 1,039
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 07.10.2003
По умолчанию 12.10.2006, 12:58

Цитата:
А что разве конструкция вида:
void
main()
...
будет вообще компилироваться? Я имею ввиду, что воид на одной строке, а майн - на следующей....
Ага, будет.
Ответить с цитированием
  (#15 (permalink)) Старый
Dian Dian вне форума
Member
 
Сообщений: 5,243
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 17.09.2004
По умолчанию 12.10.2006, 13:25

Цитата:
Я имею ввиду, что воид на одной строке, а майн - на следующей....
Компилятору на разрывы строк плевать
Ответить с цитированием
Ответ

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
свободное место evgeniy1 Любые вопросы от новичков 8 02.03.2012 06:30
Куда пропадает свободное место на диске? Yureckiy Windows XP 3 10.01.2012 10:14
Не диске С пропало свободное место. Мастер Любые вопросы от новичков 14 13.03.2011 12:10
Неправильно определяет свободное место! Nickifg Накопители 8 03.09.2010 11:38
Программа AVZ забирает себе все свободное место на диске. Как исправить? KSe7 Любые вопросы от новичков 3 21.02.2010 03:40
Пропало более 20 Гб места на жестком диске, куда делось свободное место? Pill Любые вопросы от новичков 34 02.11.2008 16:37
Windows XP сильно увеличилась по размеру, куда девается свободное место? iva4333 Любые вопросы от новичков 14 01.10.2008 17:58
Исчезает всё свободное место на диске Gavrick Операционная система Windows 8 10.09.2008 15:09
Пропадает свободное место с диска С. dimkin Любые вопросы от новичков 14 07.09.2007 15:15
Помогите, что-то съело все свободное место на диске irinahk Компьютерная безопасность 3 13.08.2007 10:48
Передвинуть белые шары на место черных, а черные - на место белых ZN Lisp 1 27.04.2006 08:01
Как определить свободное место на сервере Graf_L Delphi 0 30.06.2005 16:57



Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.
Нardforum.ru - компьютерный форум и программирование, форум программистов