Arrays 如何将其从常量转换为变量数组? 使用图形; 常量三角形:PointType的数组[1..3]= ((X:50;Y:100), (X:100;Y:100), (X:150 ; Y:50);; Var-Gd,Gm:smallint; 开始 Gd:=检测; 初始图(Gd,Gm,); 如果是GraphResult grOk,则停止(1); SetFillStyle(7,0); SetColor(14); FillPoly(SizeOf(Triangle)Div SizeOf(PointType),Triangle); ReadLn; 闭合图; 结束。

Arrays 如何将其从常量转换为变量数组? 使用图形; 常量三角形:PointType的数组[1..3]= ((X:50;Y:100), (X:100;Y:100), (X:150 ; Y:50);; Var-Gd,Gm:smallint; 开始 Gd:=检测; 初始图(Gd,Gm,); 如果是GraphResult grOk,则停止(1); SetFillStyle(7,0); SetColor(14); FillPoly(SizeOf(Triangle)Div SizeOf(PointType),Triangle); ReadLn; 闭合图; 结束。,arrays,graph,pascal,Arrays,Graph,Pascal,我希望能够为三角形输入一个值,以便用户可以将其四处移动,但它是一个常量,因此除非有办法将其转换为变量,否则这是不可能的。对于FreePascal: 只需将“const”替换为“var”。您可以初始化全局变量,甚至像这样的复杂变量,通过这种方式,变量将在程序开始时接受此值,直到您更改它为止 对于TurboPascal: 常量数组不是真正的常量,您可以随意修改它们。例如,您可以执行以下操作: Uses Graph; Const Triangle : Array [1..3] Of PointType

我希望能够为三角形输入一个值,以便用户可以将其四处移动,但它是一个常量,因此除非有办法将其转换为变量,否则这是不可能的。

对于FreePascal:

只需将“const”替换为“var”。您可以初始化全局变量,甚至像这样的复杂变量,通过这种方式,变量将在程序开始时接受此值,直到您更改它为止

对于TurboPascal:

常量数组不是真正的常量,您可以随意修改它们。例如,您可以执行以下操作:

Uses Graph;
Const Triangle : Array [1..3] Of PointType =
((X: 50; Y: 100),
(X: 100; Y: 100),
(X: 150; Y: 50));
Var Gd, Gm : smallint;
Begin
Gd:=Detect;
InitGraph(Gd, Gm, ''); 
If GraphResult <> grOk Then Halt(1);
SetFillStyle(7,0);
SetColor(14);
FillPoly(SizeOf(Triangle) Div SizeOf(PointType), Triangle);
ReadLn;
CloseGraph;
End.

在程序开始时,它会工作得很好。有关更多详细信息,请参阅。

注意,这可能与FPC中的模式有关,因为这基本上是一个Delphi功能。@MarcovandeVoort我在FPC下尝试了objfpc、FPC和tp模式。我没有检查德尔福是怎么做到的。
Triangle[1].X := 500;