CS 202, Fall 2007 Assignment #9: 10 Points. Due Date: Thursday, 11/15/07. (3) 1. Write function templates for the selectionSort() and swap() functions of Figure 8.15 to allow sorting any type of array. Use the templates in a modified driver program to declare, sort and output a array in addition to the array already defined in the driver.** (3) 2. Overload function template printArray() of Figure 14.1 with a non-template version that prints an array of C++ character strings with each string on a separate line. Modify the driver program to declare and print an array of character strings using printArray(), in addition to the existing arrays already defined in the driver. Do not use C-style character arrays.** (4) 3. Modify the Shapes class hierarchy to include derived classes Square and Cube, which are derived from the Point class in the same manner as the Circle and Cylinder classes. A Square object is defined by a Point giving the (x,y) coordinates of one corner and the length of the side of the square. A Cube object is defined by a Square which is extended to 3D using the same length of side. The area of a square is s*s, where s is the length of the side. The volume of a square is 0. The area of a cube is 6*s*s and the volume of a cube is s*s*s. Modify the ShapeTest driver program to add Square and Cube objects and test the member functions of the new objects using both static and dynamic binding in the same manner as the existing Shapes.** (G1) 4. Group Project Organization. The class will be divided into groups of 3 students who will work together on the project. The project will involve writing a compiler for the Simple language, as described in Exercises 21.26-29, which can compile programs for execution on the Simpletron simulator. The group assignment for this week is for the class to form into groups. Each student must join a group, help choose a name for the group and submit the names of the students in the group for this homework. Group participation is required of all students. Any students who do not join a group will be dropped from the class because every group requires the participation of all students in the group. Since class time will be provided for group activities, class attendance is mandatory beginning the week of November 20. When the groups are finalized, each group will be provided a Blackboard group with email, file exchange and discussion forums to facilitate communication within the group. **For full credit, turn in fully commented program listings, including your name and the problem number, and the output from test runs exactly as produced by the program.