Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.89/9: Рейтинг темы: голосов - 9, средняя оценка - 4.89
130 / 70 / 25
Регистрация: 20.03.2014
Сообщений: 261

Проверить корректность реализации нескольких задач

11.07.2014, 18:40. Показов 1937. Ответов 19
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый вечер всем.
Вопрос относиться к опытным программистам С++.

Вопрос такой. Я хотел устроится на вакансию Junior Developer C++,
мне прислали тестовые задания:
Кликните здесь для просмотра всего текста

Задача 1.
Кликните здесь для просмотра всего текста

1. Распечатать произвольное число в двоичной системе исчисления.

Описание.

Написать функцию, принимающую на вход произвольное целочисленное значение и возвращающую

строку, содержащую его представление в двоичной системе исчисления.

Декларация.

C++
1
2
3
4
5
6
7
void NumberAsBinary(
 
 char * _result, // строка с результатом
 
 unsigned int _number // произвольное число
 
 )

Ожидаемый результат.


Например, для числа 13 данная функция должна вернуть строку "1101".

Проверка работы.


Решение должно демонстрировать работу функции на примере 10 случайных чисел в диапазоне 0 до 512.

Задача 2.
Кликните здесь для просмотра всего текста

2. Сгенерировать неупорядоченный массив целых чисел от 1 до N.

Описание.

Написать функцию, принимающую на вход произвольное целочисленное значение и возвращающую

массив, содержащий последовательность чисел от 1 до этого значения, в котором каждое число

последовательности находится в заведомо случайной позиции.

Декларация.

C++
1
2
3
4
5
6
7
void GenerateRandomArray(
 
 int * _result, // возвращаемый массив
 
 unsigned int _maxValue // максимальное число в последовательности
 
 )
Ожидаемый результат.

Например, 2 последовательных запуска данной функции с параметром 7 могут сгенерировать

последовательности вида

{2, 5, 7, 3, 4, 1, 6}

{5, 1, 3, 4, 6, 2, 7}

Проверка работы.

Решение должно демонстрировать работу функции на примере 4 случайных чисел в диапазоне от 5 до 15.

Задача 3.
Кликните здесь для просмотра всего текста

3. Сортировка массива.

Описание.

Написать функцию, принимающую в качестве параметра массив неупорядоченных целых чисел

(сгенерированный с помощью функции из задачи 2) и выполняющую его сортировку.

Декларация.

C++
1
2
3
4
5
6
7
void Sort(
 
 int * _values, // сортируемый массив
 
 unsigned int _count // количество элементов в массиве
 
 )
Ожидаемый результат.

Например, массив вида {2, 5, 7, 3, 4, 1, 6} будет преобразован данной функцией в {1, 2, 3, 4, 5, 6, 7}.

Проверка работы.

Решение должно демонстрировать работу функции на примере результатов, полученных при решении

задачи 2 (последовательностей, сгенерированных для 4 случайных чисел в диапазоне от 5 до 15).

Задача 4.
Кликните здесь для просмотра всего текста

4. Определить недостающее число в неупорядоченной последовательности целых чисел.

Описание.


Написать функцию, принимающую в качестве параметра массив неупорядоченных целых чисел

(сгенерированный с помощью функции из задачи 2) и определяющую значение последнего элемента в

массиве без доступа к нему.

Декларация.

C++
1
2
3
4
5
6
7
int GetMissingValue(
 
 const int * _values, // неупорядоченный массив целых чисел от 1 до _count
 
 unsigned int _count // количество элементов в массиве
 
 )
Ожидаемый результат.

Например, для последовательности {5, 7, 8, 3, 1, 9, 2, 6, 4} данная функция должна вернуть 4.

Проверка работы.

Решение должно демонстрировать работу функций на примере результатов, полученных при решении

задачи 2 (последовательностей, сгенерированных для 4 случайных чисел в диапазоне от 5 до 15).



Вот мои решения:
Кликните здесь для просмотра всего текста

Задача 1.
Кликните здесь для просмотра всего текста

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
#include <iostream>
 
using namespace std;
 
void NumberAsBinary(
    char *&_result, // строка с результатом
    unsigned int _number // произвольное число
);
 
int main(
    unsigned int argc,
    char **argv
)
{
  char *binstring;
  
  for(int i = 0; i < 10; i++)
  {  
    int number = rand()%513;
    NumberAsBinary(binstring, number);
    cout << number << " = " << binstring << endl;
    delete[] binstring;
  }
  return 0;
}
 
void NumberAsBinary(
    char *&_result,
    unsigned int _number
)
{  
  bool process = false;
  int i, j = 0;
  for (i = 31; i >= 0; --i)
  {
    if (!process && (1<<i & _number))          
    {
      _result = new char[i+2];
      process = true;    
    }
    if(process)
    {
      if(1<<i & _number)
        _result[j++] = '1';
      else
        _result[j++] = '0';
    }
  }
  _result[j] = '\0';
}

Задача 2.
Кликните здесь для просмотра всего текста
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
#include <iostream>
 
using namespace std;
 
void GenerateRandomArray(
    int *&_result, // возвращаемый массив
    unsigned int _maxValue // максимальное число в последовательности
);
 
int main(
    unsigned int argc,
    char **argv
)
{
  int *arr;
 
  for(int i = 0; i < 4; i++)
  {  
    int number = 5 + rand()%11;
    GenerateRandomArray(arr, number);
    cout << "{";
    for (int j = 0; j < number; ++j)
    {
      cout << arr[j];
      if(j < number - 1) cout << ",";
    }
    cout << "}" << endl;
    delete[] arr;
  }
 
  return 0;
}
 
void GenerateRandomArray(
    int *&_result,
    unsigned int _maxValue
)
{
  int p1, p2, t;
  _result = new int[_maxValue];
  for(int i = 0; i < _maxValue; ++i)
    _result[i] = i+1;
  
  for(int i = 0; i < _maxValue; ++i)
  {
    p1 = rand()%_maxValue;
    p2 = rand()%_maxValue;
    t = _result[p1];
    _result[p1] = _result[p2];
    _result[p2] = t;
  }
}

Задача 3.
Кликните здесь для просмотра всего текста
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
#include <iostream>
 
using namespace std;
 
void GenerateRandomArray(
    int *&_result, // возвращаемый массив
    unsigned int _maxValue // максимальное число в последовательности
);
void Sort(
    int * _values, // сортируемый массив
    unsigned int _count // количество элементов в массиве
);
 
int main(
    unsigned int argc,
    char **argv
)
{
  int *arr;
 
  for(int i = 0; i < 4; i++)
  {  
    int number = 5 + rand()%11;
    GenerateRandomArray(arr, number);
    cout << "       {";
    for (int j = 0; j < number; ++j)
    {
      cout << arr[j];
      if(j < number - 1) cout << ",";
    }
    cout << "}" << endl;
    Sort(arr, number);
    cout << "sorted {";
    for (int j = 0; j < number; ++j)
    {
      cout << arr[j];
      if(j < number - 1) cout << ",";
    }
    cout << "}" << endl << endl;
    delete[] arr;
  }
 
  return 0;
}
 
void Sort(
    int * _values, // сортируемый массив
    unsigned int _count // количество элементов в массиве
)
{
  for (int i = 0; i < _count; ++i)  
    for (int j = 0; j < _count; ++j)    
      if(_values[j] > _values[i])
      {
        int t = _values[i];
        _values[i] = _values[j];
        _values[j] = t;
      }
}
 
void GenerateRandomArray(
    int *&_result,
    unsigned int _maxValue
)
{
  int p1, p2, t;
  _result = new int[_maxValue];
  for(int i = 0; i < _maxValue; ++i)
    _result[i] = i+1;
 
  for(int i = 0; i < _maxValue; ++i)
  {
    p1 = rand()%_maxValue;
    p2 = rand()%_maxValue;
    t = _result[p1];
    _result[p1] = _result[p2];
    _result[p2] = t;
  }
}

Задача 4.
Кликните здесь для просмотра всего текста
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
#include <iostream>
 
using namespace std;
 
void GenerateRandomArray(
    int *&_result, // возвращаемый массив
    unsigned int _maxValue // максимальное число в последовательности
);
int GetMissingValue(
    const int * _values, // неупорядоченный массив целых чисел от 1 до _count
    unsigned int _count // количество элементов в массиве
);
 
int main(
    unsigned int argc,
    char **argv
)
{
  int *arr;
  srand(11);
  for(int i = 0; i < 4; i++)
  {  
    int number = 5 + rand()%11;
    GenerateRandomArray(arr, number);
    cout << "       {";
    for (int j = 0; j < number; ++j)
    {
      cout << arr[j];
      if(j < number - 1) cout << ",";
    }
    cout << "}" << endl;    
    cout << "miss val = " << GetMissingValue(arr, number) << endl;    
    delete[] arr;
  }
 
  return 0;
}
 
void GenerateRandomArray(
    int *&_result,
    unsigned int _maxValue
)
{
  int p1, p2, t;
  _result = new int[_maxValue];
  for(int i = 0; i < _maxValue; ++i)
    _result[i] = i+1;
 
  for(int i = 0; i < _maxValue; ++i)
  {
    p1 = rand()%_maxValue;
    p2 = rand()%_maxValue;
    t = _result[p1];
    _result[p1] = _result[p2];
    _result[p2] = t;
  }
}
 
int GetMissingValue(
    const int * _values,
    unsigned int _count
)
{
  bool notexist;
  for(int j = 1; j <= _count; ++j)
  {
    notexist = true;
    for(int i = 0; i < _count - 1; ++i)
    {
      if(_values[i] == j)
      {
        notexist = false;
        break;
      }
    }
    if(notexist)
    {
      return j;
    }
  }
}



Сначала ответели что просто не прошел тест. Я потом добивался более внятного ответа и
Мне вот что ответили:
Судя по отчету по вашему заданию, могу сказать, вот что:
первая задача построена нелогично, вторая задача у вас не работает, третья и четвертая не оптимальны.


Скриншот консоли:
Кликните здесь для просмотра всего текста


Согласен что в 3-й задаче я психанул и отсортировал всё пузырьком, тут мои грабли.
В 4-й задаче я выбрал между нагрузгой на ОЗУ(использование ещё одного массива) и нагрузкой на ЦПУ, выбрал ЦПУ, тоже возможно не прав.

Я бы хотел что бы знающие люди мне подсказали пути дальнейшего развития, более конкретно указали какие стороны С++ подтянуть, я из этих заданий не вижу, возможно мало опыта потому что.
1
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
11.07.2014, 18:40
Ответы с готовыми решениями:

Метод хорд - проверить корректность реализации кода
Приветствую, форумчане. Хочу обратиться к вам за помощью, вот еле написала программу для метода хорд, методом шары если честно, так как...

Простой консольный конвертер валют - проверить корректность реализации
Всем привет! Я новичок на вашем форуме, как и в C++. Изучаю его третий день. Вот решил подкрепить свои знания и написать простенький...

Проверить корректность реализации класса
есть ли шанс на жизнь у данного класса? И если да то как теперь вывести все на форму? class date { public const int...

19
3258 / 2060 / 351
Регистрация: 24.11.2012
Сообщений: 4,909
11.07.2014, 18:49
На форуме уже был разбор точно таких же заданий. Тестовое задание на Junior C++ dev
2
Эксперт С++
 Аватар для Mr.X
3225 / 1752 / 436
Регистрация: 03.05.2010
Сообщений: 3,867
11.07.2014, 19:18
Цитата Сообщение от 0x10 Посмотреть сообщение
На форуме уже был разбор точно таких же заданий. Тестовое задание на Junior C++ dev
А я вот одного не пойму. Это тесты по C++, а люди пишут ответы на Си. В условии вроде бы не сказано, что STL нельзя использовать. Может быть их за незнание STL и бракуют?
1
54 / 3 / 2
Регистрация: 17.05.2014
Сообщений: 72
11.07.2014, 19:29
Я бы первую задачу решил бы примерно так:
C++
1
2
3
4
5
6
void NumberAsBinary(char * _result, unsigned int _number)
{
   std::bitset<32> bits(static_cast<_ULonglong>(_number));
   strcpy(_result, bits.to_string().c_str()); 
  // либо используя strcpy_s, чтобы не было переполнения
}
1
3258 / 2060 / 351
Регистрация: 24.11.2012
Сообщений: 4,909
11.07.2014, 19:35
Цитата Сообщение от Mr.X Посмотреть сообщение
Это тесты по C++, а люди пишут ответы на Си.
Из постановки задачи ясно, что требуется знание не библиотеки, а тривиальных алгоритмов. Иначе было бы оговорено специально. Задания решены либо неправильно, либо неоптимально, а массив там или вектор - непринципиально.
1
22 / 19 / 6
Регистрация: 24.12.2012
Сообщений: 435
11.07.2014, 19:43
Горелый, можешь кинуть сайт этой компании? Уж больно хочется попробовать )
1
Эксперт С++
 Аватар для Mr.X
3225 / 1752 / 436
Регистрация: 03.05.2010
Сообщений: 3,867
11.07.2014, 19:48
Цитата Сообщение от 0x10 Посмотреть сообщение
Из постановки задачи ясно, что требуется знание не библиотеки, а тривиальных алгоритмов. Иначе было бы оговорено специально.
Так в том-то и дело, что в задании нет никаких специальных указаний, а все что не запрещено, то разрешено.
1
3258 / 2060 / 351
Регистрация: 24.11.2012
Сообщений: 4,909
11.07.2014, 19:51
Цитата Сообщение от Mr.X Посмотреть сообщение
Так в том-то и дело, что в задании нет никаких специальных указаний, а все что не запрещено, то разрешено.
Наивное переписывание на stl не гарантирует корректность и оптимальность получившегося кода.
1
Эксперт С++
 Аватар для Mr.X
3225 / 1752 / 436
Регистрация: 03.05.2010
Сообщений: 3,867
11.07.2014, 19:54
Цитата Сообщение от 0x10 Посмотреть сообщение
Наивное переписывание на stl не гарантирует корректность и оптимальность получившегося кода.
Ну, сортировку можно было и стандартную применить, чего ее выдумывать-то?
1
3258 / 2060 / 351
Регистрация: 24.11.2012
Сообщений: 4,909
11.07.2014, 20:00
Цитата Сообщение от Mr.X Посмотреть сообщение
Ну, сортировку можно было и стандартную применить, чего ее выдумывать-то?
Если не стоять на формальной ноге, а руководствоваться здравым смыслом, то задание с исходным данным в виде массива, подразумевающее его сортировку вызовом стандартной функции - само по себе глупо.

Добавлено через 1 минуту

Не по теме:

А вообще, эти задания - уровень не джуниора, а скорее уровня контрольной в школе.

1
Эксперт С++
 Аватар для Mr.X
3225 / 1752 / 436
Регистрация: 03.05.2010
Сообщений: 3,867
11.07.2014, 20:07
Цитата Сообщение от 0x10 Посмотреть сообщение
Если не стоять на формальной ноге, а руководствоваться здравым смыслом, то задание с исходным данным в виде массива, подразумевающее его сортировку вызовом стандартной функции - само по себе глупо.
Ну вы все-таки какими-то своими интуитивными предположениями оперируете, но так как нет в задании никаких указаний, то они недоказуемы.
Давайте все-таки будем взаимно вежливы, не стоит в наших "высокоумных и глубоко теоретических" дискуссиях переходить на личности.
1
11.07.2014, 20:10

Не по теме:

Mr.X, да я не перехожу вроде. Ок, проехали.

0
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
11.07.2014, 20:29
А почему прототипы не соответствуют? В задании просто указатели.
1
130 / 70 / 25
Регистрация: 20.03.2014
Сообщений: 261
11.07.2014, 20:57  [ТС]
Использовал ссылки на указатели что бы выделение памяти поместить в сам метод.
Например для первой задачи каким образом вернуть строку через параметр.

Да, прочитав ветку форума по ссылке из первого ответа вижу что нужно ещё подучить матчасть.

Добавлено через 41 секунду
Компания G5 Entertaiment.
2
Каратель
Эксперт С++
6610 / 4029 / 401
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
11.07.2014, 21:41
Цитата Сообщение от Горелый Посмотреть сообщение
Например для первой задачи каким образом вернуть строку через параметр.
вам дали указатель по которому вы должны расположить результат, выделение памяти для строки не ваша забота не забота функции NumberAsBinary
1
130 / 70 / 25
Регистрация: 20.03.2014
Сообщений: 261
13.07.2014, 02:43  [ТС]
Jupiter, согласен.
Моё решение было аргументированно тем что туда могут передать буфер меньшей длинны чем требуется.
Мало опыта, буду учится.
1
Каратель
Эксперт С++
6610 / 4029 / 401
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
13.07.2014, 02:55
Цитата Сообщение от Горелый Посмотреть сообщение
Моё решение было аргументированно тем что туда могут передать буфер меньшей длинны чем требуется.
да это понятно, но это их проблемы и тебя не должно это заботить
1
13.07.2014, 17:30

Не по теме:

где такие задания дают? Мне вот сказали "изложить свои мысли в свободной форме" что делает этот код%-):

Кликните здесь для просмотра всего текста
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
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
/*
 * qmap test
 * Author: Sergey Chaban <sergey.chaban@gmail.com>
 */
 
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <ctype.h>
#include <stddef.h>
 
#include <math.h>
#include <float.h>
#include <memory.h>
#include <xmmintrin.h>
#include <emmintrin.h>
 
typedef __int16 I16;
typedef unsigned __int16 U16;
typedef __int32 I32;
typedef unsigned __int32 U32;
typedef __m128i IVEC;
 
static IVEC qstr_load(const char* pStr) {
    union {
        IVEC v;
        char c[16];
    } qs;
    qs.v = _mm_setzero_si128();
    for (int i = 0; i < 16; ++i) {
        char c = pStr[i];
        if (!c) break;
        qs.c[i] = c;
    }
    return qs.v;
}
 
static bool qstr_eq(IVEC qs0, IVEC qs1) {
    return _mm_movemask_epi8(_mm_cmpeq_epi8(qs0, qs1)) == 0xFFFF;
}
 
template <typename T, int TBL_SIZE=0x100, int MAX_NODE=0x400> class QMap {
protected:
    IVEC mKey[MAX_NODE];
    T mVal[MAX_NODE];
    I16 mLnk[MAX_NODE];
    I16 mTbl[TBL_SIZE];
    I32 mIdx;
 
    static U32 hash(IVEC qstr) {
        IVEC zero = _mm_setzero_si128();
        IVEC t0 = _mm_unpacklo_epi8(qstr, zero);
        IVEC t1 = _mm_unpackhi_epi8(qstr, zero);
        t1 = _mm_add_epi16(t0, t1);
        t0 = _mm_unpacklo_epi16(t1, zero);
        t1 = _mm_unpackhi_epi16(t1, zero);
        t1 = _mm_add_epi16(t0, t1);
        t0 = _mm_unpacklo_epi32(t1, zero);
        t1 = _mm_unpackhi_epi32(t1, zero);
        t1 = _mm_add_epi32(t0, t1);
        t0 = _mm_unpackhi_epi64(t1, zero);
        t1 = _mm_add_epi32(t0, t1);
        U32 h = _mm_extract_epi16(t1, 0);
        return h % TBL_SIZE;
    }
 
public:
    QMap() : mIdx(0) {
        int i;
        for (i = 0; i < TBL_SIZE; ++i) {
            mTbl[i] = -1;
        }
        for (i = 0; i < MAX_NODE; ++i) {
            mLnk[i] = -1;
        }
    }
 
    void put(const char* pKey, T val) {
        IVEC key = qstr_load(pKey);
        int h = hash(key);
        int idx = mIdx;
        if (idx >= MAX_NODE) {
            return;
        }
        if (mTbl[h] < 0) {
            mTbl[h] = idx;
        } else {
            h = mTbl[h];
            while (true) {
                if (mLnk[h] < 0) {
                    mLnk[h] = idx;
                    break;
                }
                h = mLnk[h];
            }
        }
        mKey[idx] = key;
        mVal[idx] = val;
        ++mIdx;
    }
 
    bool get(IVEC key, T* pVal) {
        int h = hash(key);
        int idx = mTbl[h];
        while (idx >= 0) {
            if (qstr_eq(key, mKey[idx])) {
                if (pVal) {
                    *pVal = mVal[idx];
                }
                return true;
            }
            idx = mLnk[idx];
        }
        return false;
    }
 
    bool get(const char* pKey, T* pVal) {
        IVEC key = qstr_load(pKey);
        return get(key, pVal);
    }
};
 
static int idx2val(int idx) {return idx*idx;}
 
static void qmap_test() {
    int i;
    int n = 100;
    char key[256];
    int val;
    QMap<int> map;
    for (i = 0; i < n; ++i) {
        val = idx2val(i);
        ::sprintf(key, "%d", val);
        map.put(key, val);
    }
 
    for (i = 0; i < n; ++i) {
        val = idx2val(i);
        ::sprintf(key, "%d", val);
        int mval = 0;
        if (map.get(key, &mval)) {
            if (mval != val) {
                ::printf("mismatch: %d != %d\n", mval, val);
            } else {
                ::printf("key = %s, val = %d\n", key, mval);
            }
        }
    }
}
 
int main() {
    qmap_test();
    return 0;
}

0
 Аватар для SaweR
29 / 29 / 4
Регистрация: 29.09.2009
Сообщений: 177
13.07.2014, 17:37
Я кажется тоже делал эти тесты:
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
#include <iostream>
#include <string>
#include <ctime>
using namespace std;
 
 
void NumberAsBinary(char* &_result, unsigned int _number)
{
    string bin;
    m:;
    auto residue = _number % 2;
    _number = _number / 2;
    bin = to_string(residue) + bin;
    if(_number != 0) goto m;
    _result = new char[bin.length() + 1];
    strcpy_s(_result, bin.length() + 1, bin.c_str());
}
 
int main()
{
    srand(static_cast<unsigned int>(time(0)));
    for(int i = 0; i < 10; i++)
    {
        char* bin = nullptr;
        unsigned int num = rand() % 512;
        NumberAsBinary(bin, num);
        cout << "radix 10: " << num << ", radix 2: " << bin;
        cout << endl;
        delete [] bin;
    }
    system("pause");
    return 0;
}
/*Компилятор: Microsoft Visual C++ 2012 (Update 3). */
На работу меня не взяли.
1
Комп_Оратор)
Эксперт по математике/физике
 Аватар для IGPIGP
9005 / 4706 / 630
Регистрация: 04.12.2011
Сообщений: 14,003
Записей в блоге: 16
13.07.2014, 20:23
Горелый, здравствуйте.
Посмотрел 2 задание и не понял как генерятся случайные числа. Вот тут:
C++
1
2
 p1 = rand()%_maxValue;
    p2 = rand()%_maxValue;
разве не могут совпасть?
А демострация на 4-х случайных значениях (подразумевается не совпадающих же?)
Может я и не понял задания, да и пишу я слабо (мягко говоря), но вот что мне показалось:
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
#include <iostream>
#include<ctime>
using namespace std;
 
void rand_array( size_t *variant, size_t variant_size, int diap_start, size_t diap_width){
int tmp(0);
int repeats=0;
for(size_t i = 0; i < variant_size; i++){
 
    do{
tmp = diap_start +rand()%(diap_width+1);
 
for(size_t j = 0; j < variant_size; j++){
    if(variant[j] == tmp){
        repeats = 1;        
        break;
    }
    else repeats = 0;
}
    }while(repeats);
variant[i] = tmp;
cout << variant[i] << " ";
}
}
 
int main(){
srand((size_t)time(0));
const int diap_start = 5;
const size_t diap_width = 10;
const size_t variant_size = 4;//для полной группы: diap_width+1
 
//массив последних чисел
size_t variant[variant_size]={0};
cout<<"\nLast numbers: "<<endl;
rand_array( variant, variant_size, diap_start, diap_width);
 
cout << endl;
 
for( int i = 0; i < variant_size; ++i){
cout<<"\nVarriant "<<i<<endl;
 
size_t *arr_tmp = new size_t[variant[i]+1];
rand_array( arr_tmp, variant[i], 1,  variant[i]-1);
delete [] arr_tmp ;
}
cout << endl;
cin.get();
return 0 ;
}
Хотя это уж точно зарубали бы.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
13.07.2014, 20:23
Помогаю со студенческими работами здесь

Delegate- проверить корректность реализации кода
class Program { delegate int KvadratTenlik(int i, int j, int k); static int Tenlik(int a, int b, int c) ...

Проверить корректность реализации динамического массива
Проверьте пожалуйста или я правильно сделал динамический массив!! #include&lt;iostream.h&gt; #include&lt;math.h&gt; ...

Проверить корректность реализации односвязного списка
Проверьте код, кому не сложно. Задача была реализовать односвязной список: функции создания, вставки элемента в конец, поиска в списке,...

Ряд Тейлора - проверить корректность реализации
Помогите с рядом Тейлора, как проверить верно ли работает программа. Есть наработки. static void Main(string args) { ...

Класс Avtomobil - проверить корректность реализации кода
Подскажете правильно ли я написала программу? class Avtomobil { public string marka; public string model; ...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru