2

很久以前遇到一个问题:如果我需要做一个使用变量的小程序,你如何定义和未知的变量数量?

IE,如果你有一个程序要求用户输入一个数字,那么用户输入的数字就是程序中需要的变量数。在 Java 或 VB 中很容易解决这个问题,因为您可以根据需要(在旅途中)定义变量,但是 pascal 让您在主程序代码开始之前声明它们,所以您不能使用这个技巧。

我在考虑一个多维数组,但我认为这是解决这个问题的一个糟糕的方法,因为如果你定义的“正方形”比你需要的少,那么如果你定义的比你实际使用的多,那么你会浪费内存...

那么,如何定义未知数量的变量呢?

4

2 回答 2

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 多年没有使用 Pascal 了。多棒的语言啊!

于 2012-04-18T03:40:29.553 回答
1

您需要根据用户提供的数字动态分配内存。如果这个页面是正确的,你可以在 FreePascal 中这样做:

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

k用户输入在哪里

于 2012-04-18T03:40:57.843 回答