Ada Programming/Algorithms/Chapter 1
Chapter 1: Introduction
The following subprograms are implementations of the Inventing an Algorithm examples.
To Lower
The 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
-- equal-ignore-case -- returns true if s or t are equal, -- ignoring caseCategory:Book:Ada Programming#Chapter%201function
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;