Advertisement
Cosmin23

Untitled

Mar 19th, 2018
77
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.03 KB | None | 0 0
  1. #include <iostream>
  2. #include <math.h>
  3. using namespace std;
  4.  
  5. class cplx
  6. {
  7. private:
  8. double re;
  9. double im;
  10. public:
  11. void afisare();
  12. double get_real();
  13. double get_imaginar();
  14. void set_real(double);
  15. void set_imaginar(double);
  16. cplx ();
  17. cplx (double);
  18. cplx (double, double);
  19. cplx (const cplx &X);
  20. double modul();
  21. friend cplx operator+(const cplx &a, const cplx &b);
  22. friend cplx operator*(const cplx &a, const cplx &b);
  23. friend cplx operator/(const cplx &a, const cplx &b);
  24. cplx sqrt();
  25. //~cplx();
  26. };
  27. cplx :: cplx()
  28. {
  29. re = 0;
  30. im = 0;
  31. }
  32. cplx :: cplx (double a)
  33. {
  34. re = a;
  35. im = 0;
  36. }
  37. cplx :: cplx (double a, double b)
  38. {
  39. re = a;
  40. im = b;
  41. }
  42. cplx :: cplx (const cplx &X)
  43. {
  44. re = X.re;
  45. im = X.im;
  46. }
  47. double cplx :: get_real()
  48. {
  49. return re;
  50. }
  51. double cplx :: get_imaginar()
  52. {
  53. return im;
  54. }
  55. void cplx :: afisare ()
  56. {
  57. if( re == 0 && im != 0)
  58. cout << im << "*i" << endl;
  59. if( re != 0 && im == 0)
  60. cout << re << endl;
  61. if( re != 0 && im > 0)
  62. cout << re << "+" << im << "*i" << endl;
  63. if( re != 0 && im < 0)
  64. cout << re << im << "*i"<< endl;
  65. }
  66. double cplx :: modul()
  67. {
  68. return (sqrt( re * re + im * im));
  69. }
  70. cplx operator+( const cplx &a, const cplx &b )
  71. {
  72. return cplx ( a.re + b.re, a.im + b.im );
  73. }
  74. cplx operator*( const cplx &a, const cplx &b )
  75. {
  76. return cplx ( a.re * b.re- a.im * b.im, a.re * b.im + a.im * b.re );
  77. }
  78. cplx operator/ (const cplx &a, const cplx &b)
  79. {
  80. double t=b.re*b.re+b.im*b.im;
  81. return cplx(( a.re * b.re + a.im * b.im) / t, ( a.im * b.re - a.re * b.im ) / t );
  82. }
  83. cplx :: cplx sqrt()
  84. {
  85. if ( im >= 0)
  86. return (sqrt ( re + x.modul) / 2), sqrt( -re + x.modul) / 2 );
  87. if ( im < 0)
  88. return (sqrt ( re + x.modul) / 2), (-1)*sqrt( -re + x.modul) / 2 );
  89. }
  90. int main()
  91. {
  92. cplx x(3,4);
  93. cplx y(1,2);
  94. cplx z = x;
  95. x.afisare();
  96. y.afisare();
  97. z.afisare();
  98. z = x + y;
  99. z.afisare();
  100. z = x * y;
  101. z.afisare();
  102. z = x / y;
  103. z.afisare();
  104. return 0;
  105. }
  106. /* Tema 1. Clasa ”Numar_Complex”
  107. - membrii privati pentru partea reala si partea imaginara (double);
  108. - constructori pentru initializare si copiere;
  109. - destructor (în cazul alocarii statice, se seteaza dimensiunea vectorului la zero,
  110. iar în cazul alocarii dinamice, se dezaloca zona de memorie utilizata);
  111. - metode publice pentru setat/furnizat partea reala si partea imaginara;
  112. - metoda publica de afisare (sub forma "a", "i*a", "-i*a", "a+i*b", "a-i*b");
  113. - metoda publica pentru determinarea modulului unui numar complex;
  114. - suma a doua numere complexe, implementata prin supraincarcarea op +;
  115. - produsul a doua numere complexe, implementat prin supraincarcarea op *;
  116. - împărțirea a doua numere complexe, implementata prin supraincarcarea op /.
  117. - metoda publica sqrt pentru furnizarea radicalului de ordinul 2 al unui complex.
  118. Să se realizeze un program de rezolvare a ecuatiei de ordinul doi cu coeficienti
  119. complecsi.*/
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement