crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

3 страниц V   1 2 3 >  
Ответить в данную темуНачать новую тему
> Полезные задачи, упражнения, тесты по ..., делимся интересными задачами по программированию и не только
kwisp
  опции профиля:
сообщение 10.9.2010, 14:03
Сообщение #1


астарожна ынтжинэр
*****

Группа: Участник
Сообщений: 1404
Регистрация: 26.11.2008
Из: ТаганрогРодинаЧехова
Пользователь №: 435

Спасибо сказали: 113 раз(а)




Репутация:   23  


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

П.С.
столкнулся с тем что интересных и полезных задач и упражнений на закрепление знаний скудно мало....
вот сейчас ищу полезные задачи по stl и пока безуспешно....
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Алексей1153
  опции профиля:
сообщение 10.9.2010, 14:17
Сообщение #2


фрилансер
******

Группа: Участник
Сообщений: 2939
Регистрация: 19.6.2010
Из: Обливион
Пользователь №: 1822

Спасибо сказали: 215 раз(а)




Репутация:   34  


kwisp, вот совсем недавно встретилась простая на первый взгляд задача : в C++ есть функция strstr, которая ищет подстроку в строке. Понадобился аналог для байтовых массивов (существует не везде реализованная функция memmem, но в арсенале C++ студии её не оказалось)

Собственно, реализовать наибольшую скорость поиска )
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
kwisp
  опции профиля:
сообщение 10.9.2010, 14:38
Сообщение #3


астарожна ынтжинэр
*****

Группа: Участник
Сообщений: 1404
Регистрация: 26.11.2008
Из: ТаганрогРодинаЧехова
Пользователь №: 435

Спасибо сказали: 113 раз(а)




Репутация:   23  


Цитата(Алексей1153 @ 10.9.2010, 15:17) *
о в арсенале C++ студии её не оказалось

не понял. поясни пожалуйста что такое С++ студия?

Алексей1153,
по моему задача элементарная для std::vector<char> и find.
к чему реализовывать что то?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Алексей1153
  опции профиля:
сообщение 10.9.2010, 14:53
Сообщение #4


фрилансер
******

Группа: Участник
Сообщений: 2939
Регистрация: 19.6.2010
Из: Обливион
Пользователь №: 1822

Спасибо сказали: 215 раз(а)




Репутация:   34  


kwisp, не студиЯ , а студиИ .

Ну реализуй, только char тут ни при чём, тогда уж unsigned char :) Про zero-terminator забудь тоже

а, да, забыл уточнить - искать надо в заданных массивах, это не обязательно вектор. Это может быть, к примеру, маппинг файла. Копировать сначала 500 метровый файл в озу некузяво было бы :)

вот я о чём только что подумал (точно!) - можно же переопределить аллокатор у вектора, а потом выделить размер в точности как у исходного буфера. Тогда поиском можно из STL воспользоваться. Только я никогда не переопределял, надо узнать, как это делается ))

Сообщение отредактировал Алексей1153 - 10.9.2010, 14:45
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
kwisp
  опции профиля:
сообщение 10.9.2010, 14:59
Сообщение #5


астарожна ынтжинэр
*****

Группа: Участник
Сообщений: 1404
Регистрация: 26.11.2008
Из: ТаганрогРодинаЧехова
Пользователь №: 435

Спасибо сказали: 113 раз(а)




Репутация:   23  


Цитата(Алексей1153 @ 10.9.2010, 15:44) *
не студиЯ , а студиИ .

так что это такое?
Цитата(Алексей1153 @ 10.9.2010, 15:44) *
искать надо в заданных массивах, это не обязательно вектор.

по-моему вектор полностью совместим с массивом.
Цитата(Алексей1153 @ 10.9.2010, 15:44) *
Это может бысь маппинг файла, к примеру. Копировать сначала 600 метровый файл в озу некузяво было бы

ну там есть своя технология работы с громадными файлами.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
igor_bogomolov
  опции профиля:
сообщение 10.9.2010, 15:15
Сообщение #6


Профессионал
*****

Группа: Сомодератор
Сообщений: 1215
Регистрация: 22.3.2009
Из: Саратов
Пользователь №: 630

Спасибо сказали: 235 раз(а)




Репутация:   29  


Цитата(kwisp)
Давайте делиться интересными задачами по программированию, встречающимися, к примеру, на собеседованиях и не только. Тестами и упражнениями по языкам и разделам программирования.

Есть такой интересный ресурс http://www.quizful.net/. Иногда прохожу там тестики. Сейчас зашел и с удивлением обнаружил там тест по Qt. Прошел его минуты за три и даже умудрился ответить не правильно. К сожалению не получится дать ссылку на вопрос, поэтому скопирую

Слоты(slots) в отличие от сигналов(signals) могут быть ещё:
virtual
public
protected
private
Угадайте правильный ответ. Удивлю всех - это public :lol:
Цитата(пояснение к ответу на вопрос)
Пояснение: Сигналы всегда public ( public signals: ), также они не могут быть объявлены virtual.

И еще из комментариев к вопросу (видимо от автора теста)
Цитата
Это вопрос на основы Qt - начинающие в хэдэрах не копаются. Вопрос составлен на основе официальной документации и работ сотрудников Qt. Вот Вам, udjin, вопрос: "Если сигналы таки защищённые , то как они передаются между разными объектами? " На мой взгляд, они реализованы как protected для внутренних нужд и , видимо , со своими ухищрениями, а само поведение и характер синалов больше всего соответствует спецификатору public.
Но не смотря на это ресурс не плохой.

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

--------------------------------------------------------------------------------------------

По теме, не знаю будет ли кому интересно, но мне однажды для теста по одной удаленной вакансии дали такой тест
Раскрывающийся текст
#include <string>

using namespace std;


class Base
{
public:
    Base(const string& rs) { base_s = rs;}
    ~Base() {};

    virtual void f() {};
    virtual double f() {};

    int x(int i) {};
    int x(double i) {};

    const string base_s;
    string just_string;
}


class Derived : Base
{
public:
    Derived ()
        : Base( Der_s = "Derived" )
        , s1(base_s)
        , s2(s1)
        , s3(s2)
    {
        v();
        cout << Grand_s;

        buffer = (char*)new char[100];
                
        try {
            string str = new string;
        }
        catch (bad_alloc mem)
        {
            cout << "issue";
            throw;        
        }
    };

    string Der_s;

    virtual int f() {};

    int x(const string&) {};

    virtual Derived operator=(const Derived& der)
    {
        s2 = der.s2;
        s1 = der.s1;
        s3 = der.s3;
        Der_s = der.Der_s;
    }

    string s2;
    string s1;
    string s3;

    virtual v()
    {
           Der_s = "inited";
    }
    
    char* buffer;
};


class Widget: public Base
{
public:
    Widget(int i)
    {
    
    };
    Widget(Window wind) { w = wind };

    ostream& operator<<(const ostream& os)
    {
        os << s;
    };

    operator Window() { return w; }


    Widget& operator+(Widget& rw)  // what is the best - member or standalone operator?
    {
        return *this;
    }

    string s;
    Window w;
}

class Grand : public Derived
{
public:
    Grand()
    {
        for (i=0; i<10; i++);
        {
            auto_list.push_back( new Widget(i) );
        }

        auto_list.sort();

        list<auto_ptr<Widget*>>::iterator it = auto_list.begin();

        while( it < auto_list.end() )
        {
            cout << it;
        }


        widget_vector.reserve(100);
        for (int i=0; i<100; i++)
        {
            widget_vector[i] = new Widget(i);
        }

        loop_all (&widget_vector[0], widget_vector.size());
    }

    void v()
    {
        cout << Grand_s;
    }

    void loop_all(Base* der_array, size_t size)
    {
        for (int i=0; i < size; i++)
        {
            cout << *der_array;
            der_array++;        
        }
    }

    list< auto_ptr<Widget*>> auto_list;

    vector<Widget> widget_vector;

    string Grand_s;
};

int main (int argc, char* argv[])
{
    Derived der;
    der.x(1);
    
    Base* base = (Base*) 0;
    delete base;
    
    base = (Base*) 1;
    delete base;    
    
    return 0;
}
Нужно было найти как можно больше ошибок. Я часа 3-4 на это потратил :)


Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
kwisp
  опции профиля:
сообщение 10.9.2010, 15:25
Сообщение #7


астарожна ынтжинэр
*****

Группа: Участник
Сообщений: 1404
Регистрация: 26.11.2008
Из: ТаганрогРодинаЧехова
Пользователь №: 435

Спасибо сказали: 113 раз(а)




Репутация:   23  


Алексей1153,
с сайта sgi stl
const char S1[] = "Hello, world!";
  const char S2[] = "world";
  const int N1 = sizeof(S1) - 1;
  const int N2 = sizeof(S2) - 1;

  const char* p = search(S1, S1 + N1, S2, S2 + N2);
  printf("Found subsequence \"%s\" at character %d of sequence \"%s\".\n",
         S2, p - S1, S1);
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Алексей1153
  опции профиля:
сообщение 10.9.2010, 19:15
Сообщение #8


фрилансер
******

Группа: Участник
Сообщений: 2939
Регистрация: 19.6.2010
Из: Обливион
Пользователь №: 1822

Спасибо сказали: 215 раз(а)




Репутация:   34  


kwisp,

о, точно ) Спасибо
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
kwisp
  опции профиля:
сообщение 19.10.2010, 16:48
Сообщение #9


астарожна ынтжинэр
*****

Группа: Участник
Сообщений: 1404
Регистрация: 26.11.2008
Из: ТаганрогРодинаЧехова
Пользователь №: 435

Спасибо сказали: 113 раз(а)




Репутация:   23  


в массиве значений(пусть double) необходимо удалить значений резко(более чем на 2-3 порядка) отличающиеся от соседних.

Если кому интересно предлагайте варианты.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
AD
  опции профиля:
сообщение 19.10.2010, 18:00
Сообщение #10


Профессионал
*****

Группа: Участник
Сообщений: 2003
Регистрация: 4.2.2008
Из: S-Petersburg
Пользователь №: 84

Спасибо сказали: 70 раз(а)




Репутация:   17  


Цитата(kwisp @ 19.10.2010, 17:48) *
в массиве значений(пусть double) необходимо удалить значений резко(более чем на 2-3 порядка) отличающиеся от соседних.

Если кому интересно предлагайте варианты.

Ну блин... Задачка моя! :) Ну или родственная.
Есть множество значений. Предположим массив. Необходимо в этом массиве убрать "шумы" и найти минимальное и максимальное числа. Признак "шума" - число, отличающееся от остальных на порядок, два или более. Зависит значений в массиве. Интересен сам алгоритм. Ну и если будет какая-то общая реализация.

Сообщение отредактировал AD - 19.10.2010, 18:01
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

3 страниц V   1 2 3 >
Ответить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 29.3.2024, 1:31