[C con Clase] Correccion de Ejercicio Particular

Luis Gutierrez Gomez gutierrezgl en hotmail.com
Dom Abr 15 21:46:56 CEST 2012


Cordiales Saludos; Estuve siguiendo el curso de C++, que lo dan en la web de CConClase

y estuvo muy interesante, como no habian muchos ejercicios para desarrollar y practicar lo aprendido,

especialmente en aplicaciones propias de C++, consulté sobre donde conseguir ejercicios y me 

recomendaron el Libro de Deytel & Deytel, la verdad que es muy bueno y complementa muy bien con 

las enseñanzas de aca. Estoy resolviendo los ejerciccios del Capitulo 16 y por favor quisiera 

que lo corrijan y me digan si cometí errores o donde podria mejorar, de antemano muchas gracias por su 

apoyo.

 

Aqui dejo el enunciado:

 

16.5 Cree una clase llamada Complejo para realizar aritmetica con numeros complejos. Escriba un programa 

controlador para probar sus clases.

Los numeros complejos tienen la forma:

 

parte real + parte imaginaria * i

 

en donde i es:

 ___

V -1

 

Utilice variables double para representar datos de tipo private de una clase. Proporcione un constructor

que permita inicializar un objeto de esta clase cuando se declare. El constructor debe contener valores 

predeterminados, en caso de que no se proporcionen inicializadores. Proporcione funciones miembro

de tipo public para cada uno de los siguientes:

a) Suma de dos numeros complejos: las partes reales se suman juntas y las partes imaginarias se suman

juntas.

b) Resta de dos numeros complejos: la parte real del operando derecho se resta de la parte real del

operando izquierdo, y la parte imaginaria del operando derecho se resta de la parte imaginaria del

operando izquierdo.

c) Impresion de numeros complejos de la forma (a,b), en donde a es la parte real y b es la parte imaginaria. 


 

SOLUCION

--------

 

#include <iostream>

using std :: cout;
using std :: endl;

 

class Complejo{


public:
 Complejo(double = 0, double = 0);
 void SumaComplejo ( double , double );
 void RestaComplejo ( double , double );
 void ImpresionComplejo (void);


private:
 double real;
 double imaginaria;
};

 

Complejo::Complejo(double re, double im){
 real = re;
    imaginaria = im;
}

 

void Complejo::SumaComplejo( double r2, double i2 ){

 real = real + r2;
 imaginaria = imaginaria + i2;
 cout << "El resultado de la suma de complejos es:" << endl;
 ImpresionComplejo ();
}

 

void Complejo::RestaComplejo( double r2, double i2 ){

 real = real - r2;
 imaginaria = imaginaria - i2;
 cout << "El resultado de la resta de complejos es: " << endl;
 ImpresionComplejo ();
}

 

void Complejo::ImpresionComplejo (){

 cout << " ( " << real <<" , " << imaginaria << " *i ) " << endl;
}

 

 

int main ()
{
 Complejo C1;
 cout << "El complejo por defecto es: " << endl;
 C1.ImpresionComplejo();
 cout << "El segundo complejo es: "<< endl;
 Complejo C2( 12.5, 28.4 );
 C2.ImpresionComplejo();
 C2.SumaComplejo( 8.9, 34.2 );
 cout << "El tercer complejo es : " << endl;
 Complejo C3( 23.8, 32.12 );
 C3.ImpresionComplejo();
 C3.RestaComplejo( 11.5, 13.8 );
 return 0;
}


 

//////////////////////////////////////////////////////////////////

estaré atento, muchas gracias

 

Luis

  		 	   		  



Más información sobre la lista de distribución Cconclase