Advertisement
Sanlover

Untitled

Oct 18th, 2020
86
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.60 KB | None | 0 0
  1. #include <iostream>
  2. #include <Windows.h>
  3. #include <conio.h>
  4.  
  5. using namespace std;
  6.  
  7. class Complex
  8. {
  9. double a0, b0;
  10. public:
  11. Complex()
  12. {
  13. a0 = b0 = 0;
  14. }
  15. Complex(double real, double imaginary)
  16. {
  17. a0 = real;
  18. b0 = imaginary;
  19. }
  20.  
  21. void set_a(double A)
  22. {
  23. a0 = A;
  24. }
  25.  
  26. void set_b(double B)
  27. {
  28. b0 = B;
  29. }
  30.  
  31. double get_a()
  32. {
  33. return a0;
  34. }
  35.  
  36. double get_b()
  37. {
  38. return b0;
  39. }
  40.  
  41. void print()
  42. {
  43. if (b0 == 1)
  44. cout << a0 << " + " << 'i' << endl;
  45. else if (b0 == -1)
  46. cout << a0 << " - " << 'i' << endl;
  47. else if (b0 >= 0)
  48. cout << a0 << " + " << b0 << 'i' << endl;
  49. else
  50. cout << a0 << " - " << abs(b0) << 'i' << endl;
  51. }
  52.  
  53. Complex add(Complex A, Complex B)
  54. {
  55. Complex tmp;
  56. tmp.a0 = A.a0 + B.a0;
  57. tmp.b0 = A.b0 + B.b0;
  58. return tmp;
  59. }
  60.  
  61. Complex sub(Complex A, Complex B)
  62. {
  63. Complex tmp;
  64. tmp.a0 = A.a0 - B.a0;
  65. tmp.b0 = A.b0 - B.b0;
  66. return tmp;
  67. }
  68.  
  69. Complex mul(Complex A, Complex B)
  70. {
  71. Complex tmp;
  72. tmp.a0 = A.a0 * B.a0 - A.b0 * B.b0;
  73. tmp.b0 = A.a0 * B.b0 + A.b0 * B.a0;
  74. return tmp;
  75. }
  76.  
  77. Complex div(Complex A, Complex B)
  78. {
  79. Complex tmp;
  80. tmp.a0 = (A.a0 * B.a0 + A.b0 * B.b0) / (B.a0 * B.a0 + B.b0 * B.b0);
  81. tmp.b0 = (B.a0 * A.b0 - A.a0 * B.b0) / (B.a0 * B.a0 + B.b0 * B.b0);
  82. return tmp;
  83. }
  84.  
  85. bool equ(Complex A, Complex B)
  86. {
  87. return (A.a0 == B.a0 && A.b0 == B.b0);
  88. }
  89.  
  90. Complex conj(Complex A)
  91. {
  92. Complex tmp;
  93. tmp.a0 = A.a0;
  94. tmp.b0 = -A.b0;
  95. return tmp;
  96. }
  97. };
  98.  
  99. void read(Complex& my)
  100. {
  101. double real, imag;
  102. cout << "Enter rp = ";
  103. cin >> real;
  104.  
  105. cout << "Enter ip = ";
  106. cin >> imag;
  107. my.set_a(real);
  108. my.set_b(imag);
  109. };
  110.  
  111. int main()
  112. {
  113. Complex b;
  114. read(b);
  115. return 0;
  116. }
  117.  
  118. //
  119. //
  120. //{
  121. // SetConsoleOutputCP(1251);
  122. // SetConsoleCP(1251);
  123. //
  124. // Complex A, B, C;
  125. // double a, b, c, d;
  126. //
  127. // int q;
  128. //
  129. // do
  130. // {
  131. // cout << "1. Сложение" << endl;
  132. // cout << "2. Вычитание" << endl;
  133. // cout << "3. Умножение" << endl;
  134. // cout << "4. Деление" << endl;
  135. // cout << "5. Сравнение" << endl;
  136. // cout << "6. Сопряженное число" << endl;
  137. // cout << "0. Выход" << endl;
  138. //
  139. // cin >> q;
  140. //
  141. // if (q > 0 && q < 6)
  142. // {
  143. // cout << "\nВведите действительную часть первого комплексного числа:" << endl;
  144. // cin >> a;
  145. // cout << "Введите мнимую часть первого комплексного числа:" << endl;
  146. // cin >> b;
  147. // A.set_a(a);
  148. // A.set_b(b);
  149. // cout << "Получено следующее комплексное число:" << endl;
  150. // A.print();
  151. // cout << "Введите действительную часть второго комплексного числа:" << endl;
  152. // cin >> c;
  153. // cout << "Введите мнимую часть второго комплексного числа:" << endl;
  154. // cin >> d;
  155. // B.set_a(c);
  156. // B.set_b(d);
  157. // cout << "Получено следующее комплексное число:" << endl;
  158. // B.print();
  159. // }
  160. //
  161. // else if (q == 6)
  162. // {
  163. // cout << "\nВведите действительную часть первого комплексного числа:" << endl;
  164. // cin >> a;
  165. // cout << "Введите мнимую часть первого комплексного числа:" << endl;
  166. // cin >> b;
  167. // A.set_a(a);
  168. // A.set_b(b);
  169. // cout << "Получено следующее комплексное число:" << endl;
  170. // A.print();
  171. // }
  172. // switch (q)
  173. // {
  174. // case 1:
  175. // cout << "\nПолучено следующее комплексное число:" << endl;
  176. // C = A.add(A, B);
  177. // C.print();
  178. // break;
  179. // case 2:
  180. // cout << "\nПолучено следующее комплексное число:" << endl;
  181. // C = A.sub(A, B);
  182. // C.print();
  183. // break;
  184. // case 3:
  185. // cout << "\nПолучено следующее комплексное число:" << endl;
  186. // C = A.mul(A, B);
  187. // C.print();
  188. // break;
  189. // case 4:
  190. // cout << "\nПолучено следующее комплексное число:" << endl;
  191. // C = A.div(A, B);
  192. // C.print();
  193. // break;
  194. // case 5:
  195. // if (A.equ(A, B))
  196. // cout << "Равны" << endl;
  197. // else cout << "Не равны" << endl;
  198. // break;
  199. // case 6:
  200. // cout << "\nИсходное комплексное число:" << endl;
  201. // A.print();
  202. // C = A.conj(A);
  203. // cout << "Сопряженное комплексное число:" << endl;
  204. // C.print();
  205. // break;
  206. //
  207. // defaut: break;
  208. // }
  209. // } while (q != 0);
  210. //}
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement