In lab this week, you should go over Unix some more. Also the things that you should have covered between last week and this week are: Unix emacs compiling C++ programs on Unix (inside and ouside emacs) gdb (inside emacs) makefiles (inside emacs) To teach them gdb you may want to mess some things up with my solution to the as1 and have them all go through it and find the errors. It is easy to make errors with pointer, you can just make a pointer point to some uninitialized memory. The program that you will have them start in lab will then be one that deals with pointers to functions. Write two short functions, Area and Perimeter. Each function will take one double parameter radius and return a double, the area of a circle with the specified radius and the perimeter of a circle with the specified radius. double Area(double radius); double Perimeter(double radius); Then write a program that creates two arrays each of 10 doubles. The user should be prompted to enter 10 diameters into one array. Then the user should be asked whether they want the second array to contain the area or perimeter of each item in the first array. They should then call a function called Circle. Circle takes three parameters, the list of diameters, the new list (that will soon be created), and a pointer to the appropriate function (Area or Perimeter). void Circle(double list[], double newlist[], double (*FuncPtr)(double radius)); Circle should iterate through the list of diameters, using the function pointer to calculate the values to be stored int the new list. At the end of main print out the values of each array List New List 3 7.065 7 38.465 . . . . . . I will send you a copy of an example program.