Перейти к основному содержанию
EDU-MMCS
Вы используете гостевой доступ (Вход)

1.3 Языки программирования (практика, Герасименко Т.Е.)

  1. В начало
  2. Курсы
  3. Архив курсов
  4. 1.3 ЯП
  5. Динамические массивы
  6. Лабораторная работа №9. Динамические массивы

Лабораторная работа №9. Динамические массивы

Требуемые условия завершения

В следующих двух задачах требуется использовать размещение массивов в динамической памяти (new / delete).

Реализовать все функции из lab9.h.Добавить вызовы тестов в test_full_lab9() для реализованных функций.

  • Описать функцию генерации динамического массива заданной длины. Для заполнения значений использовать генератор случайных чисел std::rand().
  • Создать массив из 1 000 000 целых чисел. Используя функцию sort_time_in_seconds замерить время сортировки массива функцией qsort.
  • Реализовать функцию вставки значения в середину динамического массива. Выделять память под массив нового размера. Если число элементов в массиве нечётное, вставить элемент после центрального.
  • Реализовать функцию удаления дубликатов из массива. Освобождать неиспользуемую память.
  • Дан массив целых чисел A, создать массив, в который входят только чётные элементы A. Вернуть новый массив и его длину. Указание 1 (заголовок). Поскольку под возвратом массива понимается возврат указателя, то int * можно сделать либо явным возвращаемым значением функции, либо передавать по ссылке, подразумевая выходной параметр. Следовательно, имеем два приемлемых варианта заголовка данной функции:
int * onlyEvens(int * a, int size, int & newSize);void onlyEvens(int * a, int size, int * & evens, int & newSize);
          Указание 2 (алгоритм). Есть два подхода к решению подобных задач. Либо предварительно подсчитать количество чётных элементов и выделить нужное количество памяти под результирующий массив, либо выделить под результирующий массив максимально возможное количество памяти, которое может потребоваться (в данном случае это длина исходного массива). Имеем традиционный выбор между затратами по памяти в обмен затрат по времени или наоборот. Оба варианта приемлемы.
    • Дан массив целых чисел A, создать массив, в котором после каждого элемента, последняя цифра которого равна трём, вставлено число 0.
    •  Дан массив вещественных чисел. Удалить из массива все элементы, меньшие среднего арифметического элементов массива. 
    Убедитесь, что в основной программе после печати результирующего массива вы не забыли освободить память (delete []).

    • crtdynmem.h crtdynmem.h
      9 апреля 2018, 13:02
    • lab9.cpp lab9.cpp
      9 апреля 2018, 13:02
    • lab9.h lab9.h
      9 апреля 2018, 13:02
    • main.cpp main.cpp
      9 апреля 2018, 13:02
    • test_lab9.cpp test_lab9.cpp
      9 апреля 2018, 13:02
    • test_lab9.h test_lab9.h
      9 апреля 2018, 13:02
    ◄ Лекция Динамические массивы (Пустовалова О.Г.)
    Индивидуальное задание №3 ►
    Пропустить Навигация
    Навигация
    • В начало

      • Страницы сайта

        • Мои курсы

        • Теги

      • Мои курсы

      • Курсы

        • Архив курсов

          • ДК

          • НИР2020

          • Компьютерный эксперимент в нелинейной динамике

          • НИС_ФИИТ

          • пример_курса_для_преподавателей

          • Базы данных

          • ЧМы2

          • IT-Cross-2017

          • AM-Multi-2016

          • ОАП

          • ЭВМ (1 курс)

          • 1.3 ЯП

            • Общее

            • Знакомство с С++. Компиляция и Отладка

            • Использование функций

            • Многофайловая компановка в С++. Тестирование

            • Массивы. Обработка массивов

            • Работа с указателями

            • Динамические массивы

              • ГиперссылкаБоремся с утечками памяти (C++ CRT)

              • ГиперссылкаПоиск утечек памяти современными средствами

              • ФайлЛекция Динамические массивы (Пустовалова О.Г.)

              • ЗаданиеЛабораторная работа №9. Динамические массивы

              • ФайлИндивидуальное задание №3

              • ЗаданиеВыбор варианта индивидуального задания

              • ЗаданиеОтчет по индивидуальному заданию №3

              • ТестКонтрольная работа №2

            • 30.04.2018 Двумерные массивы

            • 7.05.2018 Строки

            • Работа с файлами

            • Дневник и отчет по практике

        • Осенний семестр

          • Прикладная математика и информатика

          • Фундаментальная информатика и ИТ

          • Математика, механика

          • Педагогическое образование

          • Магистратура

            • Разработка мобильных приложений и компьютерных игр

          • Аспирантура

          • Вечернее отделение

          • Другое

        • Весенний семестр

          • Прикладная математика и информатика

          • Фундаментальная информатика и ИТ

          • Математика, механика

          • Педагогическое образование

          • Магистратура

            • Разработка мобильных приложений и компьютерных игр

          • Аспирантура

          • Вечернее отделение

          • Другое

        • Воскресная компьютерная школа

          • Пользователь компьютера плюс

          • Пользователь прикладных программ

          • Программирование I ступень

          • Программирование II ступень

          • Программирование III ступень

          • Архив

        • Воскресная математическая школа

          • Открытое тестирование РНОМЦ и мехмата ЮФУ - 2025

          • Олимпиадная математическая школа

          • Повышение квалификации

          • Доступная математика

          • Лаборатория математического онлайн-образования мех...

          • Осенняя универсиада

          • Научно-практическая конференция

          • ВМШ

            • ВМШ - 24

          • Летняя олимпиадная математическая школа РНОМЦ и ме...

        • Государственная итоговая аттестация

        • Дополнительное образование

        • Олимпиады

        • Видеолекции

        • Разное

        • Заочная школа мехмата ЮФУ

    Служба поддержки сайта
    Вы используете гостевой доступ (Вход)
    1.3 ЯП
    Сводка хранения данных
    Скачать мобильное приложение Яндекс.Метрика