Hallo,
mal ne Frage. Ich dachte eigentlich immer, und so steht es auch in allen Büchern und Tut's, die ich bisher gelesen habe, dass wenn ich eine Funktion folgendermaßen definiere:
Is nur ein Beispiel, meine wirkliche Funktion sieht anders aus, aber das verdeutlicht das Problem:
Delphi-Quelltext
1: 2: 3: 4: 5: 6:
| function TueEtwas (A:real; b:integer):real; begin A:=A+2; b:=b-2; Result:=A+b; end; |
Nun werden die Parameter A und b ja als Werteparameter übergeben, d.h. es wird eine Kopie erstellt und der Originalparameter in der aufrufenden Prozedur nicht verändert. Jetzt habe ich aber nur mal zum Spaß meine aufrufende Prozedur etwas verändert (auch nur als Test).
Delphi-Quelltext
1: 2: 3: 4:
| TestUnknownsVector:=LU_Decomposition(TestMatrix,3,TestResultVector); Edit1.Text:=DisplayComplex(TestResultVector[0]); Edit2.Text:=DisplayComplex(TestResultVector[1]); Edit4.Text:=DisplayComplex(TestResultVector[2]); |
und bekomme doch tatsächlich die Werte des in der Funktion LU_Decomposition veränderten array's angezeigt.
Weiß jemand, woran das liegt?
Es ist eine Unsitte der Menschen, sich an alles zu gewöhnen.