Заданы матрица порядка n и число k. разделить элементы k-й строки ** диагональный...

0 голосов
243 просмотров

Заданы матрица порядка n и число k. разделить элементы k-й строки на диагональный элемент, расположенный в этой строке. исходную и полученную матрицы вывести на экран.


Информатика (1.2k баллов) | 243 просмотров
0

На паскале

Дан 1 ответ
0 голосов
Правильный ответ
1. Со временем и так будут учить решать...

// PascalABC.NET 3.2, сборка 1353 от 27.11.2016
// Внимание! Если программа не работает, обновите версию!

begin
  var n:=ReadInteger('n=');
  var k:=ReadInteger('Введите 1  if (k>n) or (k<1) then exit;<br>  var a:=MatrRandomReal(n,n,1,20); a.Println(7,2);
  k-=1;
  var d:=a[k,k];
  Writeln(n*7*'-');
  for var j:=0 to n-1 do a[k,j]/=d; a.Println(7,2)
end.

Пример
n= 5
Введите 1  15.11   1.07   2.01   6.33   8.63
  13.26  14.96  13.36   9.87  17.39
  14.87  19.89  16.94  10.77  17.86
  18.16  19.99  10.16   9.89   5.42
   4.78  13.60   6.89  19.56   1.25
-----------------------------------
  15.11   1.07   2.01   6.33   8.63
   0.89   1.00   0.89   0.66   1.16
  14.87  19.89  16.94  10.77  17.86
  18.16  19.99  10.16   9.89   5.42
   4.78  13.60   6.89  19.56   1.25

2. А пока в школах учат писать вот так. Хорошо видно, насколько школа отстает от современных технологий.

const
  nn=20;
var
  a:array[1..nn,1..nn] of real;
  i,j,n,k:integer;
  d:real;
begin
  Write('n= '); Read(n);
  Write('Введите 1  if (k>n) or (k<1) then exit;<br>  randomize;
  for i:=1 to n do begin
    for j:=1 to n do begin
      a[i,j]:=19*random+1;
      Write(a[i,j]:7:2)
      end;
    Writeln
    end;
  d:=a[k,k];
  for i:=1 to 7*n do Write('-');
  Writeln;
  for j:=1 to n do a[k,j]:=a[k,j]/d;
  for i:=1 to n do begin
    for j:=1 to n do Write(a[i,j]:7:2);
    Writeln
    end
end.

(150k баллов)