Считать значения матрицы B[1:5,1:5] из внешнего файла. Если среднеарифметическое последних 3-х столбцов больше среднеарифметического первых 3-х строк, то в элементах главной диагонали поменять знак на обратный. Иначе в матрицу вставить четвертую строку, полученную суммированием в соответствующих столбцах элементов 1-ой и 5-ой строк. Записать значения полученной матрицы во внешний файл — Pascal(Паскаль)

Const
  n = 5;

Var
  a: array [1 .. n + 1, 1 .. n] of Real;

  mas: text;
  i, j: byte;
  s, sr1, sr2: Real;

Begin
  Assign(mas, 'C:\mymas1.dat');
  Reset(mas);
  For i := 1 to n do
    For j := 1 to n do
      Read(mas, a[i, j]);
  Writeln('Считанная матрица');
  For i := 1 to n do
  begin
    For j := 1 to n do
      Write(a[i, j]:6:2);
    Writeln;
  end;
  s := 0;
  For j := n downto n - 2 do
    For i := 1 to n do
      s := s + a[i, j];
  sr1 := s / (3 * n);
  s := 0;
  For i := 1 to n - 2 do
    For j := 1 to n do
      s := s + a[i, j];
  sr2 := s / (3 * n);
  Writeln('sr1:', sr1:6:3);
  Writeln('sr2:', sr2:6:3);
  Writeln('Полученная матрица');
  Rewrite(mas);

  if sr1 > sr2 then
    for i := 1 to n do
      a[i, i] := -a[i, i]
  else
    for i := 1 to n do
    begin
      a[n + 1, i] := a[n, i];
      a[n, i] := a[n - 1, i];
      a[n - 1, i] := a[1, i] + a[n + 1, i];
    end;

end.

Leave a Comment

53 − = 50