Einzelnen Beitrag anzeigen

Benutzerbild von jfheins
jfheins

Registriert seit: 10. Jun 2004
Ort: Garching (TUM)
4.579 Beiträge
 
#2

AW: Matrixmultiplikation Problem

  Alt 8. Sep 2011, 14:47
Also einen Fehler habe ich schonmal gefunden.
Du solltest dich übrigens mit der setlength Funktion vertraut machen, die nimmt auch 3 Parameter an

Delphi-Quellcode:
procedure TForm1.MultiplizierenButtonClick(Sender: TObject);
var
  i: Integer;
  j: Integer;
  k: Integer;
  summe: Integer;
begin
 //Abfrage ob Spaltenanzahl der ersten Matrix gleich der Zeilenanzahl
 //zweiten Matrix ist

 if Length(M1Matrix[0]) = Length(M2Matrix) then
    begin
          //Setzen der Groesse der Ergebnismatrix
          SetLength(MEMatrix, Length(M1Matrix));
          for i := 0 to Length(MEMatrix) do
          begin
            SetLength(MEMatrix[i], Length(M2Matrix[i]));
          end;

          //Durchlaufen der Ergebnismatrix
          for i := 0 to Length(MEMatrix)-1 do
          begin
            for j := 0 to Length(MEMatrix[0])-1 do
              summe := 0; // <<<<<-----------------------------------------------------------fehler !!
            begin
              //Errechnen der Ergebniswerte aus den eingebenen Matritzen
              for k := 0 to Length(M1Matrix[i])-1 do
                begin
                      summe := summe + (M1Matrix[i,k] * M2Matrix[k,j]);
                end;
              MEMatrix[i,j] := summe;
              StringGrid3.Cells[j,i] := IntToStr(summe);
            end;
          end;
    end

 else

    begin
       ShowMessage('Spaltenanzahl der ersten Matrix ist ungleich der Zeilenanzahl der zweiten Matrix. Keine Multiplikation möglich.')
    end
end;
  Mit Zitat antworten Zitat