Составить функцию, которая в одномерном массиве D определяет первый от конца положительный элемент - Pascal
Формулировка задачи:
Составить функцию, которая в одномерном массиве D определяет первый от конца положительный элемент. В случае нахождения положительного числа функция возвращает найденное число, в противном случае возвращает -1. С помощью функции определить в каждой строке матрицы H(l,m), l≤12, m≤14, первые от конца положительные элементы, которые записать без пропусков в массив P. Полученный массив P упорядочить по убыванию методом нахождения минимального. Вывести полученный массив, если он не пуст, или сообщение об отсутствии в матрице положительных чисел в ином случае.
Решение задачи: «Составить функцию, которая в одномерном массиве D определяет первый от конца положительный элемент»
textual
Листинг программы
const lmax = 12; mmax = 14; type mas = array[1..mmax] of integer; matr = array[1..lmax] of mas; var H: matr; P: array[1..lmax] of integer; i, j, l, m, imin: integer; t: integer; function firstPositive(D: mas; m: integer): integer; var i, r: integer; begin r := -1; i := m; while (i > 0) and (r = -1) do begin if D[i] > 0 then r := D[i]; i := i - 1; end; firstPositive := r; end; begin Randomize; repeat write('l: '); readln(l); until (l > 0) and (l <= lmax); repeat write('m: '); readln(m); until (m > 0) and (m <= mmax); writeln('Матрица H'); for i := 1 to l do begin for j := 1 to m do begin H[i][j] := random(30) - 20; write(H[i][j]:4); end; writeln; end; writeln('Массив P'); for i := 1 to l do begin P[i] := firstPositive(H[i], m); write(P[i]:4); end; for i := 1 to l do begin imin := 1; for j := 2 to l - i + 1 do if P[imin] > P[j] then imin := j; if imin <> l - i + 1 then begin t := P[imin]; P[imin] := P[l - i + 1]; P[l - i + 1] := t; end; end; writeln; writeln('Отсортированный массив P'); for i := 1 to l do write(P[i]:4); readln; end.
Объяснение кода листинга программы
- В начале кода объявляются константы lmax и mmax, которые определяют максимальное количество элементов в одномерном массиве.
- Затем объявляется тип данных mas, который представляет собой одномерный массив целых чисел.
- Далее объявляются переменные H и P, которые представляют собой матрицу и массив соответственно.
- В функции firstPositive определяется функция, которая возвращает первый положительный элемент в массиве D.
- В основной части программы происходит следующее:
- Пользователю предлагается ввести значение l и m.
- Создается матрица H, заполненная случайными числами.
- Создается массив P, где каждый элемент равен первому положительному элементу в соответствующем подмассиве матрицы H.
- Выводится матрица H.
- Выводится массив P.
- Выполняется сортировка массива P по возрастанию.
- Выводится отсортированный массив P.
- Конец программы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д