リーダーが機能コードを読み始めたら、彼は既に何ができているか、どのように機能しているか、そしてどのような問題を抱えているかについて非常に良い考えを持っているはずです。私は理解しやすい、きれいで、構造化された、よくコメントされたコードを書こうとしています。そして、私はAda Style Guideを読んでいて、私が十分に理解していないものをいくつか持っています。(exapmle:@Error_Handling, @Pre, @Post
)に何を書くことができますか? この関数を例のように表現したいと思います。上記のガイドラインを使用して、標準関数ヘッダーが誘導されてもよい:Adaの機能ヘッダーのオプションのコメントセクション
-- ---------------------------------------------------------------------------
-- @Function: Arithmetic_Mean
--
-- @Description:
-- Function to find the mean of a numeric vector. The program should
-- work on a zero-length vector (with an answer of 0.0).
-- @Usage: (opt)
-- @Parameter:
-- +Num: Given array
-- @Return: Averages/Arithmetic mean or zero
-- @Error_Handling: (opt)
-- @Pre: (opt)
-- @Post (opt)
type Mean_Numbers is array (Natural range <>) of Float;
function Arithmetic_Mean (Num : Mean_Numbers) return Float is
Sum : Float := 0.0;
begin
if Num'Length > 0 then
while Num'First <= Num'Last loop
Sum := Sum + Num(Num'First);
end loop;
return Sum/Float (Num'Length);
end if;
return 0.0;
end Arithmetic_Mean;
そして、ここでは別の例である:
-------------------------------------------------------------- ... --
-- @Function: Get_Index
-- @Description:
-- Returns the minimum index of Item in A.
-- @Parameters:
-- +A: the array
-- +Item: element searched for
-- @Return:
-- The minimum index of Item in A.
-- @Pre:
-- true
-- @Post:
-- if exists 1 <= I <= UPPER_BOUND: A(I) = Item then
-- result = min {1 <= k <= UPPER_BOUND | a(j) = item }
-- else
-- result = 0
ここには本当に質問はありません。あなたまたはあなたの雇用者に適したセクション(オプション)を(任意の)ヘッダーに含めることができます。 –
エラー処理とは、プログラミング、アプリケーション、および通信エラーの予測、検出、および解決を指します。前提条件と事後条件は、機能の契約を構成します。したがって: 前提条件は、少しのコードを実行する前に行う約束です。 事後条件は、コードが実行された後の約束です。しかし、私は正確に私が何を書くべきか明確ではないようです。 – stardust
あなたの質問には*エイダの質問*がありません。 「オプションのセクションでは何ができますか?」あなたが欲しいものならなんでも。 –