PRAKTIKUM II

#include <iostream>

using namespace std;

//template<class T>

class Kompleks{

friend class Operasi;

friend ostream& operator<<(ostream&, const Kompleks&);

friend istream& operator>>(istream&, Kompleks&);

public:

Kompleks(int s=0, int t=0):a(s),b(t){}

void cetak();

Kompleks operator-();

Kompleks operator-(const Kompleks&);

Kompleks operator+(const Kompleks&);

Kompleks operator*(const Kompleks&);

private:

int a;

int b;

};

//template<class T>

void Kompleks::cetak(){

if(b>0)cout<<"bilangan kompleks:"<<a<<"+"<<b<<"i";

else cout<<"bilangan kompleks:"<<a<<b<<"i";

cout<<endl;

}

//     template<class T>

Kompleks Kompleks::operator-(){

Kompleks x;

x.a=a;

x.b=-b;

return x;

}

//  template<classT>

Kompleks Kompleks::operator-(const Kompleks& m){

Kompleks x;

x.a=a-m.a;

x.b=b-m.b;

return x;

}

//     template<class T>

Kompleks Kompleks::operator+(const Kompleks& m){

Kompleks x;

x.a=a+m.a;

x.b=b+m.b;

return x;

}

Kompleks Kompleks::operator*(const Kompleks&m)

{

Kompleks x;

x.a=a*m.a;

x.b=b*m.b;

return x;

}

//     template<class T>

ostream& operator<<(ostream& out, const Kompleks& x){

if(x.b==0) out<<'['<<x.a<<']';

else if(x.a==0 && x.b==1)out<<'['<<"i"<<']';

else if(x.a==0 && x.b==-1)out<<'['<<"-i"<<']';

else if(x.a==0 && x.b>1)out<<'['<<x.b<<"i"<<']';

else if(x.a==0 && x.b<-1)out<<'['<<x.b<<"i"<<']';

else if(x.b==1)out<<'['<<x.a<<"+"<<"i"<<']';

else if(x.b>0)out<<'['<<x.a<<"+"<<x.b<<"i"<<']';

else if(x.b==-1)out<<'['<<x.a<<"-i"<<']';

else out<<'['<<x.a<<x.b<<"i"<<']';

return out;

}

//template <class T>

istream& operator>>(istream& in, Kompleks&x)

{

cout<<"MASUKKAN BAGIAN REAL : ";

in>>x.a;

cout<<"MASUKKAN BAGIAN IMAJINER : ";

in>>x.b;

return in;

}

//template <class T>

class Operasi{

public :

Kompleks jumlah(const Kompleks&,const Kompleks&);

Kompleks kali(const Kompleks&,const Kompleks&);

Kompleks kurang(const Kompleks&,const Kompleks&);

};

//template <class T>

Kompleks Operasi::jumlah(const Kompleks&m, const Kompleks&n)

{

Kompleks temp;

temp.a=m.a+n.a;

temp.b=m.b+n.b;

return temp;

}

//template <class T>

Kompleks Operasi::kurang(const Kompleks&m, const Kompleks&n)

{

Kompleks temp;

temp.a=m.a-n.a;

temp.b=m.b-n.b;

return temp;

}

//template <class T>

Kompleks Operasi::kali(const Kompleks&m, const Kompleks&n)

{

Kompleks temp;

temp.a=(m.a*n.a)-(m.b*n.b);

temp.b=(m.a*n.b)-(m.b*n.a);

return temp;

}

int main (){

Kompleks x(2,3),y(4,-4),t;

Operasi z;

cout<<"\nMenggunakan cetak():\n";

x.cetak();

cout<<"\nMenggunakan overloading :"<<x;

cout<<"\nKonjugat :"<<-x<<endl;

y.cetak();

cout<<"\nPenjumlahan menggunakan methods :";

t=z.jumlah(x,y);

t.cetak();

cout<<"\nPenjumlahan menggunakan operator:";

t=x+y;

cout<<x<<"+"<<y<<"="<<t;

cout<<"\nPerkalian menggunakan methods:";

t=z.kali(x,y);

t.cetak();

cout<<"\nperkalian menggunakan operator:";

t=x*y;

cout<<x<<"*"<<y<<"="<<t;

t=x-y;

cout<<"\n"<<x<<"-"<<y<<"="<<t<<endl;

cout<<endl;

Kompleks n;

cin>>n;

cout<<n;

system("PAUSE");

return 0;

}

0 komentar:

Posting Komentar

 
Powered By Blogger
Powered By Blogger

Easy Blog Tricks

Powered By Blogger
© Grunge Theme Copyright by Rhossy Kawaii (si chubby) | Template by Blogger Templates | Blog Trick at Blog-HowToTricks