e

Kolorwanie:
Status:
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213
#include <iostream>
using namespace std;
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
class Zespolona{
	private:
	int a,b;
	public:
		Zespolona();
		Zespolona(int,int);
		Zespolona operator+(const Zespolona &y){
			Zespolona x(0,0);
			x.a=this->a+y.a;
			x.b=this->b+y.b;
			return x	;
		}
		Zespolona operator-(const Zespolona &y);
		Zespolona operator*(const Zespolona &y);
		Zespolona operator/(const Zespolona &y);
		void operator=(const Zespolona &y);
		void operator+=(const Zespolona &y);
		void operator-=(const Zespolona &y);
		void operator/=(const Zespolona &y);
		void operator*=(const Zespolona &y);
		bool operator==(const Zespolona &y);
		bool operator!=(const Zespolona &y);
		bool operator>(const Zespolona &y);
		bool operator<(const Zespolona &y);
	friend	Zespolona operator+(const Zespolona &y,const int &a);
	friend 	Zespolona operator+(const int &a,const Zespolona &y);
	friend	Zespolona operator-(const Zespolona &y,const int &a);
	friend 	Zespolona operator-(const int &a,const Zespolona &y);
	friend	Zespolona operator*(const Zespolona &y,const int &a);
	friend 	Zespolona operator*(const int &a,const Zespolona &y);
   	friend	Zespolona operator/(const Zespolona &y,const int &a);
	friend 	Zespolona operator/(const int &a,const Zespolona &y);


	friend ostream & operator<< (ostream &wyjscie, const Zespolona &s);	
};

 ostream & operator<< (ostream &wyjscie, const Zespolona &s) {
   return wyjscie <<s.a <<"+"<<s.b<<"i"<<endl;
}

void Zespolona::operator=(const Zespolona &y)
{
	this->a=y.a;
	this->b=y.b;
}
void Zespolona::operator+=(const Zespolona &y)
{
	this->a+=y.a;
	this->b+=y.b;
}
void Zespolona::operator-=(const Zespolona &y)
{
	this->a-=y.a;
	this->b-=y.b;
}
void Zespolona::operator*=(const Zespolona &y)
{
	this->a=(this->a*y.a)-(this->b*y.b);
	this->b=(this->b*y.a)+(this->a*y.b);
}
void Zespolona::operator/=(const Zespolona &y)
{
	if(y.a==0 && y.b==0 );
	else
	{
	
		this->a=(((this->a*y.a)+(this->b*y.b))/((y.a*y.a)+(y.b*y.b)));
		this->b=(((this->b*y.a)-(this->a*y.b))/((y.a*y.a)+(y.b*y.b)));
	}

}
Zespolona Zespolona::operator-(const Zespolona &y){
	Zespolona x(0,0);
	x.a=this->a-y.a;
	x.b=this->b-y.b;
	return x;	
}

Zespolona Zespolona::operator*(const Zespolona &y){
	Zespolona x(0,0);
	x.a=(this->a*y.a)-(this->b*y.b);
	x.b=(this->b*y.a)+(this->a*y.b);
	return x;	
}

Zespolona Zespolona::operator/(const Zespolona &y){
	Zespolona x(0,0);
	if(y.a==0 && y.b==0 );
	else
	{
	
		x.a=(((this->a*y.a)+(this->b*y.b))/((y.a*y.a)+(y.b*y.b)));
		x.b=(((this->b*y.a)-(this->a*y.b))/((y.a*y.a)+(y.b*y.b)));
	}
	return x;	
}

Zespolona::Zespolona(int a,int b)
{
	this->a=a;
	this->b=b;
}

Zespolona::Zespolona(){
	this->a=0;
	this->b=0;
}
Zespolona operator+(const int &a,const Zespolona &y)
{	
	Zespolona x(0,0);
	x.a=a+y.a;
	x.b=y.b;
	return x;
}
Zespolona operator+(const Zespolona &y,const int &a)
{	
	Zespolona x(0,0);
	x.a=a+y.a;
	x.b=y.b;
	return x;
}
Zespolona operator-(const int &a,const Zespolona &y){
	Zespolona x(0,0);
	x.a=a-y.a;
	x.b=y.b;
	return x;	
}
Zespolona operator-(const Zespolona &y,const int &a){
	Zespolona x(0,0);
	x.a=y.a-a;
	x.b=y.b;
	return x;	
}
Zespolona operator*(const Zespolona &y,const int &a){
	Zespolona x(0,0);
	x.a=y.a*a;
	x.b=y.b*a;
	return x;	
}
Zespolona operator*(const int &a,const Zespolona &y){
	Zespolona x(0,0);
	x.a=y.a*a;
	x.b=y.b*a;
	return x;	
}
Zespolona operator/(const Zespolona &y,const int &a){
	Zespolona x(0,0);
	if(a!=0)
	{
		x.a=(y.a*a)/(a*a);
		x.b=(y.b*a)/(a*a);	
	}
	
	return x;	
}
Zespolona operator/(const int &a,const Zespolona &y){
	Zespolona x(0,0);
	if(y.a==0|| y.b==0 );
	else
	{
		x.a=(a*y.a)/((y.a*y.a)+(y.b*y.b));
		x.b=(a*y.b)/((y.a*y.a)+(y.b*y.b));
	}
	return x;	
}
bool Zespolona::operator==(const Zespolona &y)
{
	if(this->a==y.a && this->b==y.b)
	{
		return true;
	}
	else
	return false;
}
bool Zespolona::operator!=(const Zespolona &y)
{
	if(this->a!=y.a || this->b!=y.b)
	{
		return true;
	}
	else
	return false;
}
bool Zespolona::operator>(const Zespolona &y)
{
	if(this->a>y.a )
		return true;
	else if(this->a==y.a && this->b>y.b)
		return true;
	else
	return false;
}
bool Zespolona::operator<(const Zespolona &y)
{
	if(this->a<y.a )
		return true;
	else if(this->a==y.a && this->b<y.b)
		return true;
	else
	return false;
}
int main(int argc, char** argv) {
	Zespolona x(1,4),z(2,3);
	if(x>z)
	cout<<x;


	return 0;
}

Copyrights 2014-2019 © Wklejaj.pl Wszelkie prawa zastrzeżone.