Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <math.h>
- using namespace std;
- class cplx
- {
- private:
- double re;
- double im;
- public:
- void afisare();
- double get_real();
- double get_imaginar();
- void set_real(double);
- void set_imaginar(double);
- cplx ();
- cplx (double);
- cplx (double, double);
- cplx (const cplx &X);
- double modul();
- friend cplx operator+(const cplx &a, const cplx &b);
- friend cplx operator*(const cplx &a, const cplx &b);
- friend cplx operator/(const cplx &a, const cplx &b);
- cplx sqrt();
- //~cplx();
- };
- cplx :: cplx()
- {
- re = 0;
- im = 0;
- }
- cplx :: cplx (double a)
- {
- re = a;
- im = 0;
- }
- cplx :: cplx (double a, double b)
- {
- re = a;
- im = b;
- }
- cplx :: cplx (const cplx &X)
- {
- re = X.re;
- im = X.im;
- }
- double cplx :: get_real()
- {
- return re;
- }
- double cplx :: get_imaginar()
- {
- return im;
- }
- void cplx :: afisare ()
- {
- if( re == 0 && im != 0)
- cout << im << "*i" << endl;
- if( re != 0 && im == 0)
- cout << re << endl;
- if( re != 0 && im > 0)
- cout << re << "+" << im << "*i" << endl;
- if( re != 0 && im < 0)
- cout << re << im << "*i"<< endl;
- }
- double cplx :: modul()
- {
- return (sqrt( re * re + im * im));
- }
- cplx operator+( const cplx &a, const cplx &b )
- {
- return cplx ( a.re + b.re, a.im + b.im );
- }
- cplx operator*( const cplx &a, const cplx &b )
- {
- return cplx ( a.re * b.re- a.im * b.im, a.re * b.im + a.im * b.re );
- }
- cplx operator/ (const cplx &a, const cplx &b)
- {
- double t=b.re*b.re+b.im*b.im;
- return cplx(( a.re * b.re + a.im * b.im) / t, ( a.im * b.re - a.re * b.im ) / t );
- }
- cplx :: cplx sqrt()
- {
- if ( im >= 0)
- return (sqrt ( re + x.modul) / 2), sqrt( -re + x.modul) / 2 );
- if ( im < 0)
- return (sqrt ( re + x.modul) / 2), (-1)*sqrt( -re + x.modul) / 2 );
- }
- int main()
- {
- cplx x(3,4);
- cplx y(1,2);
- cplx z = x;
- x.afisare();
- y.afisare();
- z.afisare();
- z = x + y;
- z.afisare();
- z = x * y;
- z.afisare();
- z = x / y;
- z.afisare();
- return 0;
- }
- /* Tema 1. Clasa ”Numar_Complex”
- - membrii privati pentru partea reala si partea imaginara (double);
- - constructori pentru initializare si copiere;
- - destructor (în cazul alocarii statice, se seteaza dimensiunea vectorului la zero,
- iar în cazul alocarii dinamice, se dezaloca zona de memorie utilizata);
- - metode publice pentru setat/furnizat partea reala si partea imaginara;
- - metoda publica de afisare (sub forma "a", "i*a", "-i*a", "a+i*b", "a-i*b");
- - metoda publica pentru determinarea modulului unui numar complex;
- - suma a doua numere complexe, implementata prin supraincarcarea op +;
- - produsul a doua numere complexe, implementat prin supraincarcarea op *;
- - împărțirea a doua numere complexe, implementata prin supraincarcarea op /.
- - metoda publica sqrt pentru furnizarea radicalului de ordinul 2 al unui complex.
- Să se realizeze un program de rezolvare a ecuatiei de ordinul doi cu coeficienti
- complecsi.*/
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement