33. Одномерный динамический массив (возврат)34. Одномерный динамический массив (выходной параметр)35. Структура — массив целых чисел

33. Одномерный динамический массив (возврат)

Ссылка для тренировки (скоро)

 

С++

Эта задача на отработку навыка работы с сырыми указателями, поэтому использовать ссылки или заворачивать указатели в структуры/классы нельзя.

Реализуйте функцию create создающую и инициализирующую одномерный динамический массив целых чисел. Функция должна удовлетворять требованиям:

  1. Функция принимает 3 параметра: длину массива, и два числа: начальный член и шаг арифметической прогрессии. При этом второй и третий параметры имеют значений по умолчанию 0. Элементы созданного массива инициализируются арифметической прогрессией, при этом нулевой член массива равен начальному члену.
  2. Функция возвращает созданный динамический массив (нужно подумать как именно это сделать);

Реализуйте функцию sort сортирующую одномерный массив целых чисел по возрастанию. Функция должна удовлетворять требованиям:

  1. Функция принимает 2 параметра: массив и размер массива;
  2. Функция возвращает отсортированный массив. Это тот же массива, что и передали, то есть функция модифицирует переданный массив.
  3. Метод сортировки: сортировка вставками (insertion sort);

Реализуйте функцию print отображающую элементы одномерного массива на экран. Функция должна удовлетворять требованиям:

  1. Функция принимает 2 параметра: массив и размер массива;
  2. Функция возвращает переданный ей массив;

Используя созданные функции выполните следующие действия:

  1. Запросите у пользователя 3 числа: длину массива, начальный член и шаг арифметической прогрессии;
  2. Создайте массив;
  3. Отсортируйте массив;
  4. Выведите массив на экран;
  5. Освободите память занимаемую массивом;

Python

По аналогии с заданием для С++ реализуйте 3 функции: create, sort, print. В последние две функции можно не передавать параметр - размер списка.

Используя созданные функции выполните следующие действия:

  1. Запросите у пользователя 3 числа: длину массива, начальный член и шаг арифметической прогрессии;
  2. Создайте список;
  3. Отсортируйте список;
  4. Выведите список на экран;

Формат ввода
Три целых числа, каждое на новой строке. Первое число в диапазоне , второе и третье .

Формат вывода
Отсортированный по возрастанию массив в формате: .

Пример 1

ВводВывод
8
3
-4
[-25, -21, -17, -13, -9, -5, -1, 3]

Пример 2

ВводВывод
8
3
0
[3, 3, 3, 3, 3, 3, 3, 3]

 

34. Одномерный динамический массив (выходной параметр)

Ссылка для тренировки (скоро)

С++

Эта задача на отработку навыка работы с сырыми указателями, поэтому использовать ссылки или заворачивать указатели в структуры/классы нельзя.

Реализуйте функцию create создающую и инициализирующую одномерный динамический массив целых чисел. Функция должна удовлетворять требованиям:

  1. Функция принимает 4 параметра:

    • первый параметр используется как выходной. То есть, вызывающая функция передаёт первым параметром переменную, которая после работы функции create должна быть связана с созданным в ней массивом. Нужно придумать как.
    • оставшиеся 3 параметра - длина массива, и два числа: начальный член и шаг арифметической прогрессии. При этом третий и четвертый параметры имеют значений по умолчанию 0. Элементы созданного массива инициализируются арифметической прогрессией, при этом нулевой член массива равен начальному члену.
  2. Функция ничего не возвращает.

Реализуйте функцию destroy освобождающую память занятую массивом. Функция должна удовлетворять требованиям:

  1. Функция принимает один параметр. Он используется как выходной. Вызывающая функция подставляет в этот параметр переменную связанную с массивом который требуется удалить.
  2. После работы функции память занятая массивом освобождается. Переменная переданная в качестве параметра устанавливается в nullptr. Если переменная изначально была nullptr, то функция ничего не делает.
  3. Функция ничего не возвращает.

Используя созданные функции и функции sort и print из задания 33 выполните следующие действия:

  1. Запросите у пользователя 3 числа: длину массива, начальный член и шаг арифметической прогрессии;
  2. Создайте массив;
  3. Отсортируйте массив;
  4. Выведите массив на экран;
  5. Освободите память занимаемую массивом;

Формат ввода
Три целых числа, каждое на новой строке. Первое число в диапазоне , второе и третье .

Формат вывода
Отсортированный по возрастанию массив в формате: .

Пример 1

ВводВывод
8
3
-4
[-25, -21, -17, -13, -9, -5, -1, 3]

Пример 2

ВводВывод
8
3
0
[3, 3, 3, 3, 3, 3, 3, 3]

 

35. Структура — массив целых чисел

Ссылка для тренировки (скоро)

С++

Дана структура вида:

data — массив целых чисел размером size.

Реализуйте набор функций, для работы с переменными типа IntArray.

Прототипы:

Используя созданную вами структуру и набор функций выполните следующие действия:

  1. Создайте массив ( IntArray ) размером 30 элементов;
  2. Заполните элементы массива значениями от 1 до 30;
  3. Распечатайте значения массива на экран;
  4. Измените размер массива на 50;
  5. Распечатайте значения массива на экран;
  6. Установите размер массива 10;
  7. Распечатайте значения массива на экран;
  8. Освободите память занятую массивом.

Формат ввода
Ввода нет.

Формат вывода
Согласно заданию.

Пример 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]