2013-12-08 28 views
0

所以我得在帕斯卡爾這個簡單的程序,它開始:如何更改Pascal中的全局變量?

type 
    arrayy=array[1..10] of integer; 
var 
    arr:arrayy; 

然後我寫了一小段程序(我們稱之爲PROC)與ARR作爲參數。在程序中,arr被改變。

然後,在代碼中的主要部分我有這樣的事情:

-print改編

-proc(ARR)

-print改編

數組根本不會改變,儘管如此。在我以前的程序中,當我遇到這個問題時,我只是把命令打印到程序中,但現在我不能這樣做。 我試着這樣做:

procedure proc(var arr) 

但隨後的數組是完全不同的比它應該是,如果它是一個新的。

有人可以幫我嗎?我能做些什麼來在代碼的主要部分打印更改的數組?

+3

請編輯您的問題,並在此提供代碼的相關部分*。如果我們無法看到自己在做什麼,我們就無法解釋什麼可能是錯誤的(或者如何解決它)。謝謝。 –

回答

1
program ChangeArrayExample; 

{ Free Pascal Compiler } 

type 
    IntArray = array[1..5] of integer; 

var 
    MyIntArray : IntArray; 
    I : integer; 

procedure MyProc(var MyIntArray : IntArray); 
begin 
    for I := Low(MyIntArray) to High(MyIntArray) do 
     MyIntArray[I] := 2 * I; 
end; 

begin 
    for I := Low(MyIntArray) to High(MyIntArray) do 
    begin 
     MyIntArray[I] := I; 
     Writeln(MyIntArray[I]); 
    end; 

    MyProc(MyIntArray); 
    Writeln(); 

    for I := Low(MyIntArray) to High(MyIntArray) do 
     Writeln(MyIntArray[I]); 
end. 

前陣:1陣列後2 3 4 5

:2 4 6 8 10

我不知道如果我正確地理解你的問題,所以請把你的全部代碼。