DELPHI FAQ: Как заменить строку в матрице


Как заменить строку в матрице
Previous  Home  Next




program
 Matrices;

{$APPTYPE CONSOLE}


uses

  SysUtils;

type

  TMatrixRow = Array
 of Double;  {preferrable to Real}
  TMatrix = Array
 of TMatrixRow;


procedure
 MatrixExchangeRows(M: TMatrix; First, Second: Integer);
var

  Help: TMatrixRow;
begin

  if
 (First < 0or (First > High(M)) or (Second < 0or (Second > High(M)) then
    Exit;  {or whatever you like.}

  {Only pointers are exchanged!}

  Help := M[First];
  M[First] := M[Second];
  M[Second] := Help;
end
;


procedure
 MatrixWrite(M: TMatrix);
var

  Row, Col: Integer;
begin

  for
 Row := 0 to High(M) do
  begin

    for
 Col := 0 to High(M[Row]) do
      Write
(M[Row, Col]:10:2);
    Writeln;
  end
;
  Writeln;
end
;

var

  Matrix: TMatrix;
  Row, Column: Integer;

begin

  Randomize;
  SetLength(Matrix, 4
4);
  for
 Row := 0 to High(Matrix) do
    for
 Column := 0 to High(Matrix[Row]) do
      Matrix[Row, Column] := Random * 1000
.0;
  MatrixWrite(Matrix);
  MatrixExchangeRows(Matrix, 1
2);
  MatrixWrite(Matrix);
  Readln;
end
.


Взято из http://www.lmc-mediaagentur.de/dpool





DELPHI FAQ




EOMY TOP 100      Рейтинг@Mail.ru      Rambler's Top100