Einzelnen Beitrag anzeigen

marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#6

Re: Länge zwei dimensionaler, dynamischer Arrays bestimmen ?

  Alt 8. Mai 2008, 18:32
Statt eines Pointers könntest du die Matrix auch als var-Parameter übergeben.
Das wäre dann Call-By-Reference nach Pascal Art.

Delphi-Quellcode:
procedure MatrixMultiply(var mat: TDoubleMatrix; scalar: Double);
var
  yDim, xDim: Integer;
begin
  for yDim := Low(mat) to High(mat) do
    for xDim := Low(mat[yDim]) to High(mat[yDim]) do
      mat[yDim, xDim] := mat[yDim, xDim] * scalar;
end;


procedure Test;
var
  yDim, xDim: Integer;
  mat: TDoubleMatrix;
begin
  SetLength(mat, 3, 3);
  for yDim := Low(mat) to High(mat) do
    for xDim := Low(mat[yDim]) to High(mat[yDim]) do
      mat[yDim, xDim] := 1;
  MatrixMultiply(mat, 2);
  ShowMessage(FloatToStr(mat[0, 0]));
  SetLength(mat, 0, 0);
end;
Getippt und nicht getestet.
  Mit Zitat antworten Zitat