Guest User

Untitled

a guest
Jul 16th, 2018
95
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.47 KB | None | 0 0
  1. #include "H3.h"
  2.  
  3. #include <iostream>
  4. #include <math.h>
  5.  
  6. using namespace std;
  7.  
  8. comp :: comp(double n, double d, int e) {
  9. imag = n;
  10. real = d;
  11. exp = e;
  12. }
  13. void comp :: setImag(double n) {
  14. imag = n;
  15. }
  16. double comp :: getImag() {
  17. return imag;
  18. }
  19. void comp :: setReal(double n) {
  20. real = n;
  21. }
  22. double comp :: getReal() {
  23. return real;
  24. }
  25. void comp :: setExp(int e) {
  26. exp = e;
  27. }
  28. int comp :: getExp() {
  29. return exp;
  30. }
  31. comp comp :: soma(comp& s) {
  32. double rim, rr;
  33. comp result;
  34. rim = imag + s.imag;
  35. rr = real + s.real;
  36. result.imag = rim;
  37. result.real = rr;
  38. setImag(rim);
  39. setReal(rr);
  40. return result;
  41. }
  42. comp comp :: sub(comp& s) {
  43. double rim, rr;
  44. comp result;
  45. rim = imag - s.imag;
  46. rr = real - s.real;
  47. result.imag = rim;
  48. result.real = rr;
  49. setImag(rim);
  50. setReal(rr);
  51. return result;
  52. }
  53. comp comp :: mult(comp& m) {
  54. double rim, rr;
  55. int resexp;
  56. comp result;
  57. resexp = exp+m.exp;
  58. if (resexp%4==1) {
  59. rim = imag*(m.real+m.imag);
  60. rr = real*(m.real+m.imag);
  61. resexp = 1;
  62. setImag(rim);
  63. setReal(rr);
  64. setExp(resexp);
  65. }
  66. if (resexp%4==2) {
  67. rim = (imag*m.real)+(real*m.imag);
  68. rr = (real*m.real)-(imag*m.imag);
  69. resexp = 1;
  70. setImag(rim);
  71. setReal(rr);
  72. setExp(resexp);
  73. }
  74. if (resexp%4==3) {
  75. rim = imag*(m.real-m.imag);
  76. rr = real*(m.real-m.imag);
  77. resexp = 1;
  78. setImag(rim);
  79. setReal(rr);
  80. setExp(resexp);
  81. }
  82. if (resexp%4==0) {
  83. rim = (imag*m.real)-(real*m.imag);
  84. rr = (real*m.real)+(imag*m.imag);
  85. resexp = 1;
  86. setImag(rim);
  87. setReal(rr);
  88. setExp(resexp);
  89. }
  90. return result;
  91. }
  92. comp comp :: div(comp& d) {
  93. double rim, rr;
  94. int resexp;
  95. comp result;
  96. resexp = exp+d.exp;
  97. if (resexp%4==1) {
  98. rim = (imag)/(d.imag+d.real);
  99. rr = (real)/(d.imag+d.real);
  100. resexp = 1;
  101. setImag(rim);
  102. setReal(rr);
  103. setExp(resexp);
  104. }
  105. if (resexp%4==2) {
  106. rim = ((d.imag*real)-(d.real*imag))/(-(d.imag*d.imag)-(d.real*d.real));
  107. rr = ((-1)*((imag*d.imag)+(real*d.real)))/(-(d.imag*d.imag)-(d.real*d.real));
  108. resexp = 1;
  109. setImag(rim);
  110. setReal(rr);
  111. setExp(resexp);
  112. }
  113. if (resexp%4==3) {
  114. rim = (imag)/(d.real-d.imag);
  115. rr = (real)/(d.real-d.imag);
  116. resexp = 1;
  117. setImag(rim);
  118. setReal(rr);
  119. setExp(resexp);
  120. }
  121. if (resexp%4==0) {
  122. rim = (-(d.imag*real)-(d.real*imag))/(-(d.imag*d.imag)-(d.real*d.real));
  123. rr = ((imag*d.imag)-(real*d.real))/(-(d.imag*d.imag)-(d.real*d.real));
  124. resexp = 1;
  125. setImag(rim);
  126. setReal(rr);
  127. setExp(resexp);
  128. }
  129. return result;
  130. }
  131. comp comp :: mod() {
  132. double mod;
  133. mod = sqrt((imag*imag)+(real*real));
  134. cout << "mod=" << mod << "\n\n";
  135. }
  136. void comp :: leitor() {
  137. cout << "func= " << getImag() << "i";
  138. if (real>=0){
  139. cout <<"+"<< getReal() << "\n";
  140. } else {
  141. cout << getReal() << "\n";
  142. }
  143. }
  144.  
  145.  
  146.  
  147.  
  148. int main() {
  149. int option;
  150. double n,d,n_soma,d_soma,n_sub,d_sub,n_mul,d_mul,e_mul,n_div,d_div,e_div;
  151. comp inicial, temp;
  152. cout << "criar a func(1) ou usar padrao(2)? ";
  153. cin >> option;
  154. switch (option) {
  155. case 1:
  156. cout << "parte imaginaria da func: ";
  157. cin >> n;
  158. cout << "parte real da func: ";
  159. cin >> d;
  160. inicial.setImag(n);
  161. inicial.setReal(d);
  162. break;
  163. case 2:
  164. inicial.setImag(1);
  165. inicial.setReal(1);
  166. break;
  167. }
  168. cout << "(1)Ver a func \n(2)Somar \n(3)Subtrair \n(4)Multiplicar \n(5)Dividir \n(6)Obter mod \n(7)Sair do programa\n\n";
  169. cin >> option;
  170. while (option!=7) {
  171. switch (option) {
  172. case 1:
  173. inicial.leitor();
  174. break;
  175. case 2:
  176. cout << "parte imaginaria da func: ";
  177. cin >> n_soma;
  178. cout << "real da func: ";
  179. cin >> d_soma;
  180. temp.setImag(n_soma);
  181. temp.setReal(d_soma);
  182. inicial.soma(temp);
  183. inicial.leitor();
  184. break;
  185. case 3:
  186. cout << "parte imaginaria da func: ";
  187. cin >> n_sub;
  188. cout << "parte real da func: ";
  189. cin >> d_sub;
  190. temp.setImag(n_sub);
  191. temp.setReal(d_sub);
  192. inicial.sub(temp);
  193. inicial.leitor();
  194. break;
  195. case 4:
  196. cout << "Digite a parte imaginaria da func que sera multiplicada: ";
  197. cin >> n_mul;
  198. cout << "Digite a parte real da func que sera multiplicada: ";
  199. cin >> d_mul;
  200. cout << "Digite o expoente da variavel i: ";
  201. cin >> e_mul;
  202. temp.setImag(n_mul);
  203. temp.setReal(d_mul);
  204. temp.setExp(e_mul);
  205. inicial.mult(temp);
  206. inicial.leitor();
  207. break;
  208. case 5:
  209. cout << "parte imaginaria da func: ";
  210. cin >> n_div;
  211. cout << "parte real da func: ";
  212. cin >> d_div;
  213. cout << "expoente da variavel i: ";
  214. cin >> e_div;
  215. temp.setImag(n_div);
  216. temp.setReal(d_div);
  217. temp.setExp(e_div);
  218. inicial.div(temp);
  219. inicial.leitor();
  220. break;
  221. case 6:
  222. inicial.mod();
  223. break;
  224. }
  225. cout << "(1)Ver a func \n(2)Somar \n(3)Subtrair \n(4)Multiplicar \n(5)Dividir \n(6)Obter mod \n(7)Sair do programa\n\n";
  226. cin >> option;
  227.  
  228. }
  229.  
  230.  
  231. return 0;
  232. }
Add Comment
Please, Sign In to add comment