Найти номер наибольшего нечётного элемента массива 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.

Объяснение кода листинга программы

  1. Создание констант для максимальных размеров массива:
    • Название переменных: mm и mn
    • Значения переменных: 6 и 6
  2. Создание переменных:
    • Название переменной: a
    • Значение переменной: array[1..mm, 1..mn] of integer
    • Название переменных: i, j, m, n, mi, mj, f
    • Значение переменных: integer, integer, integer, integer, integer, integer, boolean
  3. Ввод размера массива с проверкой:
    • Пользователь вводит значения переменных m и n в диапазоне 1..6 с помощью циклов repeat-until
    • Значения вводятся с клавиатуры и проверяются на соответствие указанному диапазону
  4. Ввод элементов массива:
    • Пользователь последовательно вводит значения элементов в массив a с помощью вложенных циклов for
    • Значения вводятся с клавиатуры
  5. Вывод исходного массива:
    • Выводит элементы массива a в формате таблицы с помощью вложенных циклов for
  6. Поиск номеров наибольшего нечётного элемента массива:
    • Устанавливает начальное значение флага f как false (ложь)
    • Использует вложенные циклы for для прохода по элементам массива a
    • Проверяет каждый элемент на нечётность с помощью функции odd
    • Запоминает номера первого найденного максимального нечётного элемента в переменные mi и mj
    • Помечает факт нахождения максимального элемента устанавливая значение флага f в true (истина)
  7. Печать результата:
    • Печатает результат в зависимости от наличия максимального нечётного элемента в массиве:
      • Если такой элемент найден, выводит его значение и его номера,
      • Если такой элемент не найден, выводит сообщение о его отсутствии.
  8. Ожидание ввода перед закрытием программы:
    • Ожидает ввода пользователя для завершения программы. Код выполняет ввод и проверку размеров массива, ввод его элементов, вывод исходного массива, поиск и вывод номера наибольшего нечётного элемента.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

13   голосов , оценка 4.077 из 5
Похожие ответы