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

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

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

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

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

textual
Листинг программы
VAR A: ARRAY[1..18,1..18] OF INTEGER;
  N,I,J,K,MAX,MIN: INTEGER;
  PROCEDURE POISK;
  BEGIN
    IF A[I,J]>MAX THEN MAX:=A[I,J]
      ELSE IF A[I,J]<MIN THEN MIN:=A[I,J]
  END;
BEGIN
  RANDOMIZE;
  REPEAT N:=RANDOM(17)+2
  UNTIL N MOD 2=0;
  WRITELN('N=',N);
  writeln(' ');
  FOR I:=1 TO N DO
  BEGIN FOR J:=1 TO N DO
        BEGIN A[I,J]:=RANDOM(100); WRITE(A[I,J]:4) END;
        WRITELN
  END;
  K:=N div 2; MAX:=A[K,1]; MIN:=MAX;
  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;
  WRITELN(MAX,',',MIN);
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
Похожие ответы