Senin, 04 Oktober 2010

Praktikum ke 2



#include #include
using namespace std;
template
class Kompleks {
friend class Operasi ;
friend ostream& operator <<(ostream&, const Kompleks &);
friend istream& operator >>(istream&, Kompleks &);
public:
Kompleks (T s=0, T t=0) : a(s), b(t){}
void cetak();
Kompleks operator-();
Kompleks operator-(const Kompleks&);
Kompleks operator+(const Kompleks&);

private:
T a;
T b;
};
templete
void Kompleks ::cetak()
{
if (b>0) cout <<" Bilangan komlpleks :"<< a << "+" << b << "i";
else cout <<"Bilangan kompleks :" << a << b << "i";
cout << endl;
}
templete
Kompleks Kompleks ::operator-()
{
Kompleks x;
x.a = a;
x.b = -b;
return x;
{
templete
Kompleks Kompleks ::operator-(const Kompleks&m)
{
Kompleks x;
x.a = a – m.a;
x.b = b – m.b;
return x;
}
templete
Kompleks Kompleks ::operator+(const Kompleks&m)
{
Kompleks x;
x.a = a + m.a;
x.b = b + m.b;
return x;
}
template
void kompleks::cetak()
{

if(b>0)cout<<"bilangan kompleks :"<<a<<"+"<<b<<"i";
else cout << "bilangan kompleks :"<<a<<b<<"i";
cout<<endl;
}
template
komplekskompleks::operator-()
{kompleks x;
x.a=a;
x.b=-b;
return x;
}
template
komplekskompleks::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;
}
template
ostream& operator<<(ostream&out,const kompleks&x)
{
if(x.b==0)out<<'['<<x.a<<']';
elseif(x.a==0 && x.b==1) out <<'['<<"i"<<']';
elseif(x.a==0 && x.b==-1) out '['<<"-i"<1) out <<'['<<x.b<<"i"<<']';
elseif(x.a==0 && x.b <-1) out <<'['<<x.b<<"i"<0)out<<'['<<x.a<<"+"<<x.b<<"i"<<']';
elseif(x.b==-1)out<<'[',,x.a,,"-i",,']';
elseout<<'['<<x.a<<x.b<<"i"<<']';
returnt out;
}
template
istream&operator>>(istream&in,kompleks&x)
{
cout<>x.a;
cout<>x.b;
return in;
}
template
class operasi{
public:
kompleksjumlah(const kompleks&,const kompleks&);
komplekskali(const kompleks&,const kompleks&);
komplekskurang(const kompleks&,const kompleks&);
};
template
kompleksoperasi::jumlah(const kompleks& m,const kompleks& n)
{ komplekstemp;
temp.a = m.a + n.a;
temp.b = m.b + n.b;
return temp;
}
template
kompleksoperasi::kurang(const kompleks& m,const kompleks& n)
{ komplekstemp;
temp.a = m.a – n.a;
temp.b = m.b – n.b;
returnt temp;
}
template
kompleksoperasi::kali(const kompleks& m,const kompleks& n)
{ komplekstemp;
temp.a = (m.a*n.a) – (m.b*n.b);
temp.b = (m.a*n.b) – (m.b*n.a);
return temp;
}
int main(){
kompleksx(2,3),y(4,-4),t;
operasi z;
cout<<"menggunakan cetak():";x.cetak();
cout<<"menggunakan overloading : "<<x;
cout<<"konjugat:<<-x;
y.cetak();
cout<<"\npenjumlahan menggunakan method :";
t=z.jumlah(x,y);
t.cetak();
cout<<"penjumlahan menggunakan operator:";
t=x+y;
cout<<x<<"+"<<y<<"="<<t;
cout<<"\perkalian menggunakan method:";
t=z.kali(x,y);
t.cetak();
cout<<"perkalian menggunakan operator:";
t=x*y;
cout<<x<<"*"<<y<<"="<<t;
t=x-y;
cout<<"\n"<<x<<"-"<<y<<"="<<t<<endl;
kompleks<int<>n;
cout<<n;
system("PAUSE");
return EXIT_SUCCESS;
}



Tidak ada komentar:

Posting Komentar