prak 5

#include <iostream.h>
template <class T>

class Array1D{
 friend ostream& operator<<(ostream&,const Array1D&);
public:
 Array1D(int size=0);
 Array1D(const Array1D& v);
 Array1D(){delete[]element;}
 T& operator[](int i)const;
 int Size(){return size;}
 Array1D<T>& operator =(const Array1D<T>& v);
 Array1D<T> operator+()const;
 Array1D<T> operator+(const Array1D<T>& v)const;
 Array1D operator-()const;
 Array1D operator-(const Array1D& v)const;
 Array1D<T> operator*(const Array1D<T>& v)const;
 Array1D<T>&operator+=(const T& x);
 Array1D<T>& ReSize(int sz);
 Array1D<T>& geser_kanan();
 Array1D<T>& geser_kiri();
private:
 int size;
 T*element;
};
template <class T>
Array1D::Array1D(int sz)
{

 size =sz;
 element=new T[sz];
}
template <class T>
Array1D<T>::Array1D(const Array1D<T>& v)
{
 size = v.size;
 element=new T[size];
 for (int i=0;i
 element[i]=v.element[i];
}
template <class T>
T& Array1D::operator[](int i)const
{

 return element[i];
}
template <class T>
Array1D<T>&Array1D<T>::operator =(const Array1D<T>& v)
{
 if (this !=&v){
 size=v.size;
 delete[]element;
 element=new T[size];
 for(int i=0;i
 element[i]=v.element[i];
 }
 return *this;
}
template <class T>
Array1D<T>Array1D<T>::operator+(const Array1D<T>& v)const
{
 Array1D<T>w(size);
 for(int i=0; i
 w.element[i]=element[i]- v.element[i];
 return w;
}
template <class T>
Array1DArray1D::operator-(const Array1D& v)const
{
 Array1D<T>w(size);
 for(int i=0; i
 w.element[i]=element[i]+ v.element[i];
 return w;
}
template <class T>
Array1DArray1D::operator-()const
{
 Array1D<T>w(size);
 for(int i=0; i
 w.element[i]=-element[i];
 return w;
}
template <class T>
Array1D<T>Array1D<T>::operator*(const Array1D<T>& v)const
{
 Array1D<T>w(size);
 for(int i=0; i
 w.element[i]=element[i]* v.element[i];
 return w;
}
template <class T>
Array1D<T>&Array1D<T>::operator+=(const T& x)
{
 for(int i=0; i<size;i++)
 element[i]+=x;
 return *this;
}
template <class T>
ostream& operator<<(ostream& out,const Array1D& x)
{
 for(int i=0; i<x.size;i++)
 out<<x.element[i]<<" ";
 return out;
}
template <class T>
Array1D<T>&Array1D<T>::ReSize(int sz)
{
 delete[]element;
 size=sz;
 element=new T[size];
 return *this;
}
template <class T>
Array1D<T>&Array1D<T>::geser_kanan()
{
 int n = size;
 int temp = element[n-1];
 for (int i=n-1; i>=0; i--)
 element[i+1]=element[i];
 element[0]=temp;
}
template <class T>
Array1D<T>&Array1D<T>::geser_kiri()
{
 int n=size;
 int temp = element[0];
 for(int i=0; i<n; i++)
 element[i]=element[i+1];
 element[n-1]=temp;

}

int main()
{
 int X(10),Y,Z;
 for (int i=0; i<10; i++)
 X=i;
 cout<<" X = "<< X <<endl;
 cout<<" X is "<< X <<endl;
 Y=X;
 cout<<" Y is "<< Y <<endl;
 Y += 2;
 cout << " X incremented by 2 is " <<
 Z=(Y+X)*Y;
 cout<<"(Y+X)*y is " << Z <<endl;
 cout<< "-(Y+X)*Y is " << -Z <
 cout<<"setelah digeser kekanan :"<<(Y-X)*Y<
 cout<<"setelah digeser kekiri  :"<<(Y+X)<

 system("PAUSE");
}

 

This entry was posted in praktikum sdata. Bookmark the permalink.

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