Найти наибольший и наименьший элементы квадратной матрицы - Free Pascal

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

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

Найти наибольший и наименьший элементы кв. матрицы A(n,n), где n - нечётное число, в заштрихованной части Нужно сделать на подобие этой задачи, для следующей заштрихованной части:
Листинг программы
  1. VAR A: ARRAY[1..17,1..17] OF INTEGER;
  2. N,I,J,K,MAX,MIN: INTEGER;
  3. PROCEDURE POISK;
  4. BEGIN
  5. IF A[I,J]>MAX THEN MAX:=A[I,J]
  6. ELSE IF A[I,J]<MIN THEN MIN:=A[I,J]
  7. END;
  8. BEGIN
  9. RANDOMIZE;
  10. REPEAT N:=RANDOM(15)+3
  11. UNTIL N MOD 2=1;
  12. WRITELN('N=',N);
  13. FOR I:=1 TO N DO
  14. BEGIN FOR J:=1 TO N DO
  15. BEGIN A[I,J]:=RANDOM(100); WRITE(A[I,J]:4) END;
  16. WRITELN
  17. END;
  18. K:=TRUNC(N/2)+1; MAX:=A[1,K]; MIN:=MAX;
  19. FOR I:=1 TO K DO FOR J:=K DOWNTO K+1-I DO POISK;
  20. FOR I:=K TO N DO FOR J:=K+N-I DOWNTO K DO POISK;
  21. WRITELN(MAX,',',MIN);
  22. END.

Решение задачи: «Найти наибольший и наименьший элементы квадратной матрицы»

textual
Листинг программы
  1. VAR A: ARRAY[1..18,1..18] OF INTEGER;
  2.   N,I,J,K,MAX,MIN: INTEGER;
  3.   PROCEDURE POISK;
  4.   BEGIN
  5.     IF A[I,J]>MAX THEN MAX:=A[I,J]
  6.       ELSE IF A[I,J]<MIN THEN MIN:=A[I,J]
  7.   END;
  8. BEGIN
  9.   RANDOMIZE;
  10.   REPEAT N:=RANDOM(17)+2
  11.   UNTIL N MOD 2=0;
  12.   WRITELN('N=',N);
  13.   writeln(' ');
  14.   FOR I:=1 TO N DO
  15.   BEGIN FOR J:=1 TO N DO
  16.         BEGIN A[I,J]:=RANDOM(100); WRITE(A[I,J]:4) END;
  17.         WRITELN
  18.   END;
  19.   K:=N div 2; MAX:=A[K,1]; MIN:=MAX;
  20.   FOR I:=1 TO K DO FOR J:=K-I+1 TO K DO POISK;
  21.   FOR I:=K+1 TO N DO FOR J:=K+1 TO N-I+K+1 DO POISK;
  22.   WRITELN(MAX,',',MIN);
  23. END.

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

В данном коде используется язык программирования Free Pascal. Список действий, которые выполняются в коде:

  1. Объявление переменных:
    • A: массив для хранения элементов квадратной матрицы размером 18x18 (ARRAY[1..18,1..18] OF INTEGER).
    • N, I, J, K, MAX, MIN: целочисленные переменные для выполнения различных операций (INTEGER).
  2. Создание процедуры POISK:
    • Если элемент массива A[I,J] больше MAX, то MAX присваивается значение этого элемента.
    • Если элемент массива A[I,J] меньше MIN, то MIN присваивается значение этого элемента.
  3. Начало выполнения программы:
    • Инициализация генератора случайных чисел (RANDOMIZE).
    • Создание квадратной матрицы случайными значениями (FOR I:=1 TO N DO FOR J:=1 TO N DO BEGIN A[I,J]:=RANDOM(100); WRITE(A[I,J]:4)).
    • Вывод размера матрицы (N) на экран (WRITELN('N=',N)).
    • Вывод шариков под номерами от 1 до N на экран (WRITELN).
    • Вычисление индекса середины матрицы (K).
    • Установка начального значения MAX и MIN равным первому элементу матрицы (A[K,1]).
    • Поиск наибольшего и наименьшего элементов матрицы с помощью процедуры POISK (FOR I:=1 TO K DO FOR J:=K-I+1 TO K DO POISK; FOR I:=K+1 TO N DO FOR J:=K+1 TO N-I+K+1 DO POISK).
    • Вывод найденных значений MAX и MIN на экран (WRITELN(MAX,',',MIN)). Примечание: В данном коде реализован алгоритм поиска наибольшего и наименьшего элементов с использованием перебора всех элементов матрицы. Это не самый эффективный способ решения данной задачи, так как существуют более оптимальные алгоритмы для больших матриц.

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


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

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

12   голосов , оценка 4.083 из 5

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

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

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