2012-04-18 178 views
2

很久以前,一個問題陷入困境:如果我需要製作一個使用變量的小程序,您如何定義和未知的變量? I.E,如果你有一個程序要求用戶輸入一個數字,那麼數字用戶輸入就是程序中所需的變量的數量。在Java或VB中很容易解決這個問題,因爲您可以根據需要定義變量(在旅途中),但是pascal會在主程序代碼啓動之前聲明它們,因此您無法使用此技巧。定義未知數量的變量

我在想多維數組,但我認爲這是一個不好的方法來解決這個問題,因爲如果你定義的「方塊」比你需要的要少,那麼你就會變得很短,如果你定義的比你實際要使用的要多那麼你會浪費內存...

那麼,你如何定義未知數量的變量?

回答

2

可以使用SetLength

Type 
    TByteArray = Array of Byte; 

Var 
    Data : TByteArray 
    NewSize : Integer; 
Begin 
    Write('Enter the number of bytes you require: '); 
    ReadLn(NewSize) 
    SetLength(Data, NewSize); 
    ... 
End; 

藉口的任何語法錯誤動態調整數組,我沒有更多的,20年來使用的帕斯卡。多麼偉大的語言!

1

您需要根據用戶提供的號碼動態分配內存。如果這個頁面是正確的,你可以在FreePascal的做到這一點:

type dynamic_array= array of integer; 
var x:dynamic_array; 
setlength(x, k); 

其中k是用戶輸入

+2

TIntegerDynArray等這樣的DYN陣列,無論是在FPC和Delphi的單位類型是預定義的。用它。 – 2012-04-18 09:45:40