作为Ada的新手,我正在探索它的语法和规则,我想提请注意接下来给出的代码。在这里,我试图设置一个变量Actual_Stiffness来保存一个常量值。它的价值是由产品给出:Ada中的常量声明
Actual_Stiffness := Stiffness_Ratio * Stiffness_Total
其中Stiffness_Total已经被定义为在规范文件Material_Data.ads恒定Long_Float和Stiffness_Total在广告文件中已设置的值。
WITH Ada.Text_IO;
WITH Ada.Long_Float_Text_IO;
WITH Material_Data;
USE Material_Data;
PROCEDURE sample IS
Stiffness_Ratio : Long_Float;
Actual_Stiffness : CONSTANT Long_Float := Stiffness_Ratio * Stiffness_Total;
BEGIN -- main program
Ada.Text_IO.Put("Enter stiffness ratio: ");
Ada.Long_Float_Text_IO.Get(Item => Stiffness_Ratio);
Ada.Long_Float_Text_IO.Put(Item => Stiffness_Ratio);
--Ada.Text_IO.New_Line;
--Ada.Long_Float_Text_IO.Put(Item => Actual_Stiffness);
--Ada.Text_IO.New_Line;
--Ada.Long_Float_Text_IO.Put(Item => Stiffness_Total);
END sample;
在编译我得到
警告的警告信息: “Stiffness_Ratio” 可以参考它有一个值之前
和运行程序Actual_Stiffness没有得到正确的值。我可以定义Actual_Stiffness是只是一个Long_Float(不增加常量),然后获得从产品Actual_Stiffness其值:= Stiffness_Ratio * Stiffness_Total后开始,在我的计划时Stiffness_Ratio将已经得到的值。这是正确的做法。
我的问题是:
我已经定义Stiffness_Total为常数Long_Float与一个预定值。如何将Actual_Stiffness定义为常量(因为它在程序中不会改变),同时保持用户交互式地在终端输入Stiffness_Ratio的能力?这甚至有可能做到吗?
非常感谢..
谢谢。这是正确的。我想你的意思是“你必须让Actual_Stiffness ......”。 – yCalleecharan 2010-07-04 11:57:15
@yCalleecharan:是的 - 我的错误。我会解决的。 – 2010-07-04 11:58:38
感谢您的更正。 – yCalleecharan 2010-07-04 12:01:26