home *** CD-ROM | disk | FTP | other *** search
- -- Chapter 20 - Program 1
- with Text_IO;
- use Text_IO;
-
- procedure Discrim1 is
-
- package Int_IO is new Text_IO.Integer_IO(INTEGER);
- use Int_IO;
-
- type SQUARE is array(INTEGER range <>,
- INTEGER range <>) of INTEGER;
-
- type LINEAR_TYPE is array(INTEGER range <>) of POSITIVE;
-
- type STUFF(List_Size : POSITIVE) is
- record
- Matrix : SQUARE(1..List_Size,1..List_Size);
- Elements : INTEGER := List_Size * List_Size;
- Linear : LINEAR_TYPE(1..List_Size);
- Number : INTEGER := List_Size;
- end record;
-
- type ANOTHER_STUFF is new STUFF;
-
- subtype STUFF_5 is STUFF(5);
-
- Data_Store : STUFF(5);
- Big_Store : STUFF(12);
- Extra_Store : ANOTHER_STUFF(5);
- More_Store : STUFF(5);
- Five_Store : STUFF_5;
- Name_Store : STUFF(List_Size => 5);
-
- begin
-
- for Index1 in Data_Store.Matrix'RANGE(1) loop
- Data_Store.Linear(Index1) := Index1;
- for Index2 in Data_Store.Matrix'RANGE(2) loop
- Data_Store.Matrix(Index1,Index2) := Index1 * Index2;
- end loop;
- end loop;
-
- Five_Store := Data_Store;
- More_Store := Five_Store;
-
- Put("The number of elements in More_Store.Matrix is");
- Put(More_Store.Elements);
- New_Line;
-
- end Discrim1;
-
-
-
-
- -- Result of execution
-
- -- The number of elements in More_Store.Matrix is 25
-
-