Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <cmath>
- using namespace std;
- struct cc_complex
- {
- int a,b;
- };
- int GCD (int A, int B)
- {
- if(!B)
- return A;
- return GCD(B, A%B);
- }
- class c_complex
- {
- public:
- void sum (cc_complex z1, cc_complex z2)
- {
- int a_sum, b_sum;
- a_sum=z1.a+z2.a;
- b_sum=z1.b+z2.b;
- cout<<a_sum<<"+"<<b_sum<<"i"<<endl;
- }
- void product (cc_complex z1, cc_complex z2)
- {
- int a_product, b_product, imaginary_product;
- a_product=z1.a*z2.a;
- b_product=(z1.b*z2.b)*(-1);
- imaginary_product=z1.a*z2.b+z2.a*z1.b;
- cout<<a_product<<"+"<<imaginary_product<<"i"<<"*"<<b_product<<endl;
- }
- void subtract (cc_complex z1, cc_complex z2)
- {
- int a_subtract, b_subtract, z_subtract;
- a_subtract=z1.a-z2.a;
- b_subtract=z1.b-z2.b;
- if (z1.b>z2.b)
- cout<<a_subtract<<"+"<<b_subtract<<"i"<<endl;
- else if (z1.b<z2.b)
- cout<<a_subtract<<b_subtract<<"i"<<endl;
- else if (z1.b==z2.b) cout<<a_subtract<<endl;
- }
- void division (cc_complex z1, cc_complex z2)
- {
- int cmmdc=GCD(z1.a+z2.a,z1.b+z2.b),a_simplified,b_simplified,z1asmp,z2asmp,z1bsmp,z2bsmp,aux;
- if (cmmdc==1)
- cout<<z1.a<<"+"<<z1.b<<"i"<<"/"<<z2.a<<"+"<<z2.b<<"i"<<endl;
- else if (cmmdc!=1 && ((z2.a+z2.b)%(z1.a+z1.b)==0) || ((z1.a+z1.b)%(z2.a+z2.b)==0))
- {
- cmmdc=GCD(z1.a,z1.b);
- z1asmp=z1.a/cmmdc;
- z1bsmp=z1.b/cmmdc;
- aux=cmmdc;
- cmmdc=GCD(z2.a,z2.b);
- if (aux>cmmdc)
- {
- z2asmp=z2.a/cmmdc;
- z2bsmp=z2.b/cmmdc;
- }
- else if (aux<cmmdc)
- {
- z2asmp=z2.a/aux;
- z2bsmp=z2.b/aux;
- }
- cout<<z1asmp<<"/"<<z2bsmp<<endl;
- }
- else if (cmmdc!=1 && ((z2.a+z2.b)%(z1.a+z1.b)!=0) || ((z1.a+z1.b)%(z2.a+z2.b)!=0))
- {
- cmmdc=GCD(z1.a,z1.b);
- z1asmp=z1.a/cmmdc;
- z1bsmp=z1.b/cmmdc;
- cmmdc=GCD(z2.a,z2.b);
- z2asmp=z2.a/cmmdc;
- z2bsmp=z2.b/cmmdc;
- cout<<z1asmp<<"+"<<z1bsmp<<"i"<<"/"<<z2asmp<<"+"<<z2bsmp<<"i"<<endl;
- }
- }
- void expr (cc_complex z1, cc_complex z2)
- {
- long first, second, third, fourth, fifth, sixth, seventh, eight;
- first=z1.a*z1.a*z2.a*z2.a;
- second=2*z1.b*z1.b*z2.b*z2.b;
- third=z1.a*z1.a*z2.a*z2.b;
- fourth=third;
- fifth=(-1)*(z2.b*z1.b*z1.b);
- sixth=z1.a*z1.a*z2.b*z2.b;
- seventh=z1.b*z1.b*z2.a*z2.a;
- eight=4*z1.a*z1.b*z2.a*z2.b;
- cout<<first+second-sixth-seventh-eight<<"+"<<2*(third+fourth-fifth)<<"i";
- }
- };
- int main ()
- {
- c_complex exprs;
- cc_complex cpx1,cpx2;
- cout<<"Primul numar:"<<endl<<"Partea reala: ";
- cin>>cpx1.a;
- cout<<"Partea imaginara: ";
- cin>>cpx1.b;
- cout<<endl;
- cout<<"Al doilea numar:"<<endl<<"Partea reala: ";
- cin>>cpx2.a;
- cout<<"Partea imaginara: ";
- cin>>cpx2.b;
- cout<<endl;
- cout<<"Suma este: ";
- exprs.sum(cpx1,cpx2);
- cout<<"Produsul este: ";
- exprs.product(cpx1,cpx2);
- cout<<"Diferenta este: ";
- exprs.subtract(cpx1,cpx2);
- cout<<"Raportul este: ";
- exprs.division(cpx1,cpx2);
- cout<<"z1*z2+|z2|+conjugat(z2)+z1^2*z2^2= ";
- exprs.expr(cpx1,cpx2);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement