Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/elixir/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ada 如何在多维数组中使用for循环?_Ada - Fatal编程技术网

Ada 如何在多维数组中使用for循环?

Ada 如何在多维数组中使用for循环?,ada,Ada,**(初学者问题)!我在数据类型(Float_类型)中使用了多维数组,我想知道如何循环使用它们。我试着使用“Put(A(I,I))”但它不正确。我的代码:** with Ada.Float_Text_IO; use Ada.Float_Text_IO; with Ada.Text_IO; use Ada.Text_IO; with Ada.Integer_Text_IO; use Ada.Integer_Tex

**(初学者问题)!我在数据类型(Float_类型)中使用了多维数组,我想知道如何循环使用它们。我试着使用“Put(A(I,I))”但它不正确。我的代码:**

with Ada.Float_Text_IO;              use Ada.Float_Text_IO;
with Ada.Text_IO;                    use Ada.Text_IO;
with Ada.Integer_Text_IO;            use Ada.Integer_Text_IO;

procedure Test is
type Float_Type is
 array (0 .. 4,1 ..3) of Float;   --Total float numbers: 15

A: Float_Type;
 begin
 Put(" Write in your float nums: ");
 for I in Float_Type'Range loop
  Get(A(I, I));     -- Not correct
end loop; Skip_Line;

Put(" Your float nums: ");
for I in Float_Type'Range loop
  Put(A(I, I));          --Not correct
end loop;
end Test;

所有数组都有一个维度编号D。一维数组,如
字符串
,其D=1;二维数组,如
Float_Type
,D=2;等等数组的维度编号为1。。D、 1表示给定的第一个范围(对于您的案例为0..4),2到第二个范围(对于您的案例为1..3),依此类推。数组第N维的范围可以通过
范围(N)
获得(对于1..D中的N)。对于一维数组,
'range
格式可用作
'range(1)
的简写形式

因此,正如Drummond所说,您需要两个嵌套循环:

for I in A'range (1) loop
   for J in A'range (2) loop
      Get (Item => A (I, J) );
   end loop;
end loop;

两个嵌套的FOR循环,I在Float_Type'Range(1)中,J在Float_Type'Range(2)中,访问A(I,J)将是传统的。