跳至内容

Ada 编程/算法/第 1 章

来自维基教科书,开放的书籍,为开放的世界

Ada. Time-tested, safe and secure.
Ada。经久考验,安全可靠。

第 1 章:介绍

[编辑 | 编辑源代码]

以下子程序是 发明算法 示例 的实现。

转为小写

[编辑 | 编辑源代码]

Ada 示例代码不会像算法那样追加到数组。相反,我们创建一个指定长度的空数组,然后替换其中的字符。

文件:to_lower_1.adb (查看, 纯文本, 下载页面, 浏览所有)
  function To_Lower (C : Character) return Character renames
     Ada.Characters.Handling.To_Lower;

  --  tolower - translates all alphabetic, uppercase characters
  --  in str to lowercase
  function To_Lower (Str : String) return String is
     Result : String (Str'Range);
  begin
     for C in  Str'Range loop
        Result (C) := To_Lower (Str (C));
     end loop;
     return Result;
  end To_Lower;

使用 Ada 无法实现追加方法吗?不,但这样做会更加复杂和缓慢。

忽略大小写比较

[编辑 | 编辑源代码]
文件:to_lower_2.adb (查看, 纯文本, 下载页面, 浏览所有)
  --  equal-ignore-case -- returns true if s or t are equal,
  --  ignoring case
  function Equal_Ignore_Case
    (S    : String;
     T    : String)
     return Boolean
  is
     O : constant Integer := S'First - T'First;
  begin
     if T'Length /= S'Length then
        return False;  --  if they aren't the same length, they
                       --  aren't equal
     else
        for I in  S'Range loop
           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;
华夏公益教科书