在Ada中,我希望创建10个类型为array (0..9) Integer的二维数组,创建10 x 10个单元数组,我将通过索引对其进行操作。我希望能够分别寻址10层中的每一层,理想情况下是通过混合变量名,如“layer_(I)”(row,col) := xxx,而不是必须通过静态名称访问每个layer_x,如“layer_1”或“layer_2”,这样我就可以对每一层运行相同的过程算法,只需改变索引以适应每一层。
我有:
type grid is array (0..9) of Integer, (0..9) of integer;
layer_1, layer_2, layer_3, layer_4, layer_5,
layer_6, layer_7, layer_8, layer_9, layer_0: grid;有没有办法我可以动态地创建一个网格类型的变量,这样我就可以用“layer_”(X)而不是完整的静态名称“layer_1”来寻址它?
======在发布了这篇文章后,我意识到了一种可能的解决方案,尽管它没有直接解决问题中的细节,但它是另一种解决方案。
我可以创建一个三维数组,或者是一个二维数组的数组,我可以用block(l,r,c) l表示层,r表示行,c表示列,并且没有像Layer_1,layer_2,etc.In这样的完整变量名,无论哪种情况,我将有1,000个单元格。当考虑数组中的结构时,也许没有办法绕过这个问题,尽管数组似乎是第一个测试选择,而不是一个单元格列表,这将涉及到对前后单元格的一些引用,这对于人类的概念化来说是困难的,但对机器来说是很好的。
=====,进一步考虑,我不想要三维数组,但二维10 x 10数组的10个实例的单个一维数组就可以了。我可以使用3个嵌套循环来寻址,并且在操作每个10 x 10数组中的100个单元时使用几乎相同的代码,这取决于10x10数组的主要数组,并且可以使用循环变量l,r,c立即访问每个10 x 10网格中的每个单元。
https://stackoverflow.com/questions/47614891
复制相似问题