Ejercicios
1. Implementa la siguiente clase para representar
complejos en forma biónica:
class CComplejo
{
private:
double real, imag;
public:
CComplejo();
CComplejo(double r, double i);
void asigna_real(double r);
void asigna_imag(double i);
double parte_real() const;
double parte_imag() const;
double modulo() const;
double argumento() const;
void suma(const CComplejo&
a, const CComplejo& b);
void resta(const CComplejo&
a, const CComplejo& b);
};
y escribe una funci ́on calculadora(a,b)que
reciba dos complejos
a y b (por referencia) y calcule e imprima su suma y su
resta.
2. Repite el ejercicio anterior pero representando
esta vez los complejos en forma polar:
class CComplejo
{
Clases y objetos en C++
double mdl, // modulo
argumento; // argumento
public:
CComplejo();
CComplejo(double r, double i);
void asigna_real(double r);
void asigna_imag(double i);
double parte_real() const;
double parte_imag() const;
double modulo() const;
double argumento() const;
void suma(const CComplejo&
a, const CComplejo& b);
void resta(const CComplejo&
a, const CComplejo& b);
};
Para realizar la conversion entre forma binomica y
polar, puedes emplear las siguientes funciones de la biblioteca math.h:
double cos(double x);
double sin(double x);
double sqrt(double x);
double atan2(double y,
double x);
La funcion atan2 calcula
el arcotangente de y/x. Observa que el interfaz de la clase CComplejo
no ha
cambiado, por lo que el programa de prueba y la funcion calculadora(a,b)deben
seguir funcionando sin realizar modificaci ́on alguna. En concreto, el
constructor CComplejo(r,i)sigue recibiendo las partes real e imaginaria del
complejo.
No hay comentarios:
Publicar un comentario