这段代码中包含了重复导入同一个包的多条语句,这是不正确的。在Ada语言中,只需要在程序的开头使用一次with语句导入需要的包即可。
以下是修正后的示例代码:
with Ada.Text_IO;
with Ada.Text_IO.Unbounded_IO;
with Ada.Text_IO.Float_IO;
procedure Ada_Discrete_Random is
package Unbounded_IO is new Ada.Text_IO.Unbounded_IO (Num => Integer);
package Float_IO is new Ada.Text_IO.Float_IO (Num => Float);
subtype My_Random_Type is Float range 0.0 .. 1.0;
package Random_IO is new Ada.Text_IO.Float_IO (Num => My_Random_Type);
package Random_IO is new Ada.Text_IO.Float_IO (Num => My_Random_Type);
type My_Array is array (1 .. 10) of My_Random_Type;
My_Random : My_Random_Type;
My_Array : My_Array;
begin
-- 生成一个随机数
Unbounded_IO.Get (Item => My_Random);
Random_IO.Put (Item => My_Random, Fore => 4, Aft => 2, Exp => 0);
New_Line;
-- 生成一个随机数组
for I in My_Array'Range loop
Unbounded_IO.Get (Item => My_Array(I));
Random_IO.Put (Item => My_Array(I), Fore => 4, Aft => 2, Exp => 0);
end loop;
New_Line;
end Ada_Discrete_Random;
修正后的代码只导入了需要的包,并修复了变量和类型重复定义的问题。示例代码中使用了Unbounded_IO包来获取随机数,并使用Float_IO包来输出随机数。