Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "stdafx.h"
- #include <iostream>
- #include <string>
- #include <stdio.h>
- #include <stdlib.h>
- #include <ctype.h>
- #include <sstream>
- using namespace std;
- #pragma region operations
- void add(int &firstValueRe, int &secondValueRe, int firstValueIm, int secondValueIm)
- {
- int sumRe = 0;
- int sumIm = 0;
- char plusOrMinus= '+';
- char charI = 'i';
- if (firstValueIm == 0)
- {
- firstValueIm = 1;
- }
- if (secondValueIm == 0)
- {
- secondValueIm = 1;
- }
- sumRe = firstValueRe + secondValueRe;
- sumIm = firstValueIm + secondValueIm;
- if (sumIm < 0)
- {
- char plusOrMinus = '-';
- sumIm *= -1;
- char charI = 'i';
- cout << "Answer: " << sumRe << plusOrMinus << sumIm << charI << endl;
- }
- else if (sumIm > 0)
- {
- char plusOrMinus = '+';
- char charI = 'i';
- cout << "Answer: " << sumRe << plusOrMinus << sumIm << charI << endl;
- }
- else if (sumIm == 1)
- {
- cout << "Answer: " << sumRe << plusOrMinus << charI << endl;
- }
- else if (sumIm == 0 && sumRe != 0)
- {
- cout << "Answer: " << sumRe << endl;
- }
- else if (sumRe == 0 && sumIm != 0)
- {
- cout << "Answer: " << sumIm << charI << endl;
- }
- else if (sumRe == 0 && sumIm == 0)
- {
- cout << "Answer: 0" << endl;
- }
- }
- void sub(int &firstValueRe, int &secondValueRe, int &firstValueIm, int &secondValueIm)
- {
- int difRe;
- int difIm;
- char plusOrMinus = '+';
- char charI= 'i';
- difRe = firstValueRe - secondValueRe;
- difIm = firstValueIm - secondValueIm;
- if (difIm < 0)
- {
- char plusOrMinus = '-';
- difIm *= -1;
- char charI = 'i';
- }
- else if (difIm > 0)
- {
- char plusOrMinus = '+';
- char charI = 'i';
- }
- else if (difIm == 1)
- {
- cout << "Answer: " << difRe << plusOrMinus << charI << endl;
- }
- else if (difIm == -1)
- {
- difIm *= -1;
- cout << "Answer: " << difRe << plusOrMinus << charI << endl;
- }
- else if (difIm == 0 && difRe != 0)
- {
- cout << "Answer: " << difRe << endl;
- }
- else if (difRe == 0 && difIm != 0)
- {
- cout << "Answer: " << difIm << charI << endl;
- }
- else if (difRe == 0 && difIm == 0)
- {
- cout << "Answer: 0" << endl;
- }
- cout << "Answer: " << difRe << plusOrMinus << difIm << charI << endl;
- }
- void mul(int &firstValueRe, int &secondValueRe, int &firstValueIm, int &secondValueIm)
- {
- int proRe;
- int proIm;
- char plusOrMinus = '+';
- char charI = 'i';
- proRe = (firstValueRe*secondValueRe) - (firstValueIm*secondValueIm);
- proIm = (firstValueRe*secondValueIm) + (firstValueIm*secondValueRe);
- if (proIm < 0)
- {
- char plusOrMinus = '-';
- proIm *= -1;
- char charI = 'i';
- }
- else if (proIm > 0)
- {
- char plusOrMinus = '+';
- char charI = 'i';
- }
- else if (proIm == 1)
- {
- cout << "Answer: " << proRe << plusOrMinus << charI << endl;
- }
- else if (proIm == 0 && proRe != 0)
- {
- cout << "Answer: " << proRe << endl;
- }
- else if (proRe == 0 && proIm != 0)
- {
- cout << "Answer: " << proIm << charI << endl;
- }
- else if (proRe == 0 && proIm == 0)
- {
- cout << "Answer: 0" << endl;
- }
- cout << "Answer: " << proRe << plusOrMinus << proIm << charI << endl;
- }
- void div(int &firstValueRe, int &secondValueRe, int &firstValueIm, int &secondValueIm)
- {
- double quoRe;
- double quoIm;
- char plusOrMinus = '+';
- char charI= 'i';
- quoRe = ((firstValueRe*secondValueRe) + (firstValueIm*secondValueIm)) / (pow(secondValueRe, 2) + pow(secondValueIm, 2));
- quoIm = ((firstValueIm*secondValueRe) - (firstValueRe*secondValueIm)) / (pow(secondValueRe, 2) + pow(secondValueIm, 2));
- if (quoIm < 0)
- {
- char plusOrMinus = '-';
- quoIm *= -1;
- char charI = 'i';
- }
- else if (quoIm > 0)
- {
- char plusOrMinus = '+';
- char charI = 'i';
- }
- else if (quoIm == 1)
- {
- cout << "Answer: " << quoRe << plusOrMinus << charI << endl;
- }
- else if (quoIm == 0 && quoRe != 0)
- {
- cout << "Answer: " << quoRe << endl;
- }
- else if (quoRe == 0 && quoIm != 0)
- {
- cout << "Answer: " << quoIm << charI << endl;
- }
- else if (quoRe == 0 && quoIm == 0)
- {
- cout << "Answer: 0" << endl;
- }
- cout << "Answer: " << quoRe << plusOrMinus << quoIm << charI << endl;
- }
- #pragma endregion
- int main()
- {
- bool tr;
- tr = true;
- while (tr == true)
- {
- string firstValue;
- int firstValueRe;
- string firstValueImInput;
- int firstValueIm = 0;
- string secondValue;
- int secondValueRe;
- string secondValueImInput;
- int secondValueIm = 0;
- char inputOperation;
- double finalValue;
- stringstream ss;
- stringstream sn;
- cout << "Please choose one of the following operations:" << endl;
- cout << "======[Operations]======" << endl;
- cout << "=|+|=============|plus|=" << endl;
- cout << "=|-|============|minus|=" << endl;
- cout << "=|*|=========|multiply|=" << endl;
- cout << "=|/|===========|divide|=" << endl;
- cout << "======[Operations]======" << endl;
- cout << endl;
- cout << "... or press 'x' to exit. ";
- cin >> inputOperation;
- if (inputOperation == 'x')
- {
- tr = false;
- }
- else
- {
- cout << "Enter first complex value (a+bi): ";
- cin >> firstValueRe;
- cin >> firstValueImInput;
- ss << firstValueImInput;
- ss >> firstValueIm;
- cout << "Enter second value's real part (c+di): ";
- cin >> secondValueRe;
- cin >> secondValueImInput;
- sn << secondValueImInput;
- sn >> secondValueIm;
- if (inputOperation == '+')
- {
- add(firstValueRe, secondValueRe, firstValueIm, secondValueIm);
- cout << endl;
- }
- else if (inputOperation == '-')
- {
- sub(firstValueRe, secondValueRe, firstValueIm, secondValueIm);
- cout << endl;
- }
- else if (inputOperation == '*')
- {
- mul(firstValueRe, secondValueRe, firstValueIm, secondValueIm);
- cout << endl;
- }
- else if (inputOperation == '/')
- {
- (double)firstValueIm;
- (double)secondValueIm;
- if (secondValueRe == 0 && secondValueIm == 0)
- {
- cout << "{begin: Error Message} \\ This input equation is not registered == Please enter other input equation for successful calculation \\ {end: Error Message}" << endl;
- }
- else
- {
- div(firstValueRe, secondValueRe, firstValueIm, secondValueIm);
- cout << endl;
- }
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement