Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Remdzhem
0 / 0 / 9
Регистрация: 23.10.2016
Сообщений: 134
#1

Функции для работы с одномерным динамическим массивом - C++

27.02.2017, 19:19. Просмотров 377. Ответов 6
Метки нет (Все метки)

Написать функции для работы с одномерным динамическим массивом:
1. Заполнение массива случайными значениями.
2. Вывод элементов массива на экран.
3. Найти произведение элементов меньших k.
4. Создать новый одномерный массив из элементов второй половины исходного массива.
Помогите пожалуйста выполнить задания
http://www.cyberforum.ru/cpp-beginners/thread146503.html
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.02.2017, 19:19
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Функции для работы с одномерным динамическим массивом (C++):

Программа работы с одномерным динамическим массивом
Помогите пожалуйста!!! //Реализовать функционал работы с одномерным...

Реализовать функционал работы с одномерным динамическим массивом (добавление одного элемента в начало)
Реализовать функционал работы с одномерным динамическим массивом. Возникла...

Написать функции для работы с динамическим массивом
Дали вот эти задачи никак не могу решить, помогите. 1. Написать следующие...

Шаблон класса для работы с одномерным массивом
Создать шаблон класса для работы с одномерным массивом. Выполнить...

Класс для работы с n-мерным динамическим массивом
При работе с 3-мерным динамическим массивом я чего-то "в пня въехал". Начал...

6
Nishen
456 / 279 / 154
Регистрация: 26.02.2015
Сообщений: 1,321
Завершенные тесты: 2
27.02.2017, 19:46 #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
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
#include <iostream>
#include <ctime>
 
template <class TArray, class TSize>
void fillArray(TArray* array, TSize size);
 
template <class TArray, class TSize>
void displayValues(const TArray* array, TSize size);
 
template <class TArray, class TSize, class TKey>
TArray multOfValues(const TArray* array, TSize size, TKey key);
 
int main() {
 
    unsigned int size = 0;
 
    std::cout
        << "Please, enter a size of the array: ";
    std::cin
        >> size;
 
    if (!size) {
 
        std::cout
            << "The array size is equal to zero."
            << std::endl;
 
        std::system("PAUSE");
        return EXIT_SUCCESS;
 
    }
 
    int *array = new int[size];
 
    fillArray(array, size);
 
    displayValues(array, size);
 
    std::cout
        << std::endl
        << multOfValues(array, size, 1)
        << std::endl;
 
    delete[] array;
 
    std::system("PAUSE");
    return EXIT_SUCCESS;
 
}
 
template <class TArray, class TSize>
void fillArray(TArray* array, TSize size) {
 
    srand(time(NULL));
 
    for (unsigned int i = 0; i < size; i++) {
 
        array[i] = rand() % 101 - 50;
 
    }
 
}
 
template <class TArray, class TSize>
void displayValues(const TArray* array, TSize size) {
 
    std::cout
        << "The values of the array: ";
 
    for (unsigned int i = 0; i < size; i++) {
 
        std::cout
            << array[i]
            << " ";
 
    }
 
    std::cout
        << std::endl;
 
}
 
template <class TArray, class TSize, class TKey>
TArray multOfValues(const TArray* array, TSize size, TKey key) {
 
    TArray value = 1;
 
    for (unsigned int i = 0; i < size; i++) {
 
        if (array[i] < key) {
 
            value *= array[i];
 
        }
 
    }
 
    return value;
 
}
Добавлено через 52 секунды
Последнее не смог сделать. Постоянно вызывается точка останова программы.
0
Remdzhem
0 / 0 / 9
Регистрация: 23.10.2016
Сообщений: 134
27.02.2017, 20:01  [ТС] #3
Nishen, спасибо, а расскажите будет же работать программа без шаблонов функций? С ними лучше и удобнее или для чего они?
0
Nishen
456 / 279 / 154
Регистрация: 26.02.2015
Сообщений: 1,321
Завершенные тесты: 2
27.02.2017, 20:09 #4
Цитата Сообщение от Remdzhem Посмотреть сообщение
будет же работать
Да, будет, но только с одним типом данных.
Цитата Сообщение от Remdzhem Посмотреть сообщение
С ними лучше и удобнее или для чего они?
Шаблоны функций позволяют сокращать написание кода, т.к. мне, например, не нужно писать набор функций для типа int, еще один для типа float и т.д. Я просто пишу один шаблон и компилятор сам генерирует набор функций с переданными ей параметрами.

Добавлено через 1 минуту
Я могу переписать функции без шаблонов, но тогда укажите, какой тип массива Вам нужен?
0
Remdzhem
0 / 0 / 9
Регистрация: 23.10.2016
Сообщений: 134
27.02.2017, 20:16  [ТС] #5
Я думаю тип int.
0
Nemovok
237 / 84 / 86
Регистрация: 30.10.2015
Сообщений: 521
Завершенные тесты: 1
27.02.2017, 20:18 #6
Вот для int:
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
#include <iostream>
#include <vector>
#include <cstdlib>
#include <algorithm>
 
void fillArray(unsigned int, std::vector<int>&);
void showArray(unsigned int, std::vector<int>&);
void compositionIf(unsigned int, std::vector<int>&, const int);
void newArray(unsigned int, std::vector<int>&, std::vector<int>&);
 
int main()
{
  const int K = 80;
 
  unsigned int size_array;
  std::vector<int> array(0), array2(0);
 
  std::cout << "Size: ";
  std::cin >> size_array;
 
  array.resize(size_array);
 
  fillArray(size_array, array); 
  showArray(size_array, array); 
  compositionIf(size_array, array, K);
  newArray(size_array, array, array2);
 
  return 0;
}
 
void fillArray(unsigned int s, std::vector<int>& a)
{
  for (auto& i : a)
    i = rand() % 100;
}
 
void showArray(unsigned int s, std::vector<int>& a)
{
  for (const auto& i : a)
    std::cout << i << " ";
 
  std::cout << std::endl;
}
 
void compositionIf(unsigned int s, std::vector<int>& a, const int k)
{
  int comp = 1;
 
  for (auto& i : a)
    if (i < k)
      comp *= i;
 
  std::cout << comp << std::endl;
}
 
void newArray(unsigned int s, std::vector<int>& a, std::vector<int>& a2)
{
  a2.resize(s / 2);
 
  std::copy(a.begin() + s / 2, a.end(), a2.begin()); 
 
  for (const auto& i : a2)
    std::cout << i << " ";
 
  std::cout << std::endl;
}
1
Nishen
456 / 279 / 154
Регистрация: 26.02.2015
Сообщений: 1,321
Завершенные тесты: 2
27.02.2017, 20:20 #7
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
#include <iostream>
#include <ctime>
 
void fillArray(int* array, int size);
void displayValues(const int* array, int size);
int multOfValues(const int* array, int size, int key);
 
int main() {
 
    int size = 0;
 
    std::cout
        << "Please, enter a size of the array: ";
    std::cin
        >> size;
 
    if (size <= 0) {
 
        std::cout
            << "The array size is less than or equal to zero."
            << std::endl;
 
        std::system("PAUSE");
        return EXIT_SUCCESS;
 
    }
 
    int *array = new int[size];
 
    fillArray(array, size);
 
    displayValues(array, size);
 
    std::cout
        << std::endl
        << multOfValues(array, size, 1)
        << std::endl;
 
    delete[] array;
 
    std::system("PAUSE");
    return EXIT_SUCCESS;
 
}
 
void fillArray(int* array, int size) {
 
    srand(time(NULL));
 
    for (unsigned int i = 0; i < size; i++) {
 
        array[i] = rand() % 101 - 50;
 
    }
 
}
 
void displayValues(const int* array, int size) {
 
    std::cout
        << "The values of the array: ";
 
    for (unsigned int i = 0; i < size; i++) {
 
        std::cout
            << array[i]
            << " ";
 
    }
 
    std::cout
        << std::endl;
 
}
 
int multOfValues(const int* array, int size, int key) {
 
    int value = 1;
 
    for (unsigned int i = 0; i < size; i++) {
 
        if (array[i] < key) {
 
            value *= array[i];
 
        }
 
    }
 
    return value;
 
}
1
27.02.2017, 20:20
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.02.2017, 20:20
Привет! Вот еще темы с решениями:

Написать библиотеку функций для работы с одномерным целочисленным массивом
1 Написати бiблiотеку функцiй для роботи з одновимiрним цiлочисельним...

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

Написать программу для работы с динамическим целочисленным двумерным массивом
Написать программу для работы с динамическим целочисленным двумерным массивом....

Написать функции для выполнения операций над одномерным массивом целых чисел
Написать функции для выполнения операций над одномерным массивом целых чисел:...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

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