Ada Programming/Algorithms/Chapter 1
Chapter 1: Introduction
editThe following subprograms are implementations of the Inventing an Algorithm examples.
To Lower
editThe Ada example code does not append to the array as the algorithms. Instead we create an empty array of the desired length and then replace the characters inside.
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;
Would the append approach be impossible with Ada? No, but it would be significantly more complex and slower.
Equal Ignore Case
edit-- 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;