Ada 编程/算法/第 1 章
外观
以下子程序是 发明算法 示例 的实现。
Ada 示例代码不会像算法那样追加到数组。相反,我们创建一个指定长度的空数组,然后替换其中的字符。
functionTo_Lower (C : Character)returnCharacterrenamesAda.Characters.Handling.To_Lower; -- tolower - translates all alphabetic, uppercase characters -- in str to lowercasefunctionTo_Lower (Str : String)returnStringisResult : String (Str'Range);beginforCinStr'RangeloopResult (C) := To_Lower (Str (C));endloop;returnResult;endTo_Lower;
使用 Ada 无法实现追加方法吗?不,但这样做会更加复杂和缓慢。
-- equal-ignore-case -- returns true if s or t are equal, -- ignoring casefunctionEqual_Ignore_Case (S : String; T : String)returnBooleanisO :constantInteger := S'First - T'First;beginifT'Length /= S'LengththenreturnFalse; -- if they aren't the same length, they -- aren't equalelseforIinS'RangeloopifTo_Lower (S (I)) /= To_Lower (T (I + O))thenreturnFalse;endif;endloop;endif;returnTrue;endEqual_Ignore_Case;
