# ADA Program Examples A small collection of other simple ADA programs written to learn portions of the language. ## Hello World `greet.adb` ```ada with Ada.Text_IO; use Ada.Text_IO; procedure Greet is begin -- Print "Hello, World!" to the screen Put_Line ("Hello, World!"); end Greet; ``` Output ```text Hello, World! ``` ## Hello World w/ String and Integer Concatenation `greet_5a.adb` ```ada with Ada.Text_IO; use Ada.Text_IO; procedure Greet_5a is begin for I in 1 .. 5 loop -- & is string concatenation -- Integer'Image() is a "attribute" Put_Line ("Hi" & Integer'Image(I)); end loop; Put_Line ("..."); for I in reverse 1 .. 5 loop -- see reverse keyword Put_Line ("Hi" & Integer'Image(I)); end loop; end Greet_5a; ``` Output ```text Hi 1 Hi 2 Hi 3 Hi 4 Hi 5 ... Hi 5 Hi 4 Hi 3 Hi 2 Hi 1 ``` ## Get CLI Input, Check if Positive Number `check_positive.adb` ```ada with Ada.Text_IO; use Ada.Text_IO; with Ada.Integer_Text_IO; use Ada.Integer_Text_IO; procedure Check_Positive is N: Integer; begin Put ("Enter an integer value: "); Get (N); if N > 0 then Put (N); Put_Line (" is a positive number"); else Put (N); Put_Line (" is not positive"); end if; end Check_Positive; ``` Output ```text Enter an integer value: -2 -2 is not positive ``` ```text Enter an integer value: 12 12 is a positive number ``` ## Nested Function Definition `nested_ex.adb` ```ada with Ada.Text_IO; use Ada.Text_IO; procedure Nested_Ex is procedure Nested is begin Put_Line ("I am nested"); end Nested; begin Nested; -- call to nested end Nested_Ex; ``` Output ```text I am nested ``` ## Packages Basics `show_increment.adb` ```ada with Ada.Text_IO; use Ada.Text_IO; with Increment; procedure Show_Increment is A, B, C : Integer; begin A := 10; B := 2; C := Increment (A, B); Put_Line ("Value" & Integer'Image (C)); end Show_Increment; ``` `increment.ads` ```ada function Increment (I : Integer; Incr : Integer) return Integer; ``` `increment.adb` ```ada function Increment ( I : Integer; Incr : Integer ) return Integer is begin return I + Incr; end Increment; ``` Output ```text Value 12 ```