Advertisement
Guest User

Untitled

a guest
Jul 21st, 2017
59
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.03 KB | None | 0 0
  1. #include "stdafx.h"
  2. #include <iostream>
  3. #include <string>
  4. #include <stdio.h>
  5. #include <stdlib.h>
  6. #include <ctype.h>
  7. #include <sstream>
  8. using namespace std;
  9.  
  10. #pragma region operations
  11. void add(int &firstValueRe, int &secondValueRe, int firstValueIm, int secondValueIm)
  12. {
  13. int sumRe = 0;
  14. int sumIm = 0;
  15. char plusOrMinus= '+';
  16. char charI = 'i';
  17. if (firstValueIm == 0)
  18. {
  19. firstValueIm = 1;
  20. }
  21. if (secondValueIm == 0)
  22. {
  23. secondValueIm = 1;
  24. }
  25. sumRe = firstValueRe + secondValueRe;
  26. sumIm = firstValueIm + secondValueIm;
  27.  
  28. if (sumIm < 0)
  29. {
  30. char plusOrMinus = '-';
  31. sumIm *= -1;
  32. char charI = 'i';
  33. cout << "Answer: " << sumRe << plusOrMinus << sumIm << charI << endl;
  34. }
  35. else if (sumIm > 0)
  36. {
  37. char plusOrMinus = '+';
  38. char charI = 'i';
  39. cout << "Answer: " << sumRe << plusOrMinus << sumIm << charI << endl;
  40. }
  41. else if (sumIm == 1)
  42. {
  43. cout << "Answer: " << sumRe << plusOrMinus << charI << endl;
  44. }
  45. else if (sumIm == 0 && sumRe != 0)
  46. {
  47. cout << "Answer: " << sumRe << endl;
  48. }
  49. else if (sumRe == 0 && sumIm != 0)
  50. {
  51. cout << "Answer: " << sumIm << charI << endl;
  52. }
  53. else if (sumRe == 0 && sumIm == 0)
  54. {
  55. cout << "Answer: 0" << endl;
  56. }
  57.  
  58.  
  59. }
  60. void sub(int &firstValueRe, int &secondValueRe, int &firstValueIm, int &secondValueIm)
  61. {
  62. int difRe;
  63. int difIm;
  64. char plusOrMinus = '+';
  65. char charI= 'i';
  66. difRe = firstValueRe - secondValueRe;
  67. difIm = firstValueIm - secondValueIm;
  68. if (difIm < 0)
  69. {
  70. char plusOrMinus = '-';
  71. difIm *= -1;
  72. char charI = 'i';
  73. }
  74. else if (difIm > 0)
  75. {
  76. char plusOrMinus = '+';
  77. char charI = 'i';
  78. }
  79. else if (difIm == 1)
  80. {
  81. cout << "Answer: " << difRe << plusOrMinus << charI << endl;
  82. }
  83. else if (difIm == -1)
  84. {
  85. difIm *= -1;
  86. cout << "Answer: " << difRe << plusOrMinus << charI << endl;
  87. }
  88. else if (difIm == 0 && difRe != 0)
  89. {
  90. cout << "Answer: " << difRe << endl;
  91. }
  92. else if (difRe == 0 && difIm != 0)
  93. {
  94. cout << "Answer: " << difIm << charI << endl;
  95. }
  96. else if (difRe == 0 && difIm == 0)
  97. {
  98. cout << "Answer: 0" << endl;
  99. }
  100. cout << "Answer: " << difRe << plusOrMinus << difIm << charI << endl;
  101. }
  102. void mul(int &firstValueRe, int &secondValueRe, int &firstValueIm, int &secondValueIm)
  103. {
  104. int proRe;
  105. int proIm;
  106. char plusOrMinus = '+';
  107. char charI = 'i';
  108. proRe = (firstValueRe*secondValueRe) - (firstValueIm*secondValueIm);
  109. proIm = (firstValueRe*secondValueIm) + (firstValueIm*secondValueRe);
  110. if (proIm < 0)
  111. {
  112. char plusOrMinus = '-';
  113. proIm *= -1;
  114. char charI = 'i';
  115. }
  116. else if (proIm > 0)
  117. {
  118. char plusOrMinus = '+';
  119. char charI = 'i';
  120. }
  121. else if (proIm == 1)
  122. {
  123. cout << "Answer: " << proRe << plusOrMinus << charI << endl;
  124. }
  125. else if (proIm == 0 && proRe != 0)
  126. {
  127. cout << "Answer: " << proRe << endl;
  128. }
  129. else if (proRe == 0 && proIm != 0)
  130. {
  131. cout << "Answer: " << proIm << charI << endl;
  132. }
  133. else if (proRe == 0 && proIm == 0)
  134. {
  135. cout << "Answer: 0" << endl;
  136. }
  137. cout << "Answer: " << proRe << plusOrMinus << proIm << charI << endl;
  138. }
  139. void div(int &firstValueRe, int &secondValueRe, int &firstValueIm, int &secondValueIm)
  140. {
  141. double quoRe;
  142. double quoIm;
  143. char plusOrMinus = '+';
  144. char charI= 'i';
  145. quoRe = ((firstValueRe*secondValueRe) + (firstValueIm*secondValueIm)) / (pow(secondValueRe, 2) + pow(secondValueIm, 2));
  146. quoIm = ((firstValueIm*secondValueRe) - (firstValueRe*secondValueIm)) / (pow(secondValueRe, 2) + pow(secondValueIm, 2));
  147. if (quoIm < 0)
  148. {
  149. char plusOrMinus = '-';
  150. quoIm *= -1;
  151. char charI = 'i';
  152. }
  153. else if (quoIm > 0)
  154. {
  155. char plusOrMinus = '+';
  156. char charI = 'i';
  157. }
  158. else if (quoIm == 1)
  159. {
  160. cout << "Answer: " << quoRe << plusOrMinus << charI << endl;
  161. }
  162. else if (quoIm == 0 && quoRe != 0)
  163. {
  164. cout << "Answer: " << quoRe << endl;
  165. }
  166. else if (quoRe == 0 && quoIm != 0)
  167. {
  168. cout << "Answer: " << quoIm << charI << endl;
  169. }
  170. else if (quoRe == 0 && quoIm == 0)
  171. {
  172. cout << "Answer: 0" << endl;
  173. }
  174. cout << "Answer: " << quoRe << plusOrMinus << quoIm << charI << endl;
  175. }
  176. #pragma endregion
  177.  
  178. int main()
  179. {
  180. bool tr;
  181. tr = true;
  182. while (tr == true)
  183. {
  184. string firstValue;
  185. int firstValueRe;
  186. string firstValueImInput;
  187. int firstValueIm = 0;
  188. string secondValue;
  189. int secondValueRe;
  190. string secondValueImInput;
  191. int secondValueIm = 0;
  192. char inputOperation;
  193. double finalValue;
  194. stringstream ss;
  195. stringstream sn;
  196.  
  197.  
  198.  
  199. cout << "Please choose one of the following operations:" << endl;
  200. cout << "======[Operations]======" << endl;
  201. cout << "=|+|=============|plus|=" << endl;
  202. cout << "=|-|============|minus|=" << endl;
  203. cout << "=|*|=========|multiply|=" << endl;
  204. cout << "=|/|===========|divide|=" << endl;
  205. cout << "======[Operations]======" << endl;
  206. cout << endl;
  207. cout << "... or press 'x' to exit. ";
  208. cin >> inputOperation;
  209.  
  210. if (inputOperation == 'x')
  211. {
  212. tr = false;
  213. }
  214. else
  215. {
  216. cout << "Enter first complex value (a+bi): ";
  217. cin >> firstValueRe;
  218. cin >> firstValueImInput;
  219.  
  220. ss << firstValueImInput;
  221. ss >> firstValueIm;
  222.  
  223. cout << "Enter second value's real part (c+di): ";
  224. cin >> secondValueRe;
  225. cin >> secondValueImInput;
  226.  
  227. sn << secondValueImInput;
  228. sn >> secondValueIm;
  229.  
  230. if (inputOperation == '+')
  231. {
  232. add(firstValueRe, secondValueRe, firstValueIm, secondValueIm);
  233. cout << endl;
  234. }
  235. else if (inputOperation == '-')
  236. {
  237. sub(firstValueRe, secondValueRe, firstValueIm, secondValueIm);
  238. cout << endl;
  239. }
  240. else if (inputOperation == '*')
  241. {
  242. mul(firstValueRe, secondValueRe, firstValueIm, secondValueIm);
  243. cout << endl;
  244. }
  245. else if (inputOperation == '/')
  246. {
  247. (double)firstValueIm;
  248. (double)secondValueIm;
  249. if (secondValueRe == 0 && secondValueIm == 0)
  250. {
  251. cout << "{begin: Error Message} \\ This input equation is not registered == Please enter other input equation for successful calculation \\ {end: Error Message}" << endl;
  252. }
  253. else
  254. {
  255. div(firstValueRe, secondValueRe, firstValueIm, secondValueIm);
  256. cout << endl;
  257. }
  258.  
  259. }
  260.  
  261. }
  262.  
  263. }
  264.  
  265. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement