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

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

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

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

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

textual
Листинг программы
  1. var
  2.     a: Array[Byte, Byte] Of Real;
  3.     temp: Real;
  4.     i, j, n, iMax, jMax: Byte;
  5. begin
  6.     repeat
  7.         Write('Input n (>0;odd): ');
  8.         ReadLn(n);
  9.     until ((n > 0) And Odd(n));
  10.     Randomize();
  11.     iMax := 0; jMax := 0;
  12.     for i := 0 to n - 1 do
  13.     begin
  14.         for j := 0 to n - 1 do
  15.         begin
  16.             a[i, j] := Random * 198 - 99;
  17.             if (((i = j) Or (n = i + j + 1)) And (a[i, j] > a[iMax, jMax]))
  18.             then
  19.             begin
  20.                 iMax := i;
  21.                 jMax := j;
  22.             end;
  23.             Write(a[i, j]:7:2);
  24.         end;
  25.         WriteLn;
  26.     end;
  27.     temp := a[iMax, jMax];
  28.     a[iMax, jMax] := a[n div 2, n div 2];
  29.     a[n div 2, n div 2] := temp;
  30.     WriteLn('----------------------------------------------');
  31.     for i := 0 to n - 1 do
  32.     begin
  33.         for j := 0 to n - 1 do
  34.             Write(a[i, j]:7:2);
  35.         WriteLn;
  36.     end;
  37. 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

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

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

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