Если в массиве есть нулевые элементы, найти произведение положительных элементов.
Разработать две рекурсивные функции для обработки одномерного динамического массива. В первой функции реализовать линейную рекурсию, во второй – каскадную. Функции реализовать в отдельном модуле.
Ввод всех данных осуществляется из файла, вывод – в файл. Имена файлов передаются через параметры программы.
В спецификации для каждой функции нарисовать дерево рекурсивных вызовов для массива из 7 элементов.
Класс | Имя | Смысл | Тип | Структура |
---|---|---|---|---|
Входные данные | a | Исходный массив | вещ. | одномерный массив |
n | Количество элементов массива | цел. | простая переменная | |
Выходные данные | f | Признак наличия нулевых элементов в массиве | лог. | простая переменная |
p | Произведение положительных элементов в массиве | вещ. | простая переменная |
Класс | Имя | Смысл | Тип | Структура |
---|---|---|---|---|
Входные данные | x | Исходный массив | вещ. | одномерный массив |
n1, n2 | Границы индексов для обработки | цел. | простая переменная | |
Выходные данные | f | Признак наличия нулевых элементов в массиве | лог. | простая переменная |
Класс | Имя | Смысл | Тип | Структура |
---|---|---|---|---|
Входные данные | x | Исходный массив | вещ. | одномерный массив |
n1, n2 | Границы индексов для обработки | цел. | простая переменная | |
Выходные данные | p | Произведение положительных элементов | вещ. | простая переменная |
№ теста | Входные данные | Ожидаемые результаты | Смысл теста |
---|---|---|---|
1 |
n = 9 a = {2, -5, 4, 5, -7, 2, 0, -10, -1} |
f = true p = 80 |
В массиве есть как положительные, так и нулевые элементы. |
2 |
n = 8 a = {2, -3, 1, 5, -5, 10, -10, 0} |
f = true p = 100 |
В массиве есть как положительные, так и нулевые элементы. |
3 |
n = 7 a = {1, 2, 3, 4, 5, 6, 7} |
f = false p = 5040 |
В массиве есть только положительные элементы. |
4 |
n = 3 a = {-1, -5, -8} |
f = true p = 1 |
В массиве нет ни нулевых, ни положительных элементов. |
5 |
n = 3 a = {3, g, 7} |
Некорректные исходные данные. |
Не забудьте также проверить ситуации недостаточного количества параметров и отсутствия входного файла.
Функция проверки наличия нулевых элементов Condition в качестве исходных данных получает массив x и границы индексов элементов массива для обработки n1 и n2 и реализует линейную рекурсию:
Функция поиска произведения положительных элементов Product в качестве исходных данных получает массив x и границы индексов элементов массива для обработки n1 и n2 и реализует каскадную рекурсию: