Ada에 익숙하지 않기 때문에 구문과 규칙을 연구 중이며 다음에 나오는 코드에 대해주의를 끌고 싶습니다. 여기서는 상수 값을 유지하기 위해 Actual_Stiffness 변수를 설정하려고합니다. Stiffness_Total가 정의 된Ada의 상수 선언
Actual_Stiffness := Stiffness_Ratio * 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는 올바른 가치를 얻지 못합니다. Stualness_Ratio가 이미 값을 얻었을 때 Actual_Stiffness를 (고정을 추가하지 않고) Long_Float로 정의한 다음 제품에서 값을 가져올 수있었습니다. Actual_Stiffness : = Stiffness_Ratio * Stiffness_Total 내 프로그램에서 BEGIN 이후. 이것은 옳은 일입니다.
내 질문은 : 나는 소정 값과 상수 Long_Float로 Stiffness_Total을 정의
. 사용자가 터미널에서 Stiffness_Ratio를 대화식으로 입력 할 수있는 능력을 유지하면서 Actual_Stiffness를 일정하게 정의하는 방법 (프로그램에서 변경되지 않음) 그것은 심지어 할 수 있습니까?
덕분에 많이 있습니다 .. 'Stiffness_Ratio이'런타임까지 결정되지 않기 때문에
감사합니다. 이것이 올바른 일입니다. 나는 당신이 "당신은 Actual_Stiffness를 만들어야 할 것입니다 ..."를 의미했다고 생각합니다. – yCalleecharan
@yCalleecharan : 예 - 저의 실수입니다. 나는 고칠 것이다. –
고마워. – yCalleecharan