Einzelnen Beitrag anzeigen

TheDean

Registriert seit: 7. Jan 2005
Ort: Geislingen an der Steige
4 Beiträge
 
#1

Call by Value - wo ist mein Denkfehler?

  Alt 20. Jan 2007, 14:21
Hallo zusammen ,

man kann ja Variablen
"by value" - > proc( a : Integer; b: Real);
oder
"by reference" -> proc (var a: Integer; var b: Real);

übergeben- und ich brauche den obigen Fall, dass ich also eine Variable an eine Prozedur
übergebe, diese Variable dann innerhalb der Prozedur verändere, und sie aber ausserhalb
der Prozedur unverändert bleibt:

Delphi-Quellcode:

....
       a := StrToInt(Edit1.Text);
       start_perm := zufallsperm(a);
       max_c := c_func(start_perm);
       l := length(start_perm);
       
       while (not local_max) do
           begin
              
                 for um_a:=0 to (l-2) do
                     begin
                         for um_b:= um_a+1 to (l-1) do
                         begin
                              umgebungssuche(start_perm,um_a,um_b);
                         end;
                     end;

   ....
Es geht hier um den Aufruf der Prozedur 'umgebungssuche' . Ich übergebe die Variable start_perm (vom Typ array of Integer);
diese wird dann innerhalb von 'umgebungssuche' verändert. Ich möchte nun, dass im nächsten Durchlauf erneut die ursprüng-
liche start_perm genommen wird, jedoch sehe ich beim durchdebuggen, dass die veränderte start_perm genommen wird. Ich über-
gebe jedoch "by value"--- Wo ist mein Denkfehler bzw. das Problem.. ich verzweifele echt gerade.

Wäre euch sehr dankbar für Hilfestellungen.

Gruß
  Mit Zitat antworten Zitat