Второе занятие. Динамические массивы
-
Реализуйте функцию
ArraySum, которая возвращает сумму элементов заданного динамического массива. Обратите внимание на проверку входного массива: если память под массив не выделена, значение параметра равноnil, с этим значением работать нельзя. -
Продемонстрируйте использование
ArraySumв основной программе: создайте массив, выведите его длину и сумму его элементов.
-
-
Дан массив, вывести его содержимое на экран, разделяя элементы точкой с запятой (процедураPrintIntArr).Замечание. Процедура печати должна принимать массив и строку-разделитель элементов (параметр
delim: string, delim ≠''). Используйте для delim значение по умолчанию равное'; '.Указание. Не забудьте о проверке входных параметров.
-
Заполнить массив целых чисел первыми N (N ≥ 0) положительными нечётными числами. Нужно написать два различных решения этой задачи:- Функция
MakeOddArrс одним параметром N, возвращающая массив. - Процедура
FillOddArrс двумя параметрами: входным N и выходным параметром-массивом целых чисел.
Указание. Не забудьте о проверке входных данных с помощью
Assert.- Продемонстрируйте заполнение и печать массива для заданного пользователем значения N в основной программе.
- Функция
-
Заполнить массив целых чисел первыми N (N ≥ 0) числами Фибоначчи. Достаточно какой-нибудь одной реализации: функцииMakeFibArrили процедурыFillFibArr.Организуйте тестирование и демонстрацию в основной программе.
-
Дан массив целых чисел. Написать процедуруEvenMult2с двумя параметрами — входным массивом целых чисел и выходным значениемevensCntцелого типа, которая увеличивает все элементы массива с чётными значениями в два раза и записывает вevensCntколичество таких элементов.Организуйте тестирование и демонстрацию процедуры в основной программе.
-
Описать функциюMakeRandomRealArrс тремя параметрами: целым числом N (N ≥ 0), вещественными параметрами a, b (a < b). ФункцияMakeRandomRealArrдолжна возвращать массив (типаRealArrилиarray of real) из N случайных вещественных элементов в диапазоне a..b.
Продемонстрируйте заполнение и печать массива (придётся добавить процедуру печати вещественных чиселPrintRealArr) для заданного пользователем значения N в основной программе. Не забудьте привести логи.Указание. Посмотрите справку по перегруженным версиям функции
Random. -
Дан непустой (не забудьте проверить непустоту!) массив вещественных чисел. Найти его наименьший элемент (функцияFindMinReal). -
[Файлы:
DynArrs.pas,DynArrsUnittests.pas,task-08.pas]
Дан массив целых чисел. Обнулить все его элементы с нечётными номерами (процедураSetToZeroOddInds). Условный оператор не использовать.
Продемонстрируйте использованиеSetToZeroOddIndsв основной программе.
Задание 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, находят:
а) сумму нечетных элементов;
б) количество максимальных;
в) среднее арифметическое отрицательных
Задание на работу с динамическими массивами (простые)Дополнительные задания
-
Исправить процедуруPrintIntArrтак, чтобы за последним элементом символ-разделитель не ставился. Для пустого массива (нулевой длины) должна выводиться строка<empty>. -
Дан массив целых чисел, содержащий не менее трёх элементов. Найти значение первого локального минимума (функцияFirstLocalMin).Замечание. Элемент называется локальным минимумом, если он меньше каждого из своих соседей. Считать, что локальный минимум в массиве есть. Первый и последний элемент в качестве локальных минимумов не рассматривать.
-
Дан массив целых чисел, содержащий не менее трёх элементов. Найти значение и номер последнего локального максимума (процедура с двумя выходными параметрами).Замечание. Элемент называется локальным максимумом, если он больше каждого из своих соседей. Считать, что локальный максимум в массиве есть. Первый и последний элемент в качестве локальных максимумов не рассматривать.