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;