Найти номер наибольшего нечётного элемента массива m на n - Pascal

Узнай цену своей работы

Формулировка задачи:

Найти номер наибольшего элемента нечётного массива m на n.

Решение задачи: «Найти номер наибольшего нечётного элемента массива m на n»

textual
Листинг программы
  1. const mm = 6; {максимальные размеры массива}
  2.       mn = 6;
  3. var a: array[1..mm, 1..mn] of integer;
  4.     i, j, m, n, mi, mj: integer;
  5.     f: boolean;
  6. begin
  7.   {ввод размера массива с проверкой}
  8.   repeat
  9.     write('m в диапазоне 1..', mm, ';  m = ');
  10.     readln(m)
  11.   until m in [1..mm];
  12.   repeat
  13.     write('n в диапазоне 1..', mn, ';  n = ');
  14.     readln(n)
  15.   until n in [1..mn];
  16.   {ввод элементов массива}
  17.   writeln('Введите элементы массива:');
  18.   for i := 1 to m do
  19.     for j := 1 to n do
  20.       begin
  21.         write('A[', i, ', ', j, '] = ');
  22.         readln(a[i, j])
  23.       end;
  24.   {вывод массива}
  25.   writeln('Исходный массив');
  26.   for i := 1 to m do
  27.     begin
  28.       for j := 1 to n do write(a[i, j]:12);
  29.       writeln
  30.     end;
  31.   {поиск номеров наибольшего нечётного элемента массива}
  32.   f := false; {флаг факта находки нужного элемента, пока не нашли, поэтому false}
  33.   for i := 1 to m do
  34.     for j := 1 to n do
  35.       if odd(a[i, j]) {если элемент нечётный,}
  36.         then if not f or (a[i, j] > a[mi, mj]) {то, если элемент ещё не был найден или элемент больше максимального,}
  37.           then begin {то}
  38.             mi := i; {запоминаем номера максимального элемента}
  39.             mj := j;
  40.             f := true {помечаем, что максимальный элемент найден}
  41.           end;
  42.   {печатаем результат}
  43.   if f
  44.     then write('Максимальный элемент = ', a[mi, mj], '; его номера: по вертикали ', mi, ', по горизонтали ', mj)
  45.     else write('В массива нет нечётных элементов');
  46.   readln
  47. 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

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы