Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 16, средняя оценка - 4.88
avatar1870
2 / 2 / 0
Регистрация: 28.09.2013
Сообщений: 407
#1

Нужны задачи для решения - C++

24.08.2014, 23:17. Просмотров 2041. Ответов 52
Метки нет (Все метки)

Здравствуйте. Если здесь есть студенты-программисты, то очень попрошу их сбросить сюда задания по С++, потому что все свои уже перерешал.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.08.2014, 23:17
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Нужны задачи для решения (C++):

Нужны задачи для их решения - C++
Здравствуйте. Нужны задачи для закрепления изученного материала. Что интересует(с чем я могу работать(база)): "напечатать", ...

Нужны задачи для тренировки - C++
Здравствуйте киньте пожалуйста задания по с++ для человека начинающего изучать Turbo с++

Нужны задачи для тренировки - C++
Киньте задачки на классы......а то в самоучителе, по которому я учу Сишку....приведены задачки, касающиеся только математики.....сами...

Нужны простые задачи для тренировки - C++
Добрый день всем:) Наверное подобных тем как я тут сотни,но всё же. Начал изучать С++(так как необходим для универа)в дальнейшем...

Составить программу для решения математической задачи (для любых допустимых значений углов и сторон) - C++
Здравствуйте.Я новичок в C++,у меня возникла проблема с задачей.Пожалуйста помогите.Вот условие: Составить универсальную (то есть не для...

Нужны задачи для новичка или способ реализации кода - C++
Дайте мне какую-нить задачу, которая будет больше на логическое мышление и решения логические должны быть, нежели на большое знание языка...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
ValeryS
Модератор
6556 / 5022 / 464
Регистрация: 14.02.2011
Сообщений: 16,763
25.08.2014, 01:47 #31
Цитата Сообщение от КОП Посмотреть сообщение
тут кстати студия ругается на неявное преобразование,
а я тоже ленивый пишу то не в компиляторе а прямо здесь, главное идею показать
rikimaru2013
C++ Game Dev
2427 / 1121 / 240
Регистрация: 30.11.2013
Сообщений: 3,672
25.08.2014, 02:08 #32
Цитата Сообщение от КОП Посмотреть сообщение
Не подкините еще парочку?
1. Вода
2. Шейкерная сортировка
3. Башня Ханое:
C++
1
2
3
4
5
6
7
8
9
10
//Легенда гласит, что где-то в Ханое находится храм, в котором размещена следующая конструкция:
//на основании укреплены 3 алмазных стержня, на один из которых при сотворении мира Брахма 
//  нанизал 64 золотых диска с отверстием посередине,
//причем внизу оказался самый большой диск, на нем – чуть меньший и так далее, пока на
//верхушке пирамиды не оказался самый маленький диск. Жрецы храма обязаны перекладывать
//диски по следующим правилам:
//1. За один ход можно перенести только один диск. 
//2. Нельзя класть больший диск на меньший.
//Руководствуясь этими нехитрыми правилами, жрецы должны перенести исходную пирамиду с 
//1-го стержня на 3-й. Как только они справятся с этим заданием, наступит конец света.
4. Шахматный конь:
C++
1
2
// Пользователь "ставит" коня на шахматную доску, компьютер выводит 63 хода коня. 
// На одной клетке нельзя быть 2 раза. Конь ходит как шахматный.
5. Написать функцию проверки является ли число степенью двойки.

Добавлено через 8 минут
6. Заменить в битовом представлении числа самый правый ноль на единицу.
КОП
361 / 280 / 86
Регистрация: 15.08.2010
Сообщений: 762
25.08.2014, 02:17 #33
Цитата Сообщение от rikimaru2013 Посмотреть сообщение
5. Написать функцию проверки является ли число степенью двойки.
как-то так получилось
Кликните здесь для просмотра всего текста
C++
1
2
3
4
5
6
7
8
9
10
11
bool POT(unsigned int n)
{
    n--;
    while (n > 0)
    {
        if (n & 1)
            n = n >> 1;
        else return false;
    }
    return true;
}


Цитата Сообщение от rikimaru2013 Посмотреть сообщение
Шейкерная сортировка
практически со всеми простыми сортировками я уже поработал.

Остальным сейчас займусь, спасибо.

Добавлено через 2 минуты
Цитата Сообщение от rikimaru2013 Посмотреть сообщение
Заменить в битовом представлении числа самый правый ноль на единицу
ну по сравнению со "второй задачей" это уж слишком просто ))
rikimaru2013
C++ Game Dev
2427 / 1121 / 240
Регистрация: 30.11.2013
Сообщений: 3,672
25.08.2014, 02:18 #34
Цитата Сообщение от КОП Посмотреть сообщение
как-то так получилось
задания 5 и 6 в одну строку))))
КОП
361 / 280 / 86
Регистрация: 15.08.2010
Сообщений: 762
25.08.2014, 04:17 #35
Цитата Сообщение от rikimaru2013 Посмотреть сообщение
задания 5 и 6 в одну строку))))
Так что ж вы сразу то не сказали! Я то там расписался в волю. Ща буду думать

Добавлено через 1 час 57 минут
Черт знает что накодил в пятом. Есть же более простой вариант тоже в одну строчку?
Кликните здесь для просмотра всего текста
C++
1
return n && (n == ~((n - 1) | (~(n - 1) - n)));
Евгений89
99 / 99 / 9
Регистрация: 17.04.2011
Сообщений: 554
Завершенные тесты: 2
25.08.2014, 07:01 #36
Скачайте Абрамяна 1000 задач по программированию.
DrOffset
7089 / 4230 / 950
Регистрация: 30.01.2014
Сообщений: 7,006
25.08.2014, 13:11 #37
Цитата Сообщение от rikimaru2013 Посмотреть сообщение
Такие они преподаватели: дадут задание с "прикольными" условиями.
Лучше бы преподаватели объясняли что такое UB и почему нужно писать код без него.
А то вот научатся так студенты хакам и трюкам, а нормальному стилю и ответственности за свой код - нет.

Добавлено через 3 минуты
Цитата Сообщение от КОП Посмотреть сообщение
Есть же более простой вариант тоже в одну строчку?
Перестарался
C++
1
(X & (X - 1)) == 0
агерон
268 / 267 / 33
Регистрация: 12.10.2009
Сообщений: 1,060
25.08.2014, 14:30 #38
написать 2 реализации, быструю и медленную, подсчета единичных битов в целом не отрицательном байте (символов). Написать тесты для задания, тесты должны заканчиваться корректно, Тестовый набор символов 1000000 символов, объяснить выбор решений для реализаций
_Ivana
3052 / 1739 / 150
Регистрация: 01.03.2013
Сообщений: 4,923
Записей в блоге: 2
25.08.2014, 15:27 #39
быструю ......., подсчета единичных битов в целом не отрицательном байте
было в книжке с названием "хакерские трюки" или типа того, сразу одна или две команды на ассемблере.

Добавлено через 1 минуту
DrOffset, +1. В промышленном программировании важна надежность при приемлемом уровне оптимизации по скорости и объему, а не трюки, которые подведут в самый неподходящий момент.
rikimaru2013
C++ Game Dev
2427 / 1121 / 240
Регистрация: 30.11.2013
Сообщений: 3,672
25.08.2014, 15:33 #40
Цитата Сообщение от КОП Посмотреть сообщение
Черт знает что накодил в пятом. Есть же более простой вариант тоже в одну строчку?
Кликните здесь для просмотра всего текста
C++
1
2
3
4
bool is_power_of_2 (int num)
{
     return !(num & (num - 1));
}
Памирыч
26.08.2014, 08:57
  #41

Не по теме:

Тема хорошо развивается и без ТС, который больше не появлялся в теме

Alexander_1
10 / 10 / 0
Регистрация: 18.08.2014
Сообщений: 58
26.08.2014, 09:00 #42
Бери книгу по программированию на С++ Павловской (она как раз для студентов) и решай все 20 вариантов для каждой главы. Задачи кстати хорошие. Книгу можешь в интернете найти
Mr.X
Эксперт С++
3049 / 1694 / 265
Регистрация: 03.05.2010
Сообщений: 3,867
26.08.2014, 09:26 #43
Вода:
Кликните здесь для просмотра всего текста
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
/////////////////////////////////////////////////////////////////////////////////////////
//Одномерный массив рендомно заполняется (длина от 20) числами от 0 до 9. На этот массив 
//якобы сверху льется вода и останьте только в "ямах". Найти объем воды.
//Условия - можно использовать:
//- 1 одномерный массив
//- 1 Цикл
//- Неограничено переменных. (в рамках разумного)
/////////////////////////////////////////////////////////////////////////////////////////
#include <cstdlib>
#include <ctime>
#include <iostream>
/////////////////////////////////////////////////////////////////////////////////////////
int     main()
{
    const   int     VAL_MAX     =   9;
    const   int     ARR_SIZE    =   7;
 
    srand(unsigned(time(0)));
 
    int     arr[ ARR_SIZE ];
 
    std::cout   <<  std::endl
                <<  std::endl
                <<  std::endl;
 
    for( int  i = 0; i < ARR_SIZE; ++i )
    {
        arr[i] = rand() % VAL_MAX + 1;
    }
 
    for( int  i = 0; i < ARR_SIZE; ++i )
    {
        std::cout   <<  arr[i]
                    <<  '\t';
    }
 
    std::cout   <<  std::endl;
 
    bool    _1_is_active    =   false;
    bool    _2_is_active    =   false;
    bool    _3_is_active    =   false;
 
    bool    _4_is_active    =   false;
    bool    _5_is_active    =   false;
    bool    _6_is_active    =   false;
 
    bool    _7_is_active    =   false;
    bool    _8_is_active    =   false;
    bool    _9_is_active    =   false;
 
    int     _1_counter      =   0;
    int     _2_counter      =   0;
    int     _3_counter      =   0;
 
    int     _4_counter      =   0;
    int     _5_counter      =   0;
    int     _6_counter      =   0;
 
    int     _7_counter      =   0;
    int     _8_counter      =   0;
    int     _9_counter      =   0;
 
    int     water           =   0;
 
    for( int  i = 0; i < ARR_SIZE; ++i )
    {
        switch( arr[i] )
        {
        case    0   :   if( _1_is_active )    { ++_1_counter; }
        case    1   :   if( _2_is_active )    { ++_2_counter; }
        case    2   :   if( _3_is_active )    { ++_3_counter; }
 
        case    3   :   if( _4_is_active )    { ++_4_counter; }
        case    4   :   if( _5_is_active )    { ++_5_counter; }
        case    5   :   if( _6_is_active )    { ++_6_counter; }
 
        case    6   :   if( _7_is_active )    { ++_7_counter; }
        case    7   :   if( _8_is_active )    { ++_8_counter; }
        case    8   :   if( _9_is_active )    { ++_9_counter; }
        default     :   ;
        }//switch
 
        if( i > 0 )
        {
            switch( arr[i] )
            {
            case    9   :   if( _9_is_active    &&  arr[i - 1] < 9 )    { water += _9_counter;  _9_is_active = false; }
            case    8   :   if( _8_is_active    &&  arr[i - 1] < 8 )    { water += _8_counter;  _8_is_active = false; }
            case    7   :   if( _7_is_active    &&  arr[i - 1] < 7 )    { water += _7_counter;  _7_is_active = false; }
 
            case    6   :   if( _6_is_active    &&  arr[i - 1] < 6 )    { water += _6_counter;  _6_is_active = false; }
            case    5   :   if( _5_is_active    &&  arr[i - 1] < 5 )    { water += _5_counter;  _5_is_active = false; }
            case    4   :   if( _4_is_active    &&  arr[i - 1] < 4 )    { water += _4_counter;  _4_is_active = false; }
 
            case    3   :   if( _3_is_active    &&  arr[i - 1] < 3 )    { water += _3_counter;  _3_is_active = false; }
            case    2   :   if( _2_is_active    &&  arr[i - 1] < 2 )    { water += _2_counter;  _2_is_active = false; }
            case    1   :   if( _1_is_active    &&  arr[i - 1] < 1 )    { water += _1_counter;  _1_is_active = false; }
            default     :   ;
            }//switch
        }//if
 
        if( i < ARR_SIZE - 1 )
        {
            switch( arr[i] )
            {
            case    9   :   if( arr[i + 1] < 9 )    { _9_is_active  =   true;   _9_counter  =   0;  }
            case    8   :   if( arr[i + 1] < 8 )    { _8_is_active  =   true;   _8_counter  =   0;  }
            case    7   :   if( arr[i + 1] < 7 )    { _7_is_active  =   true;   _7_counter  =   0;  }
 
            case    6   :   if( arr[i + 1] < 6 )    { _6_is_active  =   true;   _6_counter  =   0;  }
            case    5   :   if( arr[i + 1] < 5 )    { _5_is_active  =   true;   _5_counter  =   0;  }
            case    4   :   if( arr[i + 1] < 4 )    { _4_is_active  =   true;   _4_counter  =   0;  }
 
            case    3   :   if( arr[i + 1] < 3 )    { _3_is_active  =   true;   _3_counter  =   0;  }
            case    2   :   if( arr[i + 1] < 2 )    { _2_is_active  =   true;   _2_counter  =   0;  }
            case    1   :   if( arr[i + 1] < 1 )    { _1_is_active  =   true;   _1_counter  =   0;  }
            default     :   ;
            }//switch
        }//if
    }//for
 
    std::cout   <<  water
                <<  std::endl;
 
    system("pause");
}
0x10
2460 / 1632 / 238
Регистрация: 24.11.2012
Сообщений: 4,015
26.08.2014, 09:32 #44
Mr.X, я извиняюсь, но это какая-то жесть. Куча переменных, никакого намека на генерализацию кода. Такая задача разбиралась тут: http://habrahabr.ru/post/200190/ и решение сильно короче.
Mr.X
Эксперт С++
3049 / 1694 / 265
Регистрация: 03.05.2010
Сообщений: 3,867
26.08.2014, 09:53 #45
Цитата Сообщение от 0x10 Посмотреть сообщение
Mr.X, я извиняюсь, но это какая-то жесть. Куча переменных, никакого намека на генерализацию кода. Такая задача разбиралась тут: http://habrahabr.ru/post/200190/ и решение сильно короче.
Ну, задним умом мы все крепки. Автор статьи не прошел же собеседование. А я-то "прошел".
Ну, а если серьезно, то спасибо за ссылку, интересное решение.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.08.2014, 09:53
Привет! Вот еще темы с ответами:

Использование функция для решения задачи - C++
Добрый вечер, подскажите в чем ошибка в коде. #include &quot;stdafx.h&quot; #include &lt;stdio.h&gt; #include &lt;time.h&gt; #include &lt;stdlib.h&gt; int...

Написать на С++ программу для решения задачи - C++
Помогите написать код для решения задачи по нахождению радиуса круга, описанного вокруг треугольника

Алгоритм для решения задачи по программированию - C++
Доброго времени суток всем. Прошу помощи в составлении алгоритма решении задачи: На ежедневную прогулку выходят 15 детей. Их строят в...

Нужен совет для решения задачи - C++
Задача. Написать программу которая читает последовательность слов с стандартного устройства ввода. И находит среди них...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
26.08.2014, 09:53
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru