Advertisement
Guest User

Untitled

a guest
May 27th, 2019
80
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.42 KB | None | 0 0
  1. #include <iostream>
  2. #include <cmath>
  3. using namespace std;
  4. struct cc_complex
  5. {
  6. int a,b;
  7. };
  8. int GCD (int A, int B)
  9. {
  10. if(!B)
  11. return A;
  12. return GCD(B, A%B);
  13. }
  14. class c_complex
  15. {
  16. public:
  17. void sum (cc_complex z1, cc_complex z2)
  18. {
  19. int a_sum, b_sum;
  20. a_sum=z1.a+z2.a;
  21. b_sum=z1.b+z2.b;
  22. cout<<a_sum<<"+"<<b_sum<<"i"<<endl;
  23. }
  24. void product (cc_complex z1, cc_complex z2)
  25. {
  26. int a_product, b_product, imaginary_product;
  27. a_product=z1.a*z2.a;
  28. b_product=(z1.b*z2.b)*(-1);
  29. imaginary_product=z1.a*z2.b+z2.a*z1.b;
  30. cout<<a_product<<"+"<<imaginary_product<<"i"<<"*"<<b_product<<endl;
  31. }
  32. void subtract (cc_complex z1, cc_complex z2)
  33. {
  34. int a_subtract, b_subtract, z_subtract;
  35. a_subtract=z1.a-z2.a;
  36. b_subtract=z1.b-z2.b;
  37. if (z1.b>z2.b)
  38. cout<<a_subtract<<"+"<<b_subtract<<"i"<<endl;
  39. else if (z1.b<z2.b)
  40. cout<<a_subtract<<b_subtract<<"i"<<endl;
  41. else if (z1.b==z2.b) cout<<a_subtract<<endl;
  42. }
  43. void division (cc_complex z1, cc_complex z2)
  44. {
  45. int cmmdc=GCD(z1.a+z2.a,z1.b+z2.b),a_simplified,b_simplified,z1asmp,z2asmp,z1bsmp,z2bsmp,aux;
  46. if (cmmdc==1)
  47. cout<<z1.a<<"+"<<z1.b<<"i"<<"/"<<z2.a<<"+"<<z2.b<<"i"<<endl;
  48. else if (cmmdc!=1 && ((z2.a+z2.b)%(z1.a+z1.b)==0) || ((z1.a+z1.b)%(z2.a+z2.b)==0))
  49. {
  50. cmmdc=GCD(z1.a,z1.b);
  51. z1asmp=z1.a/cmmdc;
  52. z1bsmp=z1.b/cmmdc;
  53. aux=cmmdc;
  54. cmmdc=GCD(z2.a,z2.b);
  55. if (aux>cmmdc)
  56. {
  57. z2asmp=z2.a/cmmdc;
  58. z2bsmp=z2.b/cmmdc;
  59. }
  60. else if (aux<cmmdc)
  61. {
  62. z2asmp=z2.a/aux;
  63. z2bsmp=z2.b/aux;
  64. }
  65. cout<<z1asmp<<"/"<<z2bsmp<<endl;
  66. }
  67. else if (cmmdc!=1 && ((z2.a+z2.b)%(z1.a+z1.b)!=0) || ((z1.a+z1.b)%(z2.a+z2.b)!=0))
  68. {
  69. cmmdc=GCD(z1.a,z1.b);
  70. z1asmp=z1.a/cmmdc;
  71. z1bsmp=z1.b/cmmdc;
  72. cmmdc=GCD(z2.a,z2.b);
  73. z2asmp=z2.a/cmmdc;
  74. z2bsmp=z2.b/cmmdc;
  75. cout<<z1asmp<<"+"<<z1bsmp<<"i"<<"/"<<z2asmp<<"+"<<z2bsmp<<"i"<<endl;
  76. }
  77.  
  78. }
  79. void expr (cc_complex z1, cc_complex z2)
  80. {
  81. long first, second, third, fourth, fifth, sixth, seventh, eight;
  82. first=z1.a*z1.a*z2.a*z2.a;
  83. second=2*z1.b*z1.b*z2.b*z2.b;
  84. third=z1.a*z1.a*z2.a*z2.b;
  85. fourth=third;
  86. fifth=(-1)*(z2.b*z1.b*z1.b);
  87. sixth=z1.a*z1.a*z2.b*z2.b;
  88. seventh=z1.b*z1.b*z2.a*z2.a;
  89. eight=4*z1.a*z1.b*z2.a*z2.b;
  90. cout<<first+second-sixth-seventh-eight<<"+"<<2*(third+fourth-fifth)<<"i";
  91. }
  92.  
  93. };
  94. int main ()
  95. {
  96. c_complex exprs;
  97. cc_complex cpx1,cpx2;
  98. cout<<"Primul numar:"<<endl<<"Partea reala: ";
  99. cin>>cpx1.a;
  100. cout<<"Partea imaginara: ";
  101. cin>>cpx1.b;
  102. cout<<endl;
  103.  
  104. cout<<"Al doilea numar:"<<endl<<"Partea reala: ";
  105. cin>>cpx2.a;
  106. cout<<"Partea imaginara: ";
  107. cin>>cpx2.b;
  108. cout<<endl;
  109.  
  110. cout<<"Suma este: ";
  111. exprs.sum(cpx1,cpx2);
  112. cout<<"Produsul este: ";
  113. exprs.product(cpx1,cpx2);
  114. cout<<"Diferenta este: ";
  115. exprs.subtract(cpx1,cpx2);
  116. cout<<"Raportul este: ";
  117. exprs.division(cpx1,cpx2);
  118. cout<<"z1*z2+|z2|+conjugat(z2)+z1^2*z2^2= ";
  119. exprs.expr(cpx1,cpx2);
  120. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement