Найти наибольший и наименьший элементы квадратной матрицы - 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. Список действий, которые выполняются в коде:
- Объявление переменных:
- A: массив для хранения элементов квадратной матрицы размером 18x18 (ARRAY[1..18,1..18] OF INTEGER).
- N, I, J, K, MAX, MIN: целочисленные переменные для выполнения различных операций (INTEGER).
- Создание процедуры POISK:
- Если элемент массива A[I,J] больше MAX, то MAX присваивается значение этого элемента.
- Если элемент массива A[I,J] меньше MIN, то MIN присваивается значение этого элемента.
- Начало выполнения программы:
- Инициализация генератора случайных чисел (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)). Примечание: В данном коде реализован алгоритм поиска наибольшего и наименьшего элементов с использованием перебора всех элементов матрицы. Это не самый эффективный способ решения данной задачи, так как существуют более оптимальные алгоритмы для больших матриц.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д