PDA

View Full Version : سوال: اعداد مختلط



hafez1
دوشنبه 25 دی 1391, 00:38 صبح
یه برنامه هست که 4 عمل اصلی رو روی اعداد مختلط انجام می ده.
دوستان برای جمع و تفریق کمک کردند و ضربش رو هم من نوشتم ولی خروجیشبرای ضرب اشتباهه.
لطفا اشکال رو بگید


#include<iostream>
using namespace std;

class complex
{
private:
double real, image ;
public:
complex( int a = 0, int b = 0 )
{
set(a,b); //this->set(a,b);
}
void print1();
//void print2();
void print2();
void set(double a,double b);

complex add(complex b);
complex tafrigh(complex b);
complex zarb(complex b);
};



complex complex::add(complex b)
{
complex s;
s.real=this->real+b.real; //s.real=real+b.real;
s.image=this->image+b.image; //s.image=image+b.image;
return s;
}



complex complex::tafrigh(complex b)
{
complex s;
s.real=this->real-b.real; //s.real=real+b.real;
s.image=this->image-b.image; //s.image=image+b.image;
return s;
}


complex complex::zarb(complex b)
{
complex s;
s.real=(this->real*b.real)-(this->image*b.image); //s.real=real+b.real;
s.image=(this->image*b.real)+(this->real*b.image); //s.image=image+b.image;
return s;
}

void complex::set(double a,double b)
{
real=a;
image=b;
}

void complex::print1()
{
cout<<real<<"+"<<image<<"i"<<endl;
}



void complex::print2()
{
cout<<real<<"-"<<image<<"i"<<endl;
}


int main()
{
double c,v;
cin>>c>>v;
complex first(c,v);
cin>>c>>v;
complex second(c,v);
complex sum(0,0);
complex tafrigh(0,0);
complex zarb(0,0);
sum=first.add(second);
tafrigh=first.tafrigh(second);
cout<<"firxt complex :";
first.print1();
cout<<"second complex :";
second.print1();
cout<<"sum :";
sum.print1();
cout<<"tafrigh :";
tafrigh.print2();
cout<<"zarb :";
zarb.print1();
return 0;
}

mahak006
دوشنبه 25 دی 1391, 00:42 صبح
چن تا جاشو تغییر دادم . مشکل ضربت این بود که تابع ضرب رو بره ضرب دو عدد فراخوانی نکرده بودی و موقع چاپ ، همون مقداری که تو تعریف اولیه بهش دادی ، چاپ می شد .
تابع پرینت هم لازم نیست ۲ تا باشه . باید اینطور نوشته بشه . تو حالت تفریق هم مقادیر موهومی و حقیقی ، از هم کم می شن و جوابشون چاپ می شه . نباید طریقه ی چاپشون فرق کنه .




#include<iostream>
using namespace std;

class complex
{
private:
double real, image ;
public:
complex( int a = 0, int b = 0 )
{
set(a,b); //this->set(a,b);
}
void print();
void set(double a,double b);

complex add(complex b);
complex tafrigh(complex b);
complex zarb(complex b);
};



complex complex::add(complex b)
{
complex s;
s.real=this->real+b.real; //s.real=real+b.real;
s.image=this->image+b.image; //s.image=image+b.image;
return s;
}



complex complex::tafrigh(complex b)
{
complex s;
s.real=this->real-b.real; //s.real=real-b.real;
s.image=this->image-b.image; //s.image=image-b.image;
return s;
}


complex complex::zarb(complex b)
{
complex s;
s.real=(this->real*b.real)-(this->image*b.image); //s.real=(real*b.real)-(image*b.image);
s.image=(this->image*b.real)+(this->real*b.image); //s.image=(image*b.real)+(real*b.image);
return s;
}

void complex::set(double a,double b)
{
real=a;
image=b;
}

void complex::print1()
{
cout<<"("<<real<<")+("<<image<<")i"<<endl;
}

int main()
{
double c,v;
cin>>c>>v;
complex first(c,v);
cin>>c>>v;
complex second(c,v);
complex sum(0,0);
complex tafrigh(0,0);
complex zarb(0,0);
sum=first.add(second);
tafrigh=first.tafrigh(second);
zarb=first.zarb(second);
cout<<"first complex :";
first.print();
cout<<"second complex :";
second.print();
cout<<"sum :";
sum.print();
cout<<"tafrigh :";
tafrigh.print()
cout<<"zarb :";
zarb.print();
return 0;
}