Jordan Savant # Software Engineer

ADA Program Examples

A small collection of other simple ADA programs written to learn portions of the language.

Hello World

greet.adb

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

Hello, World!

Hello World w/ String and Integer Concatenation

greet_5a.adb

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

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

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

Enter an integer value: -2
         -2 is not positive
Enter an integer value: 12
         12 is a positive number

Nested Function Definition

nested_ex.adb

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

I am nested

Packages Basics

show_increment.adb

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

function Increment (I : Integer; Incr : Integer) return Integer;

increment.adb

function Increment ( I : Integer; Incr : Integer ) return Integer is
begin
    return I + Incr;
end Increment;

Output

Value 12