Ada 编程/算法/第 1 章
外观
以下子程序是 发明算法 示例 的实现。
Ada 示例代码不会像算法那样追加到数组。相反,我们创建一个指定长度的空数组,然后替换其中的字符。
function
To_Lower (C : Character)return
Characterrenames
Ada.Characters.Handling.To_Lower; -- tolower - translates all alphabetic, uppercase characters -- in str to lowercasefunction
To_Lower (Str : String)return
Stringis
Result : String (Str'Range);begin
for
Cin
Str'Rangeloop
Result (C) := To_Lower (Str (C));end
loop
;return
Result;end
To_Lower;
使用 Ada 无法实现追加方法吗?不,但这样做会更加复杂和缓慢。
-- equal-ignore-case -- returns true if s or t are equal, -- ignoring casefunction
Equal_Ignore_Case (S : String; T : String)return
Booleanis
O :constant
Integer := S'First - T'First;begin
if
T'Length /= S'Lengththen
return
False; -- if they aren't the same length, they -- aren't equalelse
for
Iin
S'Rangeloop
if
To_Lower (S (I)) /= To_Lower (T (I + O))then
return
False;end
if
;end
loop
;end
if
;return
True;end
Equal_Ignore_Case;