Skip to content

POSTEST PRAKTIKUM II

October 6, 2010

ini adalah program postest praktikum II hari selasa 12.00-13.30

Nama : Hanif Fikrianto

NIM   : 09018112

POST TEST PRAKTIKUM 2

#include <iostream.h>

#include <conio.h>

template <class T>

class Kompleks{

friend class Operasi<T>;

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

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

public :

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

void cetak();

Kompleks operator-();

Kompleks operator-(const Kompleks<T>&);

Kompleks operator+(const Kompleks<T>&);

private :

T a;

T b;

};

template <class T>

void Kompleks<T>::cetak()

{

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

else cout<<”bilangan kompleks: “<<a<<b<<”i”;

cout<<endl;

}

template <class T>

Kompleks<T> Kompleks<T>::operator-()

{ Kompleks x;

x.a=a;

x.b=-b;

return x;

}

template <class T>

Kompleks<T> Kompleks<T>::operator-(const Kompleks<T>& m)

{Kompleks x;

x.a=a-m.a;

x.b=b-m.b;

return x;

}

template <class T>

Kompleks<T> Kompleks<T>::operator+(const Kompleks<T>& m)

{ Kompleks x;

x.a=a+m.b;

x.a=b+m.b;

return x;

}

template<class T>

ostream& operator<<(ostream& out, const Kompleks<T>& 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<<“i”<<“]“;

return out;

}

template <class T>

istream& operator>>(istream& in, Kompleks<T>& x){

cout<<”masukan bilangan real : “;

in>>x.a;

cout<<”masukan bagian imajiner :”;

in>>x.b;

return in;

}

template <class T>

class Operasi{

public :

Kompleks<T>jumlah(const Kompleks<T>&, const Kompleks<T>&);

Kompleks<T>kali(const Kompleks<T>&, const Kompleks<T>&);

Kompleks<T>kurang(const Kompleks<T>&, const Kompleks<T>&);

};

template <class T>

Kompleks<T> Operasi<T>::jumlah(const Kompleks<T>& m, const Kompleks<T>& n)

{ Kompleks<T>temp;

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

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

return temp;

}

template <class T>

Kompleks<T> Operasi<T>::kurang(const Kompleks<T>& m, const Kompleks<T>& n)

{ Kompleks<T>temp;

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

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

return temp;

}

template <class T>

Kompleks<T> Operasi<T>::kali(const Kompleks<T>& m, const Kompleks<T>& n)

{ Kompleks<T>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<int> x(2,3),y(4,-4),t;

Operasi<int>z;

cout<<”menggunakan cetak() : “; x.cetak();

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

cout<<”konjugat”<<-x;

y.cetak();

cout<<”\n penjumlahan menggunakan methods: “;

t=z.jumlah(x,y);

t.cetak();

cout<<”penjumlahan menggunakan operator : “;

t=x+y;

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

cout<<”\n Perkalian menggunakan methods : “;

t=z.kali(x,y);

t.cetak();

cout<<”\n Perkalian menggunakan operator : “;

//t=x*y;

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

t=x-y;

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

Kompleks<int>n;

cin>>n;

cout<<n;

return 0;

}

silahkan mencobanya  semoga berhasil bila salah yang punya blog’s mohon maaf…………….

From → struktur data

Leave a Comment

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: