Kamis, 14 Oktober 2010

Tugas Praktikum 2

Nama : wahyudi
Nim    : 09018121

#include <cstdlib>
#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<<"masukakn 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

Blog temen :
zeld blogoblog
coh Blog
Salham Ilham blog
Satuhu Suseta blog
Titis Ade Pamungkas blog
Agung blog
Indra blog
Helloo :)
jangan lupa gan comentnya..kasih cendol ya gan ^^ makasih gan uda mau berkunjung.. semoga tuhan YME memberkati anda :)

Teman