В зависимости от местоположения максимального элемента, домножить матрицу на 10 или сформировать массив - Pascal

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

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

дана вещественная матрица A(n*n). Если максимальный элемент матрицы находится на главной диагонали или выше её то все элементы матрицы домножить на 10. в противном случае получить одномерную матрицу

Решение задачи: «В зависимости от местоположения максимального элемента, домножить матрицу на 10 или сформировать массив»

textual
Листинг программы
  1. const n = 6;
  2. var a: array[1..n, 1..n] of real;
  3.     b: array[1..n*n] of real;
  4.     i, j, imax, jmax: integer;
  5. begin
  6.   randomize;
  7.   imax := 1;
  8.   jmax := 1;
  9.   writeln('Исходная матрица:');
  10.   for i := 1 to n do
  11.     begin
  12.       for j := 1 to n do
  13.         begin
  14.           a[i, j] := 198 * random - 99;
  15.           write(a[i, j]:10:4);
  16.           if a[imax, jmax] < a[i, j]
  17.             then begin
  18.               imax := i;
  19.               jmax := j
  20.             end
  21.         end;
  22.       writeln
  23.     end;
  24.   writeln('Максимальный элемент матрицы: A[', imax, ', ', jmax, '] = ', a[imax, jmax]:0:4);
  25.   if jmax >= imax
  26.     then begin
  27.       if imax = jmax
  28.         then writeln('Максимальный элемент матрицы находится на главной диагонали')
  29.         else writeln('Максимальный элемент матрицы находится выше главной диагонали');
  30.       writeln('Все элементы матрицы умножены на 10:');
  31.       for i := 1 to n do
  32.         begin
  33.           for j := 1 to n do
  34.             begin
  35.               a[i, j] := a[i, j] * 10;
  36.               write(a[i, j]:10:3)
  37.             end;
  38.           writeln
  39.         end
  40.     end
  41.     else begin
  42.       writeln('Максимальный элемент матрицы находится ниже главной диагонали');
  43.       for i := 1 to n do
  44.         for j := 1 to n do
  45.           b[(i - 1) * n + j] := a[i, j];
  46.       writeln('Одномерный массив:');
  47.       for i := 1 to n * n do write(b[i]:10:4)
  48.     end;
  49.   readln
  50. end.

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

  1. Объявление переменных:
    • n - константа, равная 6.
    • a - двумерный массив размером n x n для хранения вещественных чисел.
    • b - одномерный массив размером n * n для хранения вещественных чисел.
    • i, j, imax, jmax - целочисленные переменные.
  2. Инициализация матрицы:
    • Выполняется инициализация матрицы a случайными вещественными числами в диапазоне от -99 до 99.
  3. Поиск максимального элемента:
    • Происходит обход всех элементов матрицы a с целью найти максимальный элемент.
    • Для каждого элемента матрицы проверяется, является ли он максимальным. Если находится новый максимальный элемент, его индексы запоминаются.
  4. Вывод информации о максимальном элементе:
    • Выводится информация о максимальном элементе матрицы (его значение и индексы).
    • Определяется местоположение максимального элемента относительно главной диагонали матрицы.
  5. Умножение всех элементов матрицы на 10:
    • Если максимальный элемент находится на главной или выше диагонали, все элементы матрицы умножаются на 10.
    • Если максимальный элемент находится ниже диагонали, матрица a преобразуется в одномерный массив b.
  6. Вывод результата:
    • Выводится преобразованная матрица (если максимальный элемент находится на или выше диагонали) или одномерный массив b (если максимальный элемент находится ниже диагонали).
  7. Ожидание ввода пользователя.

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


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

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

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

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

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

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