 Home
 Questions
 CSCI 2421 homework 3
CSCI 2421 homework 3
Program objectives
The objectives of this assignment are as follows.
An ability to analyze a problem, and identify and define the computing requirements appropriate to its solution (ABET b).
Point value
This program is worth 15 points. The distribution of points will be as follows.
Criterion

Value

Global functions

1

Poly class

5

Program style (see below)

3

Correct output with annotation

6

Background
A polynomial is a function of the following form:
d p(n) =∑a_{i}n^{i }, where d is an integer and the a_{i} are the coefficients with a_{d} ≠ 0.
i=0 p(n) is said to be a polynomial in n of degree d.
Problem
Create a class named polynomial that uses a dynamic array to perform the following arithmetic for polynomials, p_{1} and p_{2}.
 p_{1} + p_{2}
 p_{1} * p_{2}
 p_{1} (n), n ∈ Z
Input
 A text file consisting of two rows of spacedelimited integers. Each row represents the coefficients, a_{i} for a polynomial p. The first number on each row represents a_{0} and the last number a_{d}. Notice that any a_{i} (except a_{d}) may be 0. No coefficient will be missing, even if it is 0. The name of the text file will be available in positional parameter, argv[1].
 A number, n ∈ Z input on the command line in positional parameter argv[2] that is used to evaluate polynomial p_{1}. For example, if p_{1} = (1, 0, 3, 0, 0) and n=2, then p_{1}(2) = 28. Notice that argv[2] is type char*, so it must be converted to type int by your program (a global function).
Class requirements
 Use a dynamic array to implement your polynomial.
 Define a constant member to evaluate a polynomial at a value n.
 Define a “setter” to set any coefficient requested.
 Define a “getter” to return any coefficient requested.
 Overload operators + and * for the polynomial class.
 Overload operator << for polynomial class.
 Operator << should display the polynomial as an ntuple in the order highest term to lowest term. For example,
(3, 2, 0, 0, 7) ≡ 3x^{4} – 2x^{3} + 7
Driver
 Greet the user.
 Instantiate p_{1} and p_{2}.
 Read the text file and set the coefficients of p_{1} and p_{2}.
 Perform the polynomial arithmetic per the problem specification and display the annotated results.
 Convert argv[2] to an int, evaluate p_{1} at this value, and display the annotated result.
Notes
 Use an appropriate annotation with all output.
 Make sure that main is short. It should basically be making toplevel function calls.
 Use good program style that includes, but is not limited to, header comments, pre and post conditions, macro guards, whitespace and indentation, selfdocumenting names, symbolic constants where appropriate (use all caps for the name of each symbolics), separation of interface and implementation, correctly submitted program file (tar archive), and a greeting to start the program.
 You are not restricted to the polynomial members listed above; that is, you may define other members that you feel necessary.
 Be sure to use error checking where appropriate.