Mein Gehirn ist einfach zu klein um mein Projekt zum Abschluss zu bringen... bin ein bisschen deprimiert grade.
In meinem derzeitigen Programm soll der Benutzer 2 Matritzen eingeben, in Tabellen.
Die Tabellen sind in Spaltenanzahl und Zeilen Identisch und auch die Tabelle für sich hat immer genau so viele Spalten wie Zeilen.
Wenn der User die Eingaben erledigt hat wird jede Tabelle in ein 2D Array geschoben mit dem Ich dann weiter rechne.
Dann gibt es noch einen Ergebnis Array.
Also Ich habe folgendes Problem:
Array 1
10 3 5
3 3 5
8 7 9
Array 2
23 5 1
1 4 5
8 7 7
Ich brauche ne Schleife die jeden Wert aus meinen Array entsprechend der Gesetze der Matritzenmultiplikation berechnet. Wichtig: Ich möchte dass das ganez Skalier bar ist... d.h.
Es kann auch eine 1x1 oder 10x10 Matrix - Combo vorliegen und nicht nur dieses 3x3 Format.
Jetz muss man ja 10x23 + 3x1 + 8x8 ! 10x5 + 10x4 + 10x7 ! undsoweiter rechnet um dann zum Schluss:
Array Ergebnis
bla bla bla
bla bla bla
bla bla bla
Rauszubekommen... Ich hab mir das ganze versucht zu überlegen finde es aber derbe kompliziert grade...
Meine Schleife liefert nur einen Teil der Werte und sieht folgendermaßen aus:
Delphi-Quellcode:
procedure TForm1.Button2Click(Sender : TObject);
var
I : Integer;
I2: Integer;
Ergebnis : Double;
I3 : Integer;
begin
GridToArray(StringGrid1, MatrixData.ValueArray1);
GridToArray(StringGrid2, MatrixData.ValueArray2);
// einfach erstmal groß genug machen...
SetLength(MatrixData.ResultArray, 20, 20);
I := 0;
while I <= High(MatrixData.ValueArray1) do
begin
I2 := 0;
while I2 <= High(MatrixData.ValueArray1[I]) do
begin
Ergebnis := 0;
for I3 := 0 to High(MatrixData.ValueArray2[I]) do
begin
Ergebnis := Ergebnis + (MatrixData.ValueArray1[I2, I3] * MatrixData.ValueArray2[I3, I2]);
end;
MatrixData.ResultArray[I, I2] := Ergebnis;
inc(I2);
end;
inc(I);
end;
end;
Würde mich auch freuen wenn jemand beschreiben könnte wie Ich mich solchen Problemen Gedanklich annähern kann, bin erst 22Jahre Alt also noch nicht alles verloren hoffe ich, gruß