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

Новые возможности PascalABC.net и ООП в С++

  1. В начало
  2. Курсы
  3. Дополнительное образование
  4. Новые возможности Р
  5. 19 апреля - 25 апреля
  6. Задание 3. Динамические массивы. Указатели. С-строки

Задание 3. Динамические массивы. Указатели. С-строки

Требуемые условия завершения
Открыто с: вторник, 25 апреля 2017, 17:15
Срок сдачи: четверг, 4 мая 2017, 00:00

Скачайте пример работы с массивом и создайте проект.

Часть 1. Одномерные массивы в динамической памяти [30 баллов]

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

  1. Дан массив целых чисел A, создать массив, в который входят только чётные элементы A. Вернуть новый массив и его длину.

    Указание 1 (заголовок). Поскольку под возвратом массива понимается возврат указателя, то int * можно сделать либо явным возвращаемым значением функции, либо передавать по ссылке, подразумевая выходной параметр. Следовательно, имеем два приемлемых варианта заголовка данной функции:

    • int * onlyEvens(int * a, int size, int & newSize);
    • void onlyEvens(int * a, int size, int * & evens, int & newSize);

    Указание 2 (алгоритм). Есть два подхода к решению подобных задач. Либо предварительно подсчитать количество чётных элементов и выделить нужное количество памяти под результирующий массив, либо выделить под результирующий массив максимально возможное количество памяти, которое может потребоваться (в данном случае это длина исходного массива). Имеем традиционный выбор между затратами по памяти в обмен затрат по времени или наоборот. Оба варианта приемлемы.

  2. Дан массив целых чисел A, создать массив, в котором после каждого элемента, последняя цифра которого равна трём, вставлено число 0.

  3.  Дан массив вещественных чисел. Удалить из массива все элементы, меньшие
    среднего арифметического элементов массива. 

Убедитесь, что в основной программе после печати результирующего массива вы не забыли освободить память (delete []).

Часть 2. Указатели и массивы [40 баллов]

Через указатели можно работать с любыми массивами. Решите следующие задачи, не пользуясь операцией индексации массива []:

  1. Дан массив целых чисел. Обнулить каждый второй его элемент.

  2. Дан массив целых чисел. Найти и обнулить максимальный элемент.

  3. Дан массив чисел. Организовать циклический сдвиг элементов массива на 1 элемент влево. Указание. Реализовать шаблон функции.


Часть 3. Указатели и С-строки [30 баллов]


Комментарии к каждой функции должны содержаться как в заголовочном файле, так и в файле с реализацией.

  1. Дана строка. Подсчитать количество содержащихся в ней цифр.

    int countDigits(char * str);
  2. Дана строка. Определите указатель на ее последний символ. Верните «нулевой указатель» (число 0 или nullptr), если строка пустая.

    char * findLastChar(char * str);

    В печати результата данной функции на консоль удобно использовать тернарную условную операцию: 1) сохранить результат в переменной, 2) выводить значение этой переменной если она не равна 0/nullptr и сообщение типа <пустая строка> в противном случае. Всё это, конечно, делается внутри main.

  3. Поменяйте порядок символов в строке на противоположный. Для этого определите указатель на последний символ (используйте решение предыдущего задания), и, перемещая два указателя от начала и конца строки к середине, меняйте местами соответствующие символы.

    void reverseString(char * str);

    Указание: при проверке в assert следует использовать стандартную функцию сравнения строк strcmp.



◄ Задание 2. Массивы. Указатели?.
Задание 4. Классы. ►
Пропустить Навигация
Навигация
  • В начало

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

      • Мои курсы

      • Теги

    • Мои курсы

    • Курсы

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

        • матем-10 (онлайн)

        • Информатика НК

        • Информатика 0 курс

        • ДиПВеб

        • Новые возможности Р

          • Общее

          • 1 февраля - 7 февраля

          • 8 февраля - 14 февраля

          • 15 февраля - 21 февраля

          • 22 февраля - 28 февраля

          • 1 марта - 7 марта

          • 8 марта - 14 марта

          • 15 марта - 21 марта

          • 22 марта - 28 марта

          • 29 марта - 4 апреля

          • 5 апреля - 11 апреля

          • 12 апреля - 18 апреля

          • 19 апреля - 25 апреля

            • ЗаданиеЗадание 3. Динамические массивы. Указатели. С-строки

          • 26 апреля - 2 мая

          • 3 мая - 9 мая

          • 10 мая - 16 мая

          • 17 мая - 23 мая

        • СоврМОИ

        • Педагогическое образование: технологии реализации ...

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

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

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

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

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

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

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

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

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

        • Другое

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

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

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

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

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

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

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

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

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

        • Другое

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

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

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

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

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

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

        • Архив

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

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

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

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

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

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

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

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

        • ВМШ

          • ВМШ - 24

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

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

      • Олимпиады

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

      • Разное

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

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

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