作爲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