Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.95/19: Рейтинг темы: голосов - 19, средняя оценка - 4.95
2 / 2 / 4
Регистрация: 28.09.2013
Сообщений: 407
1

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

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

Author24 — интернет-сервис помощи студентам
Здравствуйте. Если здесь есть студенты-программисты, то очень попрошу их сбросить сюда задания по С++, потому что все свои уже перерешал.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
24.08.2014, 23:17
Ответы с готовыми решениями:

Нужны задачи для их решения
Здравствуйте. Нужны задачи для закрепления изученного материала. Что интересует(с чем я могу...

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

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

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

52
Памирыч
26.08.2014, 08:57     Нужны задачи для решения
  #41

Не по теме:

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

0
10 / 10 / 0
Регистрация: 18.08.2014
Сообщений: 58
26.08.2014, 09:00 42
Бери книгу по программированию на С++ Павловской (она как раз для студентов) и решай все 20 вариантов для каждой главы. Задачи кстати хорошие. Книгу можешь в интернете найти
1
Эксперт С++
3225 / 1752 / 436
Регистрация: 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");
}
0
3257 / 2059 / 351
Регистрация: 24.11.2012
Сообщений: 4,909
26.08.2014, 09:32 44
Mr.X, я извиняюсь, но это какая-то жесть. Куча переменных, никакого намека на генерализацию кода. Такая задача разбиралась тут: http://habrahabr.ru/post/200190/ и решение сильно короче.
2
Эксперт С++
3225 / 1752 / 436
Регистрация: 03.05.2010
Сообщений: 3,867
26.08.2014, 09:53 45
Цитата Сообщение от 0x10 Посмотреть сообщение
Mr.X, я извиняюсь, но это какая-то жесть. Куча переменных, никакого намека на генерализацию кода. Такая задача разбиралась тут: http://habrahabr.ru/post/200190/ и решение сильно короче.
Ну, задним умом мы все крепки. Автор статьи не прошел же собеседование. А я-то "прошел".
Ну, а если серьезно, то спасибо за ссылку, интересное решение.
0
Форумчанин
Эксперт CЭксперт С++
8215 / 5045 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
26.08.2014, 10:52 46
Цитата Сообщение от rikimaru2013 Посмотреть сообщение
bool is_power_of_2 (int num)
{
* * *return !(num & (num - 1));
}
0 - не степень двойки
0
447 / 300 / 65
Регистрация: 12.10.2009
Сообщений: 1,162
28.08.2014, 23:17 47
_Ivana, вы неверно понимаете задачу, не забывайте что тестовый набор данных 1Мб
0
Мой лучший друг-отладчик!
167 / 167 / 30
Регистрация: 24.06.2012
Сообщений: 662
Записей в блоге: 5
29.08.2014, 00:44 48
Ну порешайте Меньшикова тогда
http://informatics.mccme.ru/mo... erid=611#1
2
Модератор
Эксперт по электронике
8908 / 6677 / 918
Регистрация: 14.02.2011
Сообщений: 23,523
29.08.2014, 07:32 49
Цитата Сообщение от агерон Посмотреть сообщение
подсчета единичных битов в целом не отрицательном байте (символов).
А разве байт моет быть не целым? или отрицательным?
быстрая реализация табличный метод, таблица из 256 байтов
медленный цикл с делением на 2
Кликните здесь для просмотра всего текста
C++
1
2
3
4
5
6
7
int a=0;
while(n)
{
 if(n&1)
   a++;
n/=2;
}

извечная дилемма скорость/ память

компромисс: работать с полубайтами
Кликните здесь для просмотра всего текста
C++
1
2
3
            // 0 1  2 3  4  5  6   7  8 9 10 11 12 13 14 15
int arr[16]={0,1, 1, 2, 1, 2, 2, 3, 1, 2, 2, 3, 2, 3,  3,  4};
int a=arr[n&0xF]+arr[(n/16)&0x0F];
0
447 / 300 / 65
Регистрация: 12.10.2009
Сообщений: 1,162
29.08.2014, 13:25 50
ValeryS, я рад что вы знаете решение этой задачи но вот предназначалась она не вам, а студенту который создал тему

Добавлено через 2 минуты
реализовать поиск подстроки в строке используя алгоритм Боуера-Мура, или аналогичный, строковыми библиотечными функциями не пользоваться

Добавлено через 3 минуты
P. P. S. уточнение на счет байта облегчало задачу, надеюсь вы в курсе что байты бывают не только 8 битные? и что запись signed byte также имеет право на существование? как и то что дробные числа в компьютере есть определенная трактовка тех же самых байт?
0
Модератор
Эксперт по электронике
8908 / 6677 / 918
Регистрация: 14.02.2011
Сообщений: 23,523
29.08.2014, 13:57 51
Цитата Сообщение от агерон Посмотреть сообщение
надеюсь вы в курсе что байты бывают не только 8 битные?
Ага
Байт это минимальная адресуемая ячейка
Цитата Сообщение от агерон Посмотреть сообщение
и что запись signed byte также имеет право на существование?
А что сия запись означает?
может все таки
C++
1
signed char
Цитата Сообщение от агерон Посмотреть сообщение
но вот предназначалась она не вам, а студенту который создал тему
А нехай учится
правда он как создал тему, так и пропал
но может другие узнают что такое табличный метод
0
4817 / 2278 / 287
Регистрация: 01.03.2013
Сообщений: 5,947
Записей в блоге: 28
29.08.2014, 16:18 52
Цитата Сообщение от агерон Посмотреть сообщение
_Ivana, вы неверно понимаете задачу
И в чем же я, простите, неверно ее понимаю? Спровоцировали вы меня Вот без умножений/делений/остатков, выполнится хоть на АВР-Тини, где нет аппаратных умножений/делений, выполнится быстро, с имхо более разумным компромиссом скорость/память, без таблиц. Причем, подозреваю, что можно еще оптимизировать код - уменьшить количество операций, лень этим заниматься просто. Если надо - напишу для 32-битных переменных.
C++
1
2
3
4
5
6
7
8
9
    unsigned char m[10] = {0,1,2,3,4,5,6,7,8,9};
    unsigned int rez = 0;
    for (unsigned int i = 0; i<10; i++) {
        unsigned char c = m[i];
        c = (c & 85) + ((c>>1) & 85);
        c = (c & 51) + ((c>>2) & 51);
        c = (c & 15) + (c>>4);
        rez += c;
    }
ЗЫ это к тому, что "пусть студенты учатся" не только дилеммам "таблицы/математика в лоб", а не пренебрегают чуть менее тривиальной математикой и советами от других. Конкретно: Уоррен - Алгоритмические трюки для программистов - целая глава 5 посвящена теме подсчета битов в байтах/словах/массивах и приведены десятки алгоритмов, оптимальные каждый под свою платформу и систему команд процессора.
0
0 / 0 / 0
Регистрация: 15.05.2016
Сообщений: 2
09.06.2016, 14:06 53
Цитата Сообщение от avatar1870 Посмотреть сообщение
Здравствуйте. Если здесь есть студенты-программисты, то очень попрошу их сбросить сюда задания по С++, потому что все свои уже перерешал.
1. Создать внешний файл данных структуры <инв.номер> <название оборудования> <цена> из 20 записей. Считать данные в массив. Описать функцию вывода массива на экран.
2. Описать функцию шейкерной сортировки массива на основе таблицы индексов сначала по <инв.номеру>, затем – по <названию оборудования> . Предусмотреть подсчет количества обменов М и сравнений С.
3. Проанализировать работу данного метода сортировки для случайного массива, для «лучшего» и «худшего» случаев.
0
09.06.2016, 14:06
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
09.06.2016, 14:06
Помогаю со студенческими работами здесь

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
53
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru