All pastes #251966 Raw Edit

Simple Random Number Program

public text v1 · immutable
#251966 ·published 2006-11-18 21:58 UTC
rendered paste body
with Ada.Text_IO;
with Ada.Integer_Text_IO;
with Ada.Numerics.Discrete_Random;

procedure Rand is
	use Ada.Integer_Text_IO;
	use Ada.Text_IO;

	type Number is range - 1_000_000_000 .. + 1_000_000_000;
	subtype Gen_Nums is Number range 1 .. 10_000;

	Amount_To_Gen : Gen_Nums;
	Lower_Bound, Higher_Bound : Number;
	Columns : Number range 1..15;

	package Number_Text_IO is new Ada.Text_IO.Integer_IO ( Number );
	use Number_Text_IO;
begin
	loop
		begin
			Put ( "Numbers      : " ); Get ( Amount_To_Gen );
			Put ( "Lower Bound  : " ); Get ( Lower_Bound );
			Put ( "Higher Bound : " ); Get ( Higher_Bound );
			Put ( "Columns      : " ); Get ( Columns );
		exception
			when others => raise;
		end;
		exit;
	end loop;

	declare
		subtype Spec_Number is Number range Lower_Bound .. Higher_Bound;
		package Spec_Number_Random is new Ada.Numerics.Discrete_Random ( Spec_Number );
		use Spec_Number_Random;

		Gen : Generator;
		A_Rand_Num : Spec_Number;

		Count : Integer := 1;
	begin
		Reset ( Gen );
		For Iterator in 1..Amount_To_Gen loop
			A_Rand_Num := Random ( Gen );
			Put ( A_Rand_Num );
			if Count = Integer ( Columns ) then
				New_Line;
				Count := 1;
			else
				Count := Count + 1;
			end if;
		end loop;
	exception
		when others => raise;
	end;
exception
	when Data_Error => Put ( "Data Error" );
	when Constraint_Error => Put ( "Constraint Error");
end Rand;