-*- Mode: Text; Fonts: Ct18b -*- EXERCISES 1. Create a package specification called COMPLEX which exports a private type called NUMBER. Complete the package by describing a body which includes the operations of addition, substraction, multiplication, division, setting and retrieving values, and determining angle and length. 2. Create a package, called METRIC_ENGLISH_CONVERSION, that exports the types LITER and GALLON, INCH and CENTIMETER, along with constants with the appropriate universal_real values needed for conversion. 3. Write the package specification for a unit that brings in the current date in month-day-year form and returns an equivalent Julian date. (A Julian date includes the year number and the day of the year. For example, 128 83 is the 128th day of 1983.) 4. Rewrite the factorial routine in TRANSCENDENTAL_FUNCTIONS without using recursion. 5. Write the package specification for three-dimensional transformations (scale, rotate, translate). *6. Rewrite the body of FIFO, this time using access types as the underlying implementation for the QUEUE. *7. Modify the LEXICAL_ANALYZER so that an exception occurs whenever an invalid character is received. *8. Modify the LEXICAL_ANALYZER so that we can recognize delimiters such as ".=", "+", and "+".