Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "pch.h"
- #include <cmath>
- #include <iostream>
- #include "interface.h"
- #include "complexcalculator.h"
- using std::cout;
- double Add(double *a, int size) // где a -- re или im не имеет значения
- {
- double sum = 0;
- for (int i = 0; i < size; i++)
- sum += a[i];
- return sum;
- }
- double Subtract(double *a, int size) // где a -- re или im не имеет значения
- {
- double sum = a[0];
- for (int i = 1; i < size; i++)
- sum -= a[i];
- return sum;
- }
- double Abs(double* re, double* im, int size, int numberString)
- {
- return sqrt(re[numberString]* re[numberString]+ im[numberString]* im[numberString]);
- }
- double Multiply(double *re, double *im, int size, bool reOrIm) // reOrIm - вычисление вещественной или мнимной части
- {
- double result = 0;
- if (reOrIm)
- {
- for (int i = 0; i < size - 1; i++)
- result += re[i] * re[i + 1] - im[i] * im[i + 1];
- }
- else
- {
- for (int i = 0; i < size - 1; i++)
- result += re[i] * im[i + 1] + im[i] * re[i + 1];
- }
- return result;
- }
- bool Divide(double *re, double *im, int SIZE, bool t, double &resultNumerator, double &resultDenominatorRe, double &resultDenominatorIm)
- {
- if (im[1] == 0 && re[1] == 0)
- {
- cout << "ничего особенного\n\n";
- t = 0;
- }
- else
- {
- resultNumerator = re[0] * re[0] + im[0] * im[0];
- im[0] *= -1;
- resultDenominatorRe = Multiply(re, im, SIZE, t);
- resultDenominatorIm = Multiply(re, im, SIZE, !t);
- }
- return t;
- }
- double Power(double *re, double *im, int SIZE, bool reOrIm, int numberOfString, int power)
- {
- double result = pow(Abs(re, im, SIZE, numberOfString), power);
- if (reOrIm)
- result*= cos(power*atan(im[numberOfString]) / re[numberOfString]);
- else
- result*= sin(power*atan(im[numberOfString]) / re[numberOfString]);
- return result;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement