Матрица. Если максимальные элементы столбцов находятся на главной диагонали, необходимо найти среднее арифметическое - PascalABC.NET

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

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

Дана действительная матрица размерности (n×n). Если максимальные элементы столбцов находятся на главной диагонали, то необходимо найти среднее арифметическое элементов, стоящих под главной диагональю и добавить его к минимальному элементу матрицы. В противном случае матрицу оставить без изменения.

Решение задачи: «Матрица. Если максимальные элементы столбцов находятся на главной диагонали, необходимо найти среднее арифметическое»

textual
Листинг программы
begin
  var (n, count) := (ReadlnInteger('N ='), 0);
  var a := MatrGen(n, n, (i, j) -> ReadlnReal(Format('a[{0},{1}] =', i, j))); a.Println;
  var maxs := a.Cols.Select(v -> v.Max).ToArray;
  for var j := 0 to a.GetLength(1) - 1 do
    if maxs[j] = a[j, j] then count += 1;
  if count = n then begin
    var average := a.ElementsWithIndexes.Where(v -> v[1] > v[2]).Average(v -> v[0]);
    var min := a.ElementsByCol.Min;
    a.Transform(v -> v = min ? v + average : v);
    writeln('Новая матрица:'); a.Println;
  end else writeln('Матрица остаётся без изменений');
end.

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

  1. Сначала программа запрашивает у пользователя ввод размера матрицы (n) и количество строк для вывода (count).
  2. Затем создается матрица a размером n на n, элементы которой заполняются с помощью функции MatrGen.
  3. Функция MatrGen создает матрицу случайными элементами, которые вводятся с клавиатуры.
  4. Далее находятся максимальные элементы каждого столбца с помощью функции Cols.Select и сохраняются в массиве maxs.
  5. Затем проверяется, равны ли максимальные элементы столбцов элементам главной диагонали матрицы.
  6. Если это так, то увеличивается счетчик count.
  7. Если все максимальные элементы столбцов находятся на главной диагонали, то программа переходит к следующему этапу.
  8. Находится среднее арифметическое элементов главной диагонали с помощью функции Average.
  9. Также находится минимальный элемент матрицы с помощью функции Min.
  10. Затем выполняется преобразование элементов матрицы с помощью функции Transform, где если элемент меньше минимального, то к нему добавляется среднее арифметическое.
  11. Выводится сообщение о том, что матрица не изменилась.
  12. Если условие в пункте 5 не выполнено, то выводится сообщение о том, что матрица осталась без изменений.

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


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

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

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