Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
53
Task/The-Name-Game/Ada/the-name-game.ada
Normal file
53
Task/The-Name-Game/Ada/the-name-game.ada
Normal file
|
|
@ -0,0 +1,53 @@
|
|||
with Ada.Characters.Handling;
|
||||
with Ada.Strings.Unbounded;
|
||||
with Ada.Text_IO;
|
||||
|
||||
procedure The_Name_Game
|
||||
is
|
||||
package ACH renames Ada.Characters.Handling;
|
||||
package ASU renames Ada.Strings.Unbounded;
|
||||
function "+"(input : in String) return ASU.Unbounded_String renames ASU.To_Unbounded_String;
|
||||
function "+"(input : in ASU.Unbounded_String) return String renames ASU.To_String;
|
||||
|
||||
function Normalize_Case(input : in String) return String is
|
||||
begin
|
||||
return ACH.To_Upper(input(input'First))
|
||||
& ACH.To_Lower(input(input'First + 1 .. input'Last));
|
||||
end Normalize_Case;
|
||||
|
||||
function Transform(input : in String; letter : in Character) return String is
|
||||
begin
|
||||
case input(input'First) is
|
||||
when 'A' | 'E' | 'I' | 'O' | 'U' =>
|
||||
return letter & ACH.To_Lower(input);
|
||||
when others =>
|
||||
if ACH.To_Lower(input(input'First)) = letter then
|
||||
return input(input'First + 1 .. input'Last);
|
||||
else
|
||||
return letter & input(input'First + 1 .. input'Last);
|
||||
end if;
|
||||
end case;
|
||||
end Transform;
|
||||
|
||||
procedure Lyrics(name : in String)
|
||||
is
|
||||
normalized : constant String := Normalize_Case(name);
|
||||
begin
|
||||
Ada.Text_IO.Put_Line(normalized & ", " & normalized & ", bo-" & Transform(normalized, 'b'));
|
||||
Ada.Text_IO.Put_Line("Banana-fana, fo-" & Transform(normalized, 'f'));
|
||||
Ada.Text_IO.Put_Line("fi-fee-mo-" & Transform(normalized, 'm'));
|
||||
Ada.Text_IO.Put_Line(normalized & '!');
|
||||
Ada.Text_IO.New_Line;
|
||||
end Lyrics;
|
||||
|
||||
names : constant array(1 .. 5) of ASU.Unbounded_String :=
|
||||
(+"Gary",
|
||||
+"EARL",
|
||||
+"billy",
|
||||
+"FeLiX",
|
||||
+"Mary");
|
||||
begin
|
||||
for name of names loop
|
||||
Lyrics(+name);
|
||||
end loop;
|
||||
end The_Name_Game;
|
||||
Loading…
Add table
Add a link
Reference in a new issue