WITH Ada.Text_IO;
WITH Ada.Integer_Text_IO;
WITH Spreadsheet;
WITH Spreadsheet.IO;
PROCEDURE Use_Spreadsheet IS
------------------------------------------------------------------
--| Example of Use of the Spreadsheet package
--| for a simple spreadsheet.
--|
--| Authors: Duane Jarc, Michael Feldman
--| The George Washington University
--| Last Modified: October 1996
------------------------------------------------------------------
SUBTYPE Rows IS Integer Range 1..12;
SUBTYPE Students IS integer RANGE 1..10;
Name_Length: CONSTANT Positive := 10;
TYPE Columns IS (A,B,C,D,E,F);
PACKAGE Grades_Sheet IS
NEW Spreadsheet(Rows, Columns, Name_Length);
PACKAGE Grades_Sheet_IO IS NEW Grades_Sheet.IO;
USE Grades_Sheet, Grades_Sheet_IO;
Name: String(1..10);
Grade: Integer;
BEGIN
FOR Row IN Students LOOP
Ada.Text_IO.Get(Item => Name);
Set(Cell => A-Row, A_String => Name);
FOR Column IN B..F LOOP
Ada.Integer_Text_IO.Get(Item => Grade);
Set(Cell => Column-Row, An_Integer => Grade);
END LOOP;
END LOOP;
Set(Cell => A-12, A_String => "Minimum");
FOR Column IN B..F LOOP
Set(Cell => Column-12,
A_Function => Integer_Minimum,
Block => (Column-1)-(Column-10));
END LOOP;
Set(Column_Slice => A-A, Width => Name_Length);
Set(Column_Slice => B-F, Width => 6);
Print(Block => (A-1)-(F-12));
END Use_Spreadsheet;