-- This program finds the average of three integers.
--
-- Author: Ned Okie
-- Date: 8/24/2009

with ada.text_io; use ada.text_io;
with ada.integer_text_io; use ada.integer_text_io;
with ada.float_text_io; use ada.float_text_io;

procedure average is
    n1: Integer;          -- First integer (not initialized)
    n2: Integer := 99;    -- Second integer (initialized)
    n3: Integer := -23;   -- Third integer (initialized)

    sum: Integer;         -- Sum of the three integers
    average: Float;       -- Average of the three integers

    number_of_numbers: Constant Natural := 3;

begin

    -- Assign value to first integer
    n1 := 25;

    -- Calculate sum and average
    sum := n1 + n2 + n3;

    -- Type conversion required!
    average := float(sum) / number_of_numbers;

    -- Print sum and average (in different ways)
    put_line("sum:" & sum'img);
    put_line("sum:" & Integer'image(sum));

    put("sum: ");
    put(sum, width => 1);
    new_line;

    put_line("Average:" & average'img);
    put_line("Average:" & Float'image(average));

    put("Average: ");
    put(average, fore=>0, aft=>2, exp=>0);
    new_line;

end average;