Регистрация
Войти
Стать экспертом Правила
Информатика

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

ОТВЕТЫ
1. Со временем и так будут учить решать...

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

begin
  var n:=ReadInteger(n=);
  var k:=ReadInteger(Введите 1lt;klt;=n:);
  if (kgt;n) or (klt;1) then exit;
  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
Введите 1lt;klt;=n: 2
  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(Введите 1lt;klt;=n: );  Read(k);
  if (kgt;n) or (klt;1) then exit;
  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.

270
Контакты
Реклама на сайте
Спрошу
О проекте
Новым пользователям
Новым экспертам