Найти номер наибольшего нечётного элемента массива m на n - Pascal
Формулировка задачи:
Найти номер наибольшего элемента нечётного массива m на n.
Решение задачи: «Найти номер наибольшего нечётного элемента массива m на n»
textual
Листинг программы
const mm = 6; {максимальные размеры массива} mn = 6; var a: array[1..mm, 1..mn] of integer; i, j, m, n, mi, mj: integer; f: boolean; begin {ввод размера массива с проверкой} repeat write('m в диапазоне 1..', mm, '; m = '); readln(m) until m in [1..mm]; repeat write('n в диапазоне 1..', mn, '; n = '); readln(n) until n in [1..mn]; {ввод элементов массива} writeln('Введите элементы массива:'); for i := 1 to m do for j := 1 to n do begin write('A[', i, ', ', j, '] = '); readln(a[i, j]) end; {вывод массива} writeln('Исходный массив'); for i := 1 to m do begin for j := 1 to n do write(a[i, j]:12); writeln end; {поиск номеров наибольшего нечётного элемента массива} f := false; {флаг факта находки нужного элемента, пока не нашли, поэтому false} for i := 1 to m do for j := 1 to n do if odd(a[i, j]) {если элемент нечётный,} then if not f or (a[i, j] > a[mi, mj]) {то, если элемент ещё не был найден или элемент больше максимального,} then begin {то} mi := i; {запоминаем номера максимального элемента} mj := j; f := true {помечаем, что максимальный элемент найден} end; {печатаем результат} if f then write('Максимальный элемент = ', a[mi, mj], '; его номера: по вертикали ', mi, ', по горизонтали ', mj) else write('В массива нет нечётных элементов'); readln end.
Объяснение кода листинга программы
- Создание констант для максимальных размеров массива:
- Название переменных:
mm
иmn
- Значения переменных:
6
и6
- Название переменных:
- Создание переменных:
- Название переменной:
a
- Значение переменной:
array[1..mm, 1..mn] of integer
- Название переменных:
i
,j
,m
,n
,mi
,mj
,f
- Значение переменных:
integer
,integer
,integer
,integer
,integer
,integer
,boolean
- Название переменной:
- Ввод размера массива с проверкой:
- Пользователь вводит значения переменных
m
иn
в диапазоне 1..6 с помощью циклов repeat-until - Значения вводятся с клавиатуры и проверяются на соответствие указанному диапазону
- Пользователь вводит значения переменных
- Ввод элементов массива:
- Пользователь последовательно вводит значения элементов в массив
a
с помощью вложенных циклов for - Значения вводятся с клавиатуры
- Пользователь последовательно вводит значения элементов в массив
- Вывод исходного массива:
- Выводит элементы массива
a
в формате таблицы с помощью вложенных циклов for
- Выводит элементы массива
- Поиск номеров наибольшего нечётного элемента массива:
- Устанавливает начальное значение флага f как
false
(ложь) - Использует вложенные циклы for для прохода по элементам массива
a
- Проверяет каждый элемент на нечётность с помощью функции odd
- Запоминает номера первого найденного максимального нечётного элемента в переменные
mi
иmj
- Помечает факт нахождения максимального элемента устанавливая значение флага f в
true
(истина)
- Устанавливает начальное значение флага f как
- Печать результата:
- Печатает результат в зависимости от наличия максимального нечётного элемента в массиве:
- Если такой элемент найден, выводит его значение и его номера,
- Если такой элемент не найден, выводит сообщение о его отсутствии.
- Печатает результат в зависимости от наличия максимального нечётного элемента в массиве:
- Ожидание ввода перед закрытием программы:
- Ожидает ввода пользователя для завершения программы. Код выполняет ввод и проверку размеров массива, ввод его элементов, вывод исходного массива, поиск и вывод номера наибольшего нечётного элемента.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д