Разработать программу для обработки динамических массивов – двумерного и одномерных.
Найти минимальный элемент первой строки матрицы, все элементы которой положительны. Если такой строки нет, сформировать новый массив – определить количество нулевых элементов в каждой строке матрицы. Также определить в каком из двух одномерных массивов минимальный элемент больше.
В лабораторной работе необходимо разработать две подпрограммы, получающие двумерный массив, а также две или три подпрограммы, получающие одномерный массив. Количество подпрограмм для обработки одномерного массива зависит от варианта – в некоторых требуется две подпрограммы, в других три. В подпрограммы обработки одномерного массива в качестве фактического параметра будут передаваться строки матрицы и одномерные массивы.
Выбрать подходящий тип подпрограмм – процедура или функция. Использовать досрочный выход из цикла. Подпрограммы реализовать в отдельном модуле.
Ввод всех данных осуществляется из файла, вывод – в файл. Имена файлов передаются через параметры программы.
Класс | Имя | Смысл | Тип | Структура |
---|---|---|---|---|
Входные данные | a | Исходная матрица | вещ. | двумерный массив |
x, y | Исходные массивы | вещ. | одномерный массив | |
Выходные данные | k | Номер первой строки, все элементы которой положительны | цел. | простая переменная |
min | Минимальный элемент первой строки, все элементы которой положительны | вещ. | простая переменная | |
b | Количество нулевых элементов в каждой строке матрицы | цел. | одномерный массив | |
minx, miny | Минимальные элементы массивов x и y соответственно | вещ. | простая переменная |
Класс | Имя | Смысл | Тип | Структура |
---|---|---|---|---|
Входные данные | x | Исходный массив | вещ. | одномерный массив |
Выходные данные | result | Признак отсутствия отрицательных элементов в массиве | лог. | простая переменная |
Класс | Имя | Смысл | Тип | Структура |
---|---|---|---|---|
Входные данные | x | Исходная матрица | вещ. | двумерный массив |
Выходные данные | result | Номер первой строки, содержащей только положительные элементы (-1, если такой строки нет) | цел. | простая переменная |
Класс | Имя | Смысл | Тип | Структура |
---|---|---|---|---|
Входные данные | x | Исходный массив | вещ. | одномерный массив |
Выходные данные | result | Минимальный элемент массива | вещ. | простая переменная |
Класс | Имя | Смысл | Тип | Структура |
---|---|---|---|---|
Входные данные | x | Исходная матрица | вещ. | двумерный массив |
Выходные данные | y | Количество нулевых элементов в каждой строке матрицы | цел. | одномерный массив |
Класс | Имя | Смысл | Тип | Структура |
---|---|---|---|---|
Входные данные | x | Исходный массив | вещ. | одномерный массив |
Выходные данные | result | Количество элементов массива | цел. | простая переменная |
№ теста | Входные данные | Ожидаемые результаты | Смысл теста |
---|---|---|---|
1 |
m = 3, n = 3 a = 1 -2 3 -4 5 6 7 8 -9 nx = 5 x = {3, 4, 5, 6, 7} ny = 4 y = {5, 4, 3, 2} |
k = -1 b = {0, 0, 0} minx = 3 miny = 2 |
Нет нулей. Нет строк, содержащих только положительные элементы. В массиве x минимальный элемент – первый, в массиве y минимальный элемент – последний. |
2 |
m = 4, n = 4 a = 1 0 3 4 5 -6 -7 8 9 10 11 12 13 14 15 16 nx = 5 x = {5, 4, 3, 2, 1} ny = 6 y = {0, 1, 2, 4, 8, 16} |
k = 2 min = 9 b = {1, 0, 0, 0} minx = 1 miny = 0 |
Есть нули. Есть строка, содержащая только положительные элементы. Минимальный элемент – первый. В массиве x минимальный элемент – последний, в массиве y минимальный элемент – первый. |
3 |
m = 6, n = 3 a = 1 0 5 0 -9 0 1 -3 4 0 0 0 7 0 0 -25 4 8 nx = 5 x = {3, 4, -5, 6, 7} ny = 4 y = {5, 4, -3, 2} |
k = -1 b = {1, 2, 0, 3, 2, 0} minx = -5 miny = -3 |
Есть нули. Нет строк, содержащих только положительные элементы. Минимальные элементы массивов находятся в середине. |
4 |
m = 4, n = 3 a = 12 8 5 -1 -2 0 0 5 6 2 5 7 nx = 4 x = {1, 0, 7, 9} ny = 5 y = {1, -5, 3, 5, 8} |
k = 0 min = 5 b = {0, 1, 1, 0} minx = 0 miny = -5 |
Есть нули. Строка, содержащая только положительные элементы, – первая. Минимальные элемент – последний. Минимальные элементы массивов находятся в середине. |
Не забудьте также проверить ситуации недостаточного количества параметров, отсутствия входного файла и некорректных данных в файле.
Для определения строки, содержащей только положительные элементы, разрабатываем функцию, проверяющую, что одномерный массив содержит только положительные элементы, и применяем её последовательно к строкам матрицы. При нахождении искомой строки выходим из цикла. Если такая строка есть, вызываем функцию поиска минимума, иначе – процедуру определения количества нулевых элементов в каждой строке матрицы, которая формирует соответствующий массив. Для определения количества нулевых элементов в одной строке также используем дополнительную подпрограмму. Для поиска минимальных элементов в массивах x и y используем уже реализованную функцию поиска минимума.