33. Одномерный динамический массив (возврат)34. Одномерный динамический массив (выходной параметр)35. Структура — массив целых чисел
С++
Эта задача на отработку навыка работы с сырыми указателями, поэтому использовать ссылки или заворачивать указатели в структуры/классы нельзя.
Реализуйте функцию create
создающую и инициализирующую одномерный динамический массив целых чисел. Функция должна удовлетворять требованиям:
0
. Элементы созданного массива инициализируются арифметической прогрессией, при этом нулевой член массива равен начальному члену.Реализуйте функцию sort
сортирующую одномерный массив целых чисел по возрастанию. Функция должна удовлетворять требованиям:
Реализуйте функцию print
отображающую элементы одномерного массива на экран. Функция должна удовлетворять требованиям:
Используя созданные функции выполните следующие действия:
Python
По аналогии с заданием для С++ реализуйте 3 функции: create
, sort
, print
. В последние две функции можно не передавать параметр - размер списка.
Используя созданные функции выполните следующие действия:
Формат ввода
Три целых числа, каждое на новой строке. Первое число в диапазоне , второе и третье .
Формат вывода
Отсортированный по возрастанию массив в формате: .
Пример 1
Ввод | Вывод |
8 3 -4 | [-25, -21, -17, -13, -9, -5, -1, 3] |
Пример 2
Ввод | Вывод |
8 3 0 | [3, 3, 3, 3, 3, 3, 3, 3] |
С++
Эта задача на отработку навыка работы с сырыми указателями, поэтому использовать ссылки или заворачивать указатели в структуры/классы нельзя.
Реализуйте функцию create
создающую и инициализирующую одномерный динамический массив целых чисел. Функция должна удовлетворять требованиям:
Функция принимает 4 параметра:
create
должна быть связана с созданным в ней массивом. Нужно придумать как.0
. Элементы созданного массива инициализируются арифметической прогрессией, при этом нулевой член массива равен начальному члену.Функция ничего не возвращает.
Реализуйте функцию destroy
освобождающую память занятую массивом. Функция должна удовлетворять требованиям:
nullptr
. Если переменная изначально была nullptr
, то функция ничего не делает.Используя созданные функции и функции sort
и print
из задания 33 выполните следующие действия:
Формат ввода
Три целых числа, каждое на новой строке. Первое число в диапазоне , второе и третье .
Формат вывода
Отсортированный по возрастанию массив в формате: .
Пример 1
Ввод | Вывод |
8 3 -4 | [-25, -21, -17, -13, -9, -5, -1, 3] |
Пример 2
Ввод | Вывод |
8 3 0 | [3, 3, 3, 3, 3, 3, 3, 3] |
С++
Дана структура вида:
xxxxxxxxxx
struct IntArray {
int *data;
int size;
};
data
— массив целых чисел размером size
.
Реализуйте набор функций, для работы с переменными типа IntArray
.
Прототипы:
xxxxxxxxxx
/** Создаёт динамический массив размера size и сохраняет его в поле data переменной arr. Поле size структуры arr становится равным параметру size */
void create(IntArray* arr, int size);
void create(IntArray& arr, int size);
/** Возвращает элемент массива с индексом index, при этом проверяет выход за границы массива. Если index лежит за пределами массива, вывести сообщение об ошибке и прервать работу программы */
int get(IntArray* arr, int index);
int get(IntArray& arr, int index);
/** Изменяет значение элемента массива с индексом index на значение параметра value, при этом проверяет выход за границы массива. Если index лежит за пределами массива, вывести сообщение об ошибке и прервать работу программы */
void set(IntArray* arr, int index, int value);
void set(IntArray& arr, int index, int value);
/** Выводит на экран содержимое массива в формате: [1, 2, 3] */
void print(IntArray* arr);
void print(IntArray& arr);
/** Изменяет размер массива с сохранением элементов. Если новый размер меньше, хвостовые элементы обрезаются, если больше, то дополнительные элементы инициализируются нулём */
void resize(IntArray* arr, int newSize);
void resize(IntArray& arr, int newSize);
/** Освобождает память занятую массивом. Поле data становится равным nullptr, поле size становится равным нулю. Предусмотреть случай попытки удаления уже удалённого массива */
void destroy(IntArray* arr);
void destroy(IntArray& arr);
Используя созданную вами структуру и набор функций выполните следующие действия:
IntArray
) размером 30 элементов;Формат ввода
Ввода нет.
Формат вывода
Согласно заданию.
Пример 1
Ввод | Вывод |
[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] [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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] |