Thema: Delphi Determinanten Berechnung

Einzelnen Beitrag anzeigen

Relicted

Registriert seit: 24. Jan 2006
Ort: Iserlohn
646 Beiträge
 
Delphi 10.4 Sydney
 
#2

Re: Determinanten Berechnung

  Alt 30. Jun 2007, 17:01
huhu!

Zitat:
Kann mann Stringgrids irgendwie umstellen, so dass man ganz normal wie in editfelder schreiben kann?
was meinst du damit? theoretisch kannst du dir vom stringgrid eine eigene klasse ableiten und dir (was auch immer du meinst) selbst bauen.

wenn ich dir einen kleinen tipp geben darf: ich persönlich finde deinen quelltext reichlich unübersichtlich. ein paar kommentare könnten auch nützlich sein

gruß
reli


edit: mal quellcode etwas verleserlicht

Delphi-Quellcode:
procedure TForm4.ButtonDetOnClick(Sender:Tobject);
var
   i,j,n:integer;
   matrixA:T2DMatrix;
begin
  n:=SG1.ColCount;
  SetLength(matrixA,n,n);

  for i:= 0 to n-1 do
  begin
    for j:= 0 to n-1 do
    begin
      matrixA[i,j]:=StrtoFloat(SG1.Cells[j,i]);
    end;
  end;

  EditDet.text:=FloatToStr(matrixdet(matrixA,n));
end;

function TForm4.MatrixDet(matrixN:T2DMatrix;n:integer):double;
var
  matrizen:array of T2Dmatrix;
  i,j,k,l:integer;
Begin
  if n =2 then
  begin
    result:= (matrixn[0,0]*matrixn[1,1])-(matrixn[1,0]*matrixn[0,1]);
  end
  else
  begin
    setlength(matrizen,n);

    for i:= 0 to n-1 do
    begin
      l:=0;
      for k:= 0 to n-1 do
      begin
        if i <> k then
        begin
          for j:= 1 to n-1 do
          begin
            matrizen[i,j,k]:= matrixN[j,l];
          end;
        end;
        inc(l);
      end;
    end;

    result:=0;
    for i:= 0 to n-1 do
    begin
      result:=result + (intpower(-1,i)* matrixn[1,i]* matrixdet(matrizen[i],n-1));
    end;
  end;
end;
  Mit Zitat antworten Zitat