AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Übergabe einer Matrix an Unterprogramm

Ein Thema von swarley · begonnen am 23. Aug 2011 · letzter Beitrag vom 25. Aug 2011
 
swarley

Registriert seit: 17. Aug 2011
6 Beiträge
 
#1

Übergabe einer Matrix an Unterprogramm

  Alt 23. Aug 2011, 21:46
Hallo,
ich habe das Unterprogramm zur Berechnung der Inversen soweit hingekriegt (nehm ich an). Dummerweise mache ich wohl etwas bei der Übergabe der Ausgangsmatrix bzw Übergabe der Ergebnismatrix falsch. Dabei brauch ich noch einmal Hilfe.

Ich habe in meiner ButtonInverse.Onclick procedure zeilen-und spaltengröße, sowie meine Matrix, die ich invertieren möchte eingelesen. Daraufhin habe ich eine Matrix erzeugt, welche so aussieht, dass im vorderen Teil meine Ausgangsmatrix steht und die Einheitsmatrix sozusagen im hinteren Teil angehangen wird.
Bsp:
|1 2 3 1 0 0|
|4 5 6 0 1 0| =: matgauss
|7 8 9 0 0 1|

dann rufe ich mein Unterprogramm "Inverse" auf mit folgendem Befehl:
Inverse(0, zeilen, spaltengauss, matgauss); der Quelltext meines Unterprogramms sieht dabei so aus:
Delphi-Quellcode:
procedure Inverse(a,zeilen,spaltengauss:Integer;matgauss:TMatrixgauss);
var i,j,k : Integer;
begin
  if a < zeilen-1 then
  begin
      for i := a to spaltengauss - 1 do
       begin
         matgauss[a,i]:=matgauss[a,i]/matgauss[a,a];
       end;
      for j := a+1 to zeilen - 1 do
        begin
          for k := a to spaltengauss - 1 do
            begin
                matgauss[j,k]:=matgauss[j,k]-matgauss[j,a]*matgauss[a,k];
            end;
        end;
    Inverse(a+1,zeilen,spaltengauss,matgauss);
  end;
end;
so wenn ich das Programm starte, werden mir keine Fehler gemeldet. Wenn ich nun eine beliebige Matrix eingebe (angenommen, die obige, also
|1 2 3|
|4 5 6|
|7 8 9|,
dann wird mir leider nicht wie erhofft:
|1 0 0 x x x|
|0 1 0 x x x|
|0 0 1 x x x| (x steht hierbei für die invertierten werte)
ausgegeben, sondern:
|1 2 3 1 0 0|
|4 5 6 0 1 0|
|7 8 9 0 0 1|

also muss ich ja irgendwas bei der übergabe falsch gemacht haben, oder? Bitte schnellstens um Hilfe!

PS: eine Überprüfung und Korrektur, falls das erste Element in der matrix eine 0 sein sollte, habe ich vorgenommen und alle Fälle abgefangen(also sollte es nur eine zeile geben, weile im ersten element nicht 0 ist, bzw wenn alle elemente eine 0 enthalten usw)
es geht mir erst einmal nur allein darum, wenigstens eine korrekte ausgabe zu erhalten, sprich, dass mir ein stringgrid angezeigt wird in dem im vorderen teil die einheitsmatrix steht!
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:33 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz