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

Дан массив действительных чисел. Удалить все фрагменты массива, которые образуют возрастающую последовательность. - C++

Восстановить пароль Регистрация
 
nata18
1 / 1 / 0
Регистрация: 13.02.2011
Сообщений: 179
06.12.2011, 00:06     Дан массив действительных чисел. Удалить все фрагменты массива, которые образуют возрастающую последовательность. #1
Написать библиотеку функций (шаблонов функций) для работы с динамическим одномерным массивом, реализующие следующие задачи:
  • Создание динамического массива указанного размера и его заполнения случайными числами. Функция возвращает адрес созданного массива (или получает ссылку на указатель на базовый тип массива).
  • Вывод элементов массива
  • Дополнение массива одним элементом. Функция получает адрес массива, размер и элемент для дополнения.
  • Удаление элемента по указанному позицией.
  • Вставка нового элемента в произвольную допустимую позицию в массиве
  • Дополнение массива блоком элементов.
  • Удаление блока элементов из массива по указанному позицией.
  • Вставка блока новых элементов в произвольную допустимую позицию в массиве
С помощью функций библиотеки решить задачу:
Дан массив действительных чисел. Удалить все фрагменты массива, которые образуют возрастающую последовательность.




сделайте мне хотя бы несколько функций, для того, чтобы просто понять, как делать остальные .. ((

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

Добавлено через 4 часа 42 минуты
помогите!!(
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.12.2011, 00:06     Дан массив действительных чисел. Удалить все фрагменты массива, которые образуют возрастающую последовательность.
Посмотрите здесь:

Найти все натуральные n-значные числа, цифры в которых образуют строго возрастающую последовательность C++
C++ Реализовать программу, которая находит все натуральные n-значные числа,цифры в которых образуют строго возрастающую последовательность(1234,2378,5789)
.Определить количество чисел последовательности, у которых цифры образуют возрастающую последовательность. C++
C++ Вывести индексы массива в том порядке, в котором соответствующие им элементы образуют возрастающую последовательность
C++ Выяснить, образуют ли числа возрастающую последовательность
Проверить, образуют ли элементы строк матрицы возрастающую последовательность C++
Есть ли в матрице столбец, элементы которого образуют возрастающую последовательность? C++
Dev-C++ Дано n вещественных чисел. Определить, образуют ли они возрастающую последовательность C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
silent_1991
Эксперт C++
4938 / 3014 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
06.12.2011, 15:38     Дан массив действительных чисел. Удалить все фрагменты массива, которые образуют возрастающую последовательность. #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
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
#include <limits>
#include <cstdlib>
#include <ctime>
 
template<typename T>
T random(T lower = std::numeric_limits<T>::min(), T upper = std::numeric_limits<T>::max())
{
    return static_cast<T>(lower + (upper - lower) * (static_cast<double>(rand()) / RAND_MAX));
}
 
template<typename T>
T *allocate(size_t size)
{
    return new T [size]();
}
 
template<typename T>
void release(T *arr)
{
    delete [] arr;
}
 
template<typename T>
void reallocate(T *&arr, size_t new_size)
{
    T *new_arr = allocate<T>(new_size);
 
    for (size_t i = 0; i < new_size; ++i)
        new_arr[i] = arr[i];
 
    release(arr);
 
    arr = new_arr;
}
 
template<typename T>
T *create_array(size_t size, T lower = std::numeric_limits<T>::min(), T upper = std::numeric_limits<T>::max())
{
    T *arr = allocate<T>(size);
 
    for (size_t i = 0; i < size; ++i)
        arr[i] = random(lower, upper);
    
    return arr;
}
 
template<typename T>
void delete_array(T *arr)
{
    release(arr);
}
 
template<typename T>
void print_array(const T *arr, size_t size)
{
    for (size_t i = 0; i < size; ++i)
        std::cout << arr[i] << "  ";
 
    std::cout << std::endl;
}
 
template<typename T>
bool array_insert(T *&arr, size_t size, size_t pos, const T &value)
{
    if (pos > size)
        return false;
 
    reallocate(arr, size + 1);
 
    for (size_t i = size; i > pos; --i)
        arr[i] = arr[i - 1];
 
    arr[pos] = value;
 
    return true;
}
 
template<typename T>
bool array_insert(T *&arr, size_t size, size_t pos, T *insert_arr, size_t insert_size)
{
    if (pos > size)
        return false;
 
    reallocate(arr, size + insert_size);
 
    for (size_t i = size + insert_size - 1; i > pos + insert_size; --i)
        arr[i] = arr[i - insert_size];
 
    for (size_t i = 0; i < insert_size; ++i)
        arr[i + pos] = insert_arr[i];
 
    return true;
}
 
template<typename T>
void array_push_back(T *&arr, size_t size, const T &value)
{
    array_insert(arr, size, size, value);
}
 
template<typename T>
void array_push_back(T *&arr, size_t size, T *insert_arr, size_t insert_size)
{
    array_insert(arr, size, size, insert_arr, insert_size);
}
 
template<typename T>
bool array_erase(T *&arr, size_t size, size_t pos1, size_t count)
{
    size_t pos2 = count + pos1 - 1;
 
    if (pos1 >= size || pos2 >= size)
        return false;
 
    size_t diff = pos2 - pos1 + 1;
 
    for (size_t i = pos1; i < size - diff; ++i)
        arr[i] = arr[i + diff];
 
    reallocate(arr, size - diff);
 
    return true;
}
 
template<typename T>
bool array_erase(T *&arr, size_t size, size_t pos)
{
    return array_erase(arr, size, pos, 1);
}
Yandex
Объявления
06.12.2011, 15:38     Дан массив действительных чисел. Удалить все фрагменты массива, которые образуют возрастающую последовательность.
Ответ Создать тему
Опции темы

Текущее время: 15:41. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru