--
--Erik Israelsson D1b 871102-1637 "eriis325"
--labb3
--Del A
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;
with Ada.Numerics.Float_Random;
with Ada.Numerics.Discrete_Random;
procedure Labb3 is
--OneDimensional Array
type Onedime is
array (1 .. 20) of Integer;
I1 : Integer :=0;
Your_First_Array : Onedime;
--TwoDimensional Array
type Twodime is
array (1 .. 20, 1 .. 2) of Integer;
Your_Second_Array : Twodime;
--RandomGenerator
subtype One_To_Ten is Integer range 1 .. 10;
package One_To_Ten_Random is
new Ada.Numerics.Discrete_Random(Result_Subtype => One_To_Ten);
G : One_To_Ten_Random.Generator;
--Swap
procedure Swap(A, B : in out Integer) is
C : Integer;
begin
C := A;
A := B;
B := C;
end Swap;
--Sort
procedure Sort(Arr : in out OneDime) is
begin
for I in (Arr'First + 1) .. Arr'Last loop
for J in reverse I .. Arr'Last loop
if Arr(J) < Arr(J -1) then
Swap(Arr(J), Arr(J-1));
end if;
end loop;
end loop;
end Sort;
begin
One_To_Ten_Random.Reset(G);
for I in 1 .. 20 loop
I1 := One_To_Ten_Random.Random(G);
Your_First_Array(I) := I1;
end loop;
Put("Unsorted"); New_Line(2);
for I in 1 .. 20 loop
Put(Your_First_Array(I));
New_Line;
end loop;
Sort(Your_First_Array);
Put("Sorted"); New_Line(2);
for I in 1 .. 20 loop
Put(Your_First_Array(I));
New_Line;
end loop;
end Labb3;