-- Chapter 23 - Exercise 3 with Ada.Text_IO, Person, Person.Positions; use Ada.Text_IO, Person, Person.Positions; procedure CH23_3 is Big_John : aliased SUPERVISOR; Jessica : aliased SUPERVISOR; Steve : aliased PROGRAMMER; Patrick : aliased PROGRAMMER; Gwen : aliased SECRETARY; Willy : EMPLOYEE; type EMPLOYEE_ACCESS is access all EMPLOYEE'Class; Employee_Point : EMPLOYEE_ACCESS; begin Init_Data(Big_John, "John", 54000, "President"); Init_Data(Jessica, "Jessica", 47500, "CEO"); Init_Data(Steve, "Steve", 52000, "Chief Programmer", "Ada"); Init_Data(Patrick, "Patrick", 33000, "Assistant Debugger", "C++"); Init_Data(Gwen, "Gwendolyn", 27000, TRUE, 85); Employee_Point := Big_John'Access; Display(Employee_Point.all); Employee_Point := Jessica'Access; Display(Employee_Point.all); Employee_Point := Steve'Access; Display(Employee_Point.all); Employee_Point := Patrick'Access; Display(Employee_Point.all); Employee_Point := Gwen'Access; Display(Employee_Point.all); end CH23_3; -- Result of execution -- -- John is a supervisor, and is the President of the company -- Jessica is a supervisor, and is the CEO of the company -- Steve is a programmer specializing in Ada. He makes 52000 dollars per year. -- Patrick is a programmer specializing in C++. He makes 33000 dollars per year. -- Gwendolyn is a secretary that does take shorthand. -- Gwendolyn is paid 27000 dollars per year.