Если над главной диагональю минимальные элементы столбцов, то добавить всем элементам над ней среднее под ней - Pascal ABC

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

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

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

Решение задачи: «Если над главной диагональю минимальные элементы столбцов, то добавить всем элементам над ней среднее под ней»

textual
Листинг программы
const
n=4;
m:array[1..n,1..n] of real=((1.2,2.5,3.5,4.0),
                            (3.5,2.3,4.8,6.0),
                            (5.2,6.2,2.6,4.9),
                            (5.3,4.8,9.3,2.8));
var i,j,imn,k:integer;
    a:array[1..n,1..n] of real;
    s:real;
begin
a:=m;
writeln('Исходная матрица');
for i:=1 to n do
 begin
  for j:=1 to n do
  write(a[i,j]:6:1);
  writeln;
 end;
k:=0;
for j:=1 to n do
 begin
  imn:=1;
  for i:=1 to n do
  if a[i,j]<a[imn,j] then imn:=i;
  if imn=j then inc(k);
 end;
if k<>n then write('Минимальные элементы столбцов не все на главной диагонали')
else
 begin
  writeln('Все минимальные элементы столбцов главной диагонали');
  s:=0;
  k:=0;
  for i:=2 to n do
  for j:=1 to i-1 do
   begin
    s:=s+a[i,j];
    k:=k+1;
   end;
  s:=s/k;
  writeln('Среднее арифметическое элементов ниже главной диагонали=',s:0:1);
  writeln('Измененная матрица');
  for i:=1 to n do
   begin
    for j:=1 to n do
     begin
      if j>i then a[i,j]:=a[i,j]+s;
      write(a[i,j]:6:1);
     end;
    writeln;
   end;
 end;
 
end.

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

  1. Создается массив m с размерностью n x n, где n - это количество строк и столбцов матрицы. Каждый элемент массива m представляет собой кортеж из n чисел.
  2. Создается переменная i типа integer для перебора строк матрицы и переменная j типа integer для перебора столбцов матрицы.
  3. Создается переменная imn типа integer для хранения текущего минимального элемента в текущем столбце.
  4. Создается переменная k типа integer для подсчета количества минимальных элементов в столбцах.
  5. Выводится исходная матрица с помощью цикла for. В каждой итерации цикла выводятся элементы матрицы с помощью цикла for.
  6. Инициализируется переменная k равной нулю. Она будет использоваться для отслеживания количества минимальных элементов в столбцах.
  7. Выполняется цикл for для каждой строки матрицы. Внутри цикла выполняется еще один цикл for для каждого столбца матрицы.
  8. Внутри внутреннего цикла проверяется условие if a[i,j]<a[imn,j] then imn:=i. Если текущий элемент a[i,j] меньше текущего минимального элемента a[imn,j], то обновляется значение imn на i. Это означает, что текущий элемент a[i,j] становится новым минимальным элементом в текущем столбце.
  9. Если imn равно j, то увеличивается значение k на единицу. Это означает, что текущий столбец содержит все минимальные элементы.
  10. После завершения внутреннего цикла для каждой строки матрицы, выполняется внешний цикл for для каждой строки матрицы.
  11. Внутри внешнего цикла вычисляется среднее арифметическое элементов ниже главной диагонали. Для этого суммируются все элементы ниже главной диагонали и делятся на количество таких элементов.
  12. Выводится измененная матрица с помощью цикла for. В каждой итерации цикла выводятся элементы матрицы с помощью цикла for.
  13. Выводится сообщение, указывающее, были ли все минимальные элементы столбцов на главной диагонали или нет.
  14. Если k не равно n, то выводится сообщение, указывающее, что все минимальные элементы столбцов не находятся на главной диагонали.
  15. Если k равно n, то выводится сообщение, указывающее, что все минимальные элементы столбцов находятся на главной диагонали.
  16. Вычисляется среднее арифметическое элементов ниже главной диагонали. Для этого суммируются все элементы ниже главной диагонали и делятся на количество таких элементов.
  17. Выводится сообщение, указывающее среднее арифметическое элементов ниже главной диагонали.

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


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

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

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