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

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

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

Второе занятие. Динамические массивы

Требуемые условия завершения
Открыто с: пятница, 3 февраля 2017, 00:00
Срок сдачи: пятница, 10 февраля 2017, 00:00

    Задание 0 предназначено для введения в тему "Последовательности и работа с ними"

    1. Создание и вывод:

    1.1 Создайте целые числа последовательности от -20 до 30 с шагом 3 (Range).

    1.2 Создайте вещественные числа последовательности от -4 до 4 с шагом 2 (Range).

    1.3 Создайте N случайных чисел последовательности от -50 до 100  (SeqRandom).

    1.4 Создайте N чисел последовательности, заполненные 5 (SeqFill).

    1.5 Создайте N чисел последовательности c вводом (если рассматривали на лекции).

    2. Написать функции, которые в последовательностях из пунктов 1.1-1.5, находят:

      а) сумму нечетных элементов;

      б) количество максимальных;

      в) среднее арифметическое отрицательных

    Задание на работу с динамическими массивами (простые)


    • Реализуйте функцию ArraySum, которая возвращает сумму элементов заданного динамического массива. Обратите внимание на проверку входного массива: если память под массив не выделена, значение параметра равно nil, с этим значением работать нельзя.

    • Продемонстрируйте использование ArraySum в основной программе: создайте массив, выведите его длину и сумму его элементов.


  1. Дан массив, вывести его содержимое на экран, разделяя элементы точкой с запятой (процедура PrintIntArr).

    Замечание. Процедура печати должна принимать массив и строку-разделитель элементов (параметр delim: string, delim ≠ ''). Используйте для delim значение по умолчанию равное '; '.

    Указание. Не забудьте о проверке входных параметров.


  2. Заполнить массив целых чисел первыми N (N ≥ 0) положительными нечётными числами. Нужно написать два различных решения этой задачи:

    1. Функция MakeOddArr с одним параметром N, возвращающая массив.
    2. Процедура FillOddArr с двумя параметрами: входным N и выходным параметром-массивом целых чисел.

    Указание. Не забудьте о проверке входных данных с помощью Assert.

    • Продемонстрируйте заполнение и печать массива для заданного пользователем значения N в основной программе.

  3. Заполнить массив целых чисел первыми N (N ≥ 0) числами Фибоначчи. Достаточно какой-нибудь одной реализации: функции MakeFibArr или процедуры FillFibArr.

    Организуйте тестирование и демонстрацию в основной программе.


  4. Дан массив целых чисел. Написать процедуру EvenMult2 с двумя параметрами — входным массивом целых чисел и выходным значением evensCnt целого типа, которая увеличивает все элементы массива с чётными значениями в два раза и записывает в evensCnt количество таких элементов.

    Организуйте тестирование и демонстрацию процедуры в основной программе.
     


  5. Описать функцию MakeRandomRealArr с тремя параметрами: целым числом N (N ≥ 0), вещественными параметрами a, b (a < b). Функция MakeRandomRealArr должна возвращать массив (типа RealArr или array of real) из N случайных вещественных элементов в диапазоне a..b.
    Продемонстрируйте заполнение и печать массива (придётся добавить процедуру печати вещественных чисел PrintRealArr) для заданного пользователем значения N в основной программе. Не забудьте привести логи.

    Указание. Посмотрите справку по перегруженным версиям функции Random.


  6. Дан непустой (не забудьте проверить непустоту!) массив вещественных чисел. Найти его наименьший элемент (функция FindMinReal).



  7. [Файлы: DynArrs.pas, DynArrsUnittests.pas, task-08.pas]
    Дан массив целых чисел. Обнулить все его элементы с нечётными номерами (процедура SetToZeroOddInds). Условный оператор не использовать.


    Продемонстрируйте использование SetToZeroOddInds в основной программе.

Дополнительные задания


  1. Исправить процедуру PrintIntArr так, чтобы за последним элементом символ-разделитель не ставился. Для пустого массива (нулевой длины) должна выводиться строка <empty>.


  2. Дан массив целых чисел, содержащий не менее трёх элементов. Найти значение первого локального минимума (функция FirstLocalMin).

    Замечание. Элемент называется локальным минимумом, если он меньше каждого из своих соседей. Считать, что локальный минимум в массиве есть. Первый и последний элемент в качестве локальных минимумов не рассматривать.


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

    Замечание. Элемент называется локальным максимумом, если он больше каждого из своих соседей. Считать, что локальный максимум в массиве есть. Первый и последний элемент в качестве локальных максимумов не рассматривать.


◄ Первое занятие. Функции. Модули. Тестирование функций. Кортежи.
Третье занятие. Динамические массивы. Срезы. ►
Пропустить Навигация
Навигация
  • В начало

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

      • Мои курсы

      • Теги

    • Мои курсы

    • Курсы

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

        • матем-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 апреля

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

          • 3 мая - 9 мая

          • 10 мая - 16 мая

          • 17 мая - 23 мая

        • СоврМОИ

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

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

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

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

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

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

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

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

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

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

        • Другое

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

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

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

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

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

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

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

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

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

        • Другое

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

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

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

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

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

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

        • Архив

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

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

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

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

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

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

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

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

        • ВМШ

          • ВМШ - 24

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

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

      • Олимпиады

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

      • Разное

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

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

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