Universidad de Costa Rica
|
|
istream& operator >> (istream&, poly&)
class istream; class ostream;
class poly {
public:
enum { MxGrado = 25 }; // máximo grado para un polinomio
private:
double _coef[MxGrado]; // vector de coeficientes
unsigned _grad; // grado del polinomio
public:
poly() : _grad(0) { _coef[0] = 0.0; } // constructor
// operadores de entrada-salida
friend ostream& operator << (ostream&, const poly&);
friend istream& operator >> (istream&, poly&);
}; // poly
poly
Con alguna frecuencia es necesario hacer aritmética con
polinomios, para lo que conviene contar con una clase polinomio.
En esta tarea su trabajo consiste en escribir una parte de la
implementación de la clase poly
, definida como
se muestra en la
Figura 1, para lo que debe implementar
los operadores "<<
" y
">>
", que sirven para grabar y obtener el valor
de un polinomio desde un flujo de datos (istream
).
El siguiente artículo, disponible en Internet, se describe
una implementación de la clase
poly
para el lenguaje
Turbo Pascal:
Poly.pas
"; Reporte
técnico
ECCI-94-04; Proyecto
326-89-019; 1994.
http://www.di-mare.com/adolfo/p/poly.htm
http://www.di-mare.com/adolfo/p/src/poly.zip
Para facilitar su trabajo, implemente primero el operador de
salida de datos, el que debe tomar el vector de coeficiente del
polinomio y desplegarlo en el siguiente formato:
[10.0 x^4 + 6.0 x^3 - 22.0 x^2 - 10.0]
El caracter "^
" denota el exponente de cada
término, y los términos del polinomio se graban del
mayor al menor, omitiendo aquellos que tienen coeficiente cero.
Los espacios en blanco están para facilitar la lectura del
valor. Además, el valor del polinomio aparece encerrado
entre paréntesis cuadrados "[]
". Si hay varios
términos que tienen el mismo grado, al leerlos se suman
todos para obtener el coeficiente que corresponde a ese grado. En
la
Figura 2 está la
especificación de los dos operadores que usted debe
implementar.
Si lo desea, puede usar como modelo la implementación de
los operadores "<<
" y ">>
"
para números racionales, que aparece en la clase
"racional
" descrita en este artículo:
Rational.pas
";
Reporte técnico
ECCI-94-03; Proyecto
326-89-019; 1994.
http://www.di-mare.com/adolfo/p/rational.htm
http://www.di-mare.com/adolfo/p/src/rational.zip
Cuando hay terminado la implementación de los dos
operadores especificados en la
Figura 2, envíe por correo
electrónico a los
asistentes del curso el archivo poly.cpp
resultante. Además, también incluya un programa de
prueba y el resultado de ejecutarlo.
|
Adolfo Di Mare <adolfo@di-mare.com>.
|