Поменять наибольший элемент среди стоящих на диагоналях с элементом, стоящим на пересечении диагоналей - Turbo Pascal

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

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

Дана действительная квадратная матрица A порядок N, где N - заданное натуральное нечетное число. Найти наибольший элемент среди стоящих на главной и побочной диагоналях и поменять его с элементом, стоящим на пересечении диагоналей.

Решение задачи: «Поменять наибольший элемент среди стоящих на диагоналях с элементом, стоящим на пересечении диагоналей»

textual
Листинг программы
var
    a: Array[Byte, Byte] Of Real;
    temp: Real;
    i, j, n, iMax, jMax: Byte;
begin
    repeat
        Write('Input n (>0;odd): ');
        ReadLn(n);
    until ((n > 0) And Odd(n));
    Randomize();
    iMax := 0; jMax := 0;
    for i := 0 to n - 1 do
    begin
        for j := 0 to n - 1 do
        begin
            a[i, j] := Random * 198 - 99;
            if (((i = j) Or (n = i + j + 1)) And (a[i, j] > a[iMax, jMax]))
            then
            begin
                iMax := i;
                jMax := j;
            end;
            Write(a[i, j]:7:2);
        end;
        WriteLn;
    end;
    temp := a[iMax, jMax];
    a[iMax, jMax] := a[n div 2, n div 2];
    a[n div 2, n div 2] := temp;
    WriteLn('----------------------------------------------');
    for i := 0 to n - 1 do
    begin
        for j := 0 to n - 1 do
            Write(a[i, j]:7:2);
        WriteLn;
    end;
end.

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

  1. Создается переменная a, которая представляет собой массив типа Array[Byte, Byte] Of Real. Это означает, что массив содержит Byte элементы, каждый из которых является Real числом.
  2. Создаются две переменные temp и iMax, которые будут использоваться для временного хранения значения максимального элемента и его индекса.
  3. Создаются две переменные jMax, которые будет использоваться для временного хранения индекса максимального элемента.
  4. В цикле repeat выполняется следующая последовательность действий:
    • Пользователю предлагается ввести число n (нечетное число больше 0).
    • Проверяется, что введенное число является нечетным и большим, чем 0.
    • С помощью функции Randomize() инициализируется генератор случайных чисел.
    • Инициализируются переменные iMax и jMax значением 0.
    • Запускается цикл for, который выполняется n раз.
    • Внутри цикла for запускается вложенный цикл for, который выполняется n-1 раз.
    • Внутри вложенного цикла for вычисляется случайное число a[i, j] и присваивается соответствующему элементу массива a.
    • Если текущий элемент массива a[i, j] больше текущего максимального элемента a[iMax, jMax], то обновляется значение iMax и jMax.
    • После окончания вложенного цикла for выводится значение a[i, j] с помощью функции Write().
    • Выводится символ новой строки с помощью функции WriteLn().
  5. После завершения внешнего цикла for вычисляется значение temp путем копирования значения a[n div 2, n div 2] в переменную temp.
  6. Значение a[n div 2, n div 2] заменяется значением temp.
  7. Выводится символ новой строки с помощью функции WriteLn().
  8. Завершается основной цикл repeat.

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


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

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

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