RSS

Editan praktikum2 sdata

10 Okt

 

#include <cstdlib>

#include <iostream>

using namespace std;

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;

};

void Kompleks::cetak()

{

if(b>0) cout<<”Bilangan kompleks : “<<a<<”+”<<b<<”i”;

else cout<<”Bilangan kompleks :”<<a<<b<<”i”;

cout<<endl;

}

Kompleks Kompleks::operator-()

{

Kompleks x;

x.a = a;

x.b = -b;

return x;

}

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;

}

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

{ Kompleks x;

x.a = a * m.a;

x.b = b * m.b;

return x;

}

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;

}

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

{

cout<<”Masukkan bagian real :”;

in>>x.a;

cout<<”Masukkan bagian imajiner :”;

in>>x.b;

return in;

}

class Operasi{

public:

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

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

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

};

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;

}

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;

}

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<<”Menggunakan cetak() : “; x.cetak();

cout<<”Menggunakan overloading : “<<x;

cout<<”\nKonjugat : “<<-x;

y.cetak();

cout<<”\nPenjumlahan menggunakan methods : “;

t = z.jumlah(x,y);

t.cetak();

cout<<”Penjumlahan menggunakan operator : “;

t = x + y;

cout<<x<<” + “<<y<<” = “<<t;

cout<<”\nPerkalian menggunakan methods : “;

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 n;

cin >> n;

cout << n;

system(“PAUSE”);

return EXIT_SUCCESS;

}

 

 

 
Tinggalkan komentar

Ditulis oleh pada Oktober 10, 2010 in praktikum

 

Tag:

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s

 
%d blogger menyukai ini: