我如何创建一个程序,该程序是一个连续传递指定范围内自动随机生成数据的线程。
我目前必须使用以下步骤在控制台中手动输入每一位数据。我想创建一个程序,在运行时能够将数据传递给此过程,就好像它被输入到控制台本身一样。
procedure Analyse_Data is
Data : Integer;
begin
DT_Put_Line("Data input by user");
loop
DT_Get(Data,"Data must be taken as a whole number");
exit when (Data >=0) and (Data <= Maximum_Data_Possible);
DT_Put("Please input a value between 0 and ");
DT_Put(Maximum_Data_Possible);
DT_Put_Line("");
end loop;
Status_System.Data_Measured := Data_Range(Data);
end Analyse_Data;
我没有包含规范文件(.ads) 我是Ada的新手,我们将不胜感激。
答案 0 :(得分:1)
使用Discrete_Random
的实例生成所需范围内的一些随机数据值:
subtype Valid_Range is Natural range 0 .. Maximum_Data_Possible;
package Some_Value is new Ada.Numerics.Discrete_Random(Valid_Range);
G : Some_Value.Generator;
…
procedure Generate is
N : Valid_Range;
begin
for I in 1 .. Count loop
N := Some_Value.Random(G);
Put(N);
end loop;
end;
将值保存到文件中:
./generate > test_data.txt
使用命令行中的I / O重定向将该文件提供给您的程序:
./analyse_data < test_data.txt
具体细节取决于您的实际计划。有关标准输入中的空行,请参阅此相关Q&A。