PROGRAM:
#include<iostream> using namespace std; //templateclass 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 void Kompleks::cetak(){ if(b>0)cout<<"bilangan kompleks:"<<<"+"<<<"i"; else cout<<"bilangan kompleks:"<<<<"i"; cout< } //template Kompleks Kompleks::operator-(){ Kompleks x; x.a=a; x.b=-b; return x; } //template Kompleks Kompleks::operator-(const Kompleks& m){ Kompleks x; x.a=a-m.a; x.b=b-m.b; return x; } //template 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 ostream& operator<<(ostream& out, const Kompleks& x){ if(x.b==0) out<<'['< <<']'; 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<<'['< <<"i"<<']'; else if(x.a==0 && x.b<-1)out<<'['< <<"i"<<']'; else if(x.b==1)out<<'['< <<"+"<<"i"<<']'; else if(x.b>0)out<<'['< <<"+"< <<"i"<<']'; else if(x.b==-1)out<<'['< <<"-i"<<']'; else out<<'['< < <<"i"<<']'; return out; } //template istream& operator>>(istream& in, Kompleks&x) { cout<<"MASUKKAN BAGIAN REAL : "; in>>x.a; cout<<"MASUKKAN BAGIAN IMAJINER : "; in>>x.b; return in; } //template class Operasi{ public : Kompleks jumlah(const Kompleks&,const Kompleks&); Kompleks kali(const Kompleks&,const Kompleks&); Kompleks kurang(const Kompleks&,const Kompleks&); }; //template 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 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 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 :"< cout<<"\nKonjugat :"<<-x< y.cetak(); cout<<"\nPenjumlahan menggunakan methods :"; t=z.jumlah(x,y); t.cetak(); cout<<"\nPenjumlahan menggunakan operator:"; t=x+y; cout< <<"+"< <<"="< cout<<"\nPerkalian menggunakan methods:"; t=z.kali(x,y); t.cetak(); cout<<"\nperkalian menggunakan operator:"; t=x*y; cout< <<"*"< <<"="< t=x-y; cout<<"\n"< <<"-"< <<"="< < cout< Kompleks n; cin>>n; cout< system("PAUSE"); return 0; }
0 comments:
Post a Comment