Напечатать ту из матриц, у которой наименьший след - Turbo Pascal

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

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

Даны две квадратные матрицы n-го порядка. Напечатать ту из них у которой наименьший след (сумма диагональных элементов) . + блок - схема.

Решение задачи: «Напечатать ту из матриц, у которой наименьший след»

textual
Листинг программы
const nm=20; W=4;
type TMatrix = array[1..nm,1..nm] of Integer;
var n: Integer;
procedure mRand(var m: TMatrix; a, b: Integer);
var i, j: Integer;
begin
  for i:=1 to n do for j:=1 to n do m[i,j]:=a+Random(b);
end;
procedure mWrite(const m: TMatrix);
var i, j: Integer;
begin
  for i:=1 to n do begin
    for j:=1 to n do Write(' ',m[i,j]:W-1); WriteLn;
  end;
end;
function mTrail(const m: TMatrix): Longint;
var i: Integer; r: Longint;
begin
  r:=0; for i:=1 to n do r:=r+m[i,i];
  mTrail:=r;
end;
var a, b: TMatrix;
begin
  Randomize;
  repeat Write('N [1..',nm,']: '); ReadLn(n); until n in [1..nm];
  mRand(a,0,100); WriteLn('A ='); mWrite(a);
  mRand(b,0,100); WriteLn('B ='); mWrite(b);
  WriteLn('Матрица с меньшим следом:');
  if mTrail(a)<=mTrail(b) then mWrite(a) else mWrite(b);
end.

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

const nm = 20; W = 4; type TMatrix = array[1..nm,1..nm] of Integer; var n: Integer; m: TMatrix; a, b: Integer; i, j: Integer; procedure mRand(var m: TMatrix; a, b: Integer); var i, j: Integer; begin for i := 1 to n do for j := 1 to n do m[i, j] := a + Random(b); end; procedure mWrite(const m: TMatrix); var i, j: Integer; begin for i := 1 to n do begin for j := 1 to n do Write(' ', m[i, j]: W-1); WriteLn; end; end; function mTrail(const m: TMatrix): Longint; var i: Integer; r: Longint; begin r := 0; for i := 1 to n do r := r + m[i, i]; mTrail := r; end; var a, b: TMatrix; begin Randomize; repeat Write('N [1..', nm, '] : '); ReadLn(n); until n in [1..nm]; mRand(a, 0, 100); WriteLn('A ='); mWrite(a); mRand(b, 0, 100); WriteLn('B ='); mWrite(b); WriteLn('Матрица с меньшим следом:'); if mTrail(a) <= mTrail(b) then mWrite(a) else mWrite(b); end.

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


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

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

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