Sample Assignment: The Polynomial Class with a Dynamic Array
poly1.h:The header file for the new polynomial class. Start with our our version of poly1.h and add your name and email address at the top.
poly1.cxx:The implementation file for the new polynomial class.
polytest1.cxx:A simple interactive test program.
polyexam1.cxx:A non-interactive test program that will be used to grade the correctness of your polynomial class.
As indicated above, you will revise the polynomial class to use a
dynamic array. You'll need to copy your
a new file
poly1.cxx and make these changes:
main_savitch_4, and change the include statement to include
private: double *coef; // Pointer to the dynamic array unsigned int size; // Current size of the dynamic array unsigned int current_degree;
reservemember function. The purpose of this function is the same as the bag's
reservefunction in Chapter 4 (making sure that the size of the dynamic array is at least equal to the specified number). However, be careful that you understand how your
reservefunction may need to differ from the bag's
reservefunction. For example, the newly allocated array for the polynomial must always be at least the degree plus one. Also, in the case of the bag, the new part of the larger array did not need to be initialized because it was not being used (but depending on how your coefficient function is implemented, your polynomial might expect the unused part of the array to contain zeros).
coefficient, and the precondition check in
operator *. By the way, the change made in my
operator *was to replace the precondition check with the statement:
answer.reserve(p1.degree( ) + p2.degree( ) + 1);This statement is not absolutely needed, but it does make the computation more efficient by correctly reserving the right amount of room from the start. You might make similar calls to the reserve function in any other function that calculates and returns a polynomial.
find_rootfunction that was discussed in class. (It already has documentation in the new
poly1.hfile.) You should be able to write this function with no direct access to the member variables. In my implementation, I found it useful to use the
fabs(b)to compute the absolute value of a number