Advertisement
SkeptaProgrammer

Untitled

Apr 16th, 2019
85
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.86 KB | None | 0 0
  1. #include "pch.h"
  2. #include <cmath>
  3. #include <iostream>
  4. #include "interface.h"
  5. #include "complexcalculator.h"
  6. using std::cout;
  7.  
  8. double Add(double *a, int size) // где a -- re или im не имеет значения
  9. {
  10. double sum = 0;
  11. for (int i = 0; i < size; i++)
  12. sum += a[i];
  13. return sum;
  14. }
  15.  
  16. double Subtract(double *a, int size) // где a -- re или im не имеет значения
  17. {
  18. double sum = a[0];
  19. for (int i = 1; i < size; i++)
  20. sum -= a[i];
  21. return sum;
  22. }
  23.  
  24. double Abs(double* re, double* im, int size, int numberString)
  25. {
  26. return sqrt(re[numberString]* re[numberString]+ im[numberString]* im[numberString]);
  27. }
  28.  
  29.  
  30. double Multiply(double *re, double *im, int size, bool reOrIm) // reOrIm - вычисление вещественной или мнимной части
  31. {
  32. double result = 0;
  33.  
  34. if (reOrIm)
  35. {
  36. for (int i = 0; i < size - 1; i++)
  37. result += re[i] * re[i + 1] - im[i] * im[i + 1];
  38. }
  39. else
  40. {
  41. for (int i = 0; i < size - 1; i++)
  42. result += re[i] * im[i + 1] + im[i] * re[i + 1];
  43. }
  44.  
  45. return result;
  46. }
  47.  
  48.  
  49. bool Divide(double *re, double *im, int SIZE, bool t, double &resultNumerator, double &resultDenominatorRe, double &resultDenominatorIm)
  50. {
  51. if (im[1] == 0 && re[1] == 0)
  52. {
  53. cout << "ничего особенного\n\n";
  54. t = 0;
  55. }
  56. else
  57. {
  58. resultNumerator = re[0] * re[0] + im[0] * im[0];
  59. im[0] *= -1;
  60. resultDenominatorRe = Multiply(re, im, SIZE, t);
  61. resultDenominatorIm = Multiply(re, im, SIZE, !t);
  62. }
  63. return t;
  64. }
  65.  
  66. double Power(double *re, double *im, int SIZE, bool reOrIm, int numberOfString, int power)
  67. {
  68. double result = pow(Abs(re, im, SIZE, numberOfString), power);
  69. if (reOrIm)
  70. result*= cos(power*atan(im[numberOfString]) / re[numberOfString]);
  71. else
  72. result*= sin(power*atan(im[numberOfString]) / re[numberOfString]);
  73. return result;
  74.  
  75. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement