Тема: С++ интересные задания

Ответить в теме
Показано с 1 по 18 из 18
  1. Вверх #1
    Посетитель Аватар для Zoom4ik
    Пол
    Мужской
    Сообщений
    214
    Репутация
    46

    По умолчанию С++ интересные задания

    после обучения по специальности программист я понял что знания по программированию можно получить только на практике. Вся теория которую нам давали вылетела через левое ухо... А вот курсовики и лабораторки я запомнил и реально неплохо знаю то с чем познакомился при их выполнении. Если у нас тут есть опытные программисты на языке С\С++ - давайте будем обмениваться интересными заданиями и вариантами их решений... Фактически обмен опытом Я лично хочу опыта набраться так как его очень мало
    Sex Instructor... First lesson - FREE!!!


  2. Вверх #2
    Посетитель Аватар для DehumanizeR
    Пол
    Мужской
    Адрес
    страшно загаженный город
    Сообщений
    316
    Репутация
    117
    Офигительная задачка есть! Я до сих пор не знаю, как ее решить.
    Дано:

    #include <iostream>

    using namespace std;

    int main() {
    cout<<"Hello World!\n";
    return 0;
    }

    Задание: как, не меняя функцию main() сделать так, чтобы программа выводила:
    111
    Hello World!
    222
    Funk never dies!

  3. Вверх #3
    Постоялец форума Аватар для Яр
    Пол
    Мужской
    Адрес
    Odessa.Ua
    Возраст
    37
    Сообщений
    2,915
    Репутация
    168
    Цитата Сообщение от DehumanizeR Посмотреть сообщение
    Офигительная задачка есть! Я до сих пор не знаю, как ее решить.
    Знаю как минимум два варианта решения этой задачи, по крайней мере в такой формулировке.
    Один из них -- это вспомнить про существование конструкторов и деструкторов ;).
    ~ Motivation is what gets you started. Habit is what keeps you going.

  4. Вверх #4
    Постоялец форума Аватар для Guffy
    Пол
    Мужской
    Адрес
    Одесса
    Возраст
    49
    Сообщений
    1,356
    Репутация
    256
    ну первый понятно
    Код:
    class С{
    public:
     С() {
      cout<<"111"<<std::endl;
     }
     ~С() {
      cout<<"222"<<std::endl;
     }
    }
    С c;
    int main()
    {
    а второй
    Код:
    int main(int argc, char** argv)
    {
      return main();
    }
    int main()
    {
    и надеятся что линкер подхватит более полно определенный main?

  5. Вверх #5
    Постоялец форума Аватар для Яр
    Пол
    Мужской
    Адрес
    Odessa.Ua
    Возраст
    37
    Сообщений
    2,915
    Репутация
    168
    Guffy,
    Немного по-другому, хотя, тоже, способ не лучший:
    Код:
    #include <iostream>
    //using namespace std;
    
    class C {
        public:
            void operator<<(const char* s) {
                std::cout<<"111\n";
                std::cout<<s;
                std::cout<<"222\n";
            }
    };
    C cout;
    
    
    int main() {
    cout<<"Hello World!\n";
    return 0;
    }
    ~ Motivation is what gets you started. Habit is what keeps you going.

  6. Вверх #6
    Посетитель Аватар для Zoom4ik
    Пол
    Мужской
    Сообщений
    214
    Репутация
    46
    Вот тоже задачка. Это был мой курсовик. Но он по пиксельной графике.

    Нарисовать полигональный цилиндр диаметром 150 пикселей и высотой 300. Количество полигонов - не менее 32. Использовать можно только пиксели. ТО есть line уже не катит. Короче ваши возможности - поставить пиксель с заданными координатами и цветом. Модель освещения - произвольная. Я лично при решении использовал простую(полигон имеет 1 цвет. то есть сильно плавных переходов цвета не было)
    Sex Instructor... First lesson - FREE!!!

  7. Вверх #7
    Постоялец форума Аватар для Guffy
    Пол
    Мужской
    Адрес
    Одесса
    Возраст
    49
    Сообщений
    1,356
    Репутация
    256
    Это не задача по С++. Это задача по машинной графике а к С++ имеет опосредственное отношение.

  8. Вверх #8
    Новичок
    Пол
    Мужской
    Сообщений
    36
    Репутация
    12
    Цитата Сообщение от Zoom4ik Посмотреть сообщение
    Нарисовать полигональный цилиндр...
    Не совсем понятно в чём прикол задачи. Действительно азы машинный графики. А чего полигональный, а не более прогрессивно, через ray tracing?

  9. Вверх #9
    Посетитель Аватар для Zoom4ik
    Пол
    Мужской
    Сообщений
    214
    Репутация
    46
    такое задание было у меня на курсовике. И я не говорю что обязательно это задание имеет отношение к сишке. Просто интересно увидеть варианты решения данной задачи в исполнении других людей. Свой к сожалению сейчас выложить не могу... я на работе - а он дома.... Тут же не принудительно...
    Sex Instructor... First lesson - FREE!!!

  10. Вверх #10
    Посетитель Аватар для DehumanizeR
    Пол
    Мужской
    Адрес
    страшно загаженный город
    Сообщений
    316
    Репутация
    117
    Цитата Сообщение от Яр Посмотреть сообщение
    Guffy,
    Немного по-другому, хотя, тоже, способ не лучший:
    Код:
    #include <iostream>
    //using namespace std;
    
    class C {
        public:
            void operator<<(const char* s) {
                std::cout<<"111\n";
                std::cout<<s;
                std::cout<<"222\n";
            }
    };
    C cout;
    
    
    int main() {
    cout<<"Hello World!\n";
    return 0;
    }
    я сегодня перечитывал Эккеля, главу про выделения подтипа, и тоже сделал подобным образом:

    class sstream : public std::ostream {
    public:
    void operator<<(const char* s) {
    std::cout<<"111";
    std::cout<<s;
    std::cout<<"\n222";
    }
    };


    хотя, наследование тут избыточно))
    Funk never dies!

  11. Вверх #11
    Посетитель Аватар для DehumanizeR
    Пол
    Мужской
    Адрес
    страшно загаженный город
    Сообщений
    316
    Репутация
    117
    Guffy, Яр, где вы были, когда я две недели мучался этим вопросом?
    Funk never dies!

  12. Вверх #12
    Постоялец форума Аватар для Guffy
    Пол
    Мужской
    Адрес
    Одесса
    Возраст
    49
    Сообщений
    1,356
    Репутация
    256
    а как такой вариант- модификация 2го?
    Код:
    #include <iostream>
    
    //using namespace std;
    
    struct A{
    } cout;
    
    void operator<<(A& fake, char* str)
    {
    	std::cout<<"111"<<std::endl<<str<<"222"<<std::endl;
    }
    
    int main() {
    cout<<"Hello World!\n";
    return 0;
    }

  13. Вверх #13
    Постоялец форума Аватар для Яр
    Пол
    Мужской
    Адрес
    Odessa.Ua
    Возраст
    37
    Сообщений
    2,915
    Репутация
    168
    Guffy, супер
    ~ Motivation is what gets you started. Habit is what keeps you going.

  14. Вверх #14
    Не покидает форум Аватар для YOKO
    Пол
    Мужской
    Адрес
    Одеса, Україна
    Возраст
    43
    Сообщений
    5,452
    Репутация
    728
    Пропоную відсортувати інтовий масив без використання допоміжної перемінної.

    int array[7]={0,2,5,1,5,6,9};
    ....
    Тут могла бути ваша реклама

  15. Вверх #15
    Постоялец форума Аватар для Яр
    Пол
    Мужской
    Адрес
    Odessa.Ua
    Возраст
    37
    Сообщений
    2,915
    Репутация
    168
    YOKO, имеется в виду дополнительная переменная для временно значения пузырьковой сортировки? ).
    Тогда вместо использования переменной можно сделать следующее (для конкретно этого примера, здесь все числа положительные):
    допустим, i-й и j-й элементы нужно поменять местами
    Код:
    array[i] = array[i] + array[j]
    array[j] = array[i] - array[j]
    array[i] = array[i] - array[j]
    либо, в общем случае, и для отрицательных чисел:

    Код:
    array[i] = array[i] xor array[j]
    array[j] = array[i] xor array[j]
    array[i] = array[i] xor array[j]
    ~ Motivation is what gets you started. Habit is what keeps you going.

  16. Вверх #16
    Постоялец форума Аватар для Яр
    Пол
    Мужской
    Адрес
    Odessa.Ua
    Возраст
    37
    Сообщений
    2,915
    Репутация
    168
    Ещё в качестве нетривиальных упражнений можно писать куайны, программы, которые выводят свой исходный текст (без использования функций чтения из файла).
    ~ Motivation is what gets you started. Habit is what keeps you going.

  17. Вверх #17
    Не покидает форум Аватар для YOKO
    Пол
    Мужской
    Адрес
    Одеса, Україна
    Возраст
    43
    Сообщений
    5,452
    Репутация
    728
    Яр
    Так, саме це я і мав наувазі.
    Тут могла бути ваша реклама

  18. Вверх #18
    Посетитель Аватар для traveller
    Пол
    Мужской
    Адрес
    Одесса
    Возраст
    41
    Сообщений
    171
    Репутация
    25
    Еще одна задача.
    Как можно реализовать ReadOnly дескриптор для std::auto_ptr
    У меня пока не очень красиво получилось решить


Ответить в теме

Социальные закладки

Социальные закладки

Ваши права

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