Найти номер наибольшего нечётного элемента массива 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 как
- Печать результата:
- Печатает результат в зависимости от наличия максимального нечётного элемента в массиве:
- Если такой элемент найден, выводит его значение и его номера,
- Если такой элемент не найден, выводит сообщение о его отсутствии.
- Печатает результат в зависимости от наличия максимального нечётного элемента в массиве:
- Ожидание ввода перед закрытием программы:
- Ожидает ввода пользователя для завершения программы. Код выполняет ввод и проверку размеров массива, ввод его элементов, вывод исходного массива, поиск и вывод номера наибольшего нечётного элемента.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д