Nama : Desta Arianti
NIM : 09018291
#include <iostream>
#include <cstdlib>
#define maks 7
using namespace std;
class Queue{
friend ostream& operator << (ostream&, const Queue&);
public :
Queue();
int penuh(int);
int kosong(int);
void cetak();
void enqueue(char);
char dequeue();
private :
char A[maks];
int banyak;
};
ostream& operator << (ostream& out, const Queue& s)
{
cout <<"\nIsi Queue:";
for (int i=0; i<s.banyak; i++)
out << s.A[i] << " ";
}
Queue::Queue(){
banyak = 0;
for (int i=0; i<maks; i++)
A[i]='0';
}
int Queue::penuh(int s)
{return s==maks?1:0;}
int Queue::kosong(int s)
{return s==0?1:0;}
void Queue::cetak()
{cout <<"\nIsi Queue:";
for (int i=0; i<banyak; i++)
cout <<A[i]<<" ";
}
void Queue::enqueue(char x)
{
cout <<"\nElemen:"<<x<<"Masukkan Antrian";
if (penuh(banyak)) cout <<"queue penuh";
else if(A[0]=='0'){
A[0]=x;
banyak++;
}
else{
for (int i=banyak; i>=0; i--)
A[i+1]=A[i];
A[0]=x;
banyak++;
}
}
char Queue::dequeue()
{
char temp=A[--banyak];
cout <<"\nDequeue elemen-->" <<temp;
A[banyak]='0';
return temp;
}
int main()
{
Queue q;
for (char c='a'; c<'f'; c++)
{
q.enqueue(c);
cout <<q;
}
char p=q.dequeue();
q.cetak();
cout <<"\n\nCetak pakai overloading:" <<q;
cout<<"\n";
system("PAUSE");
return EXIT_SUCCESS;
}
Minggu, 31 Oktober 2010
Rabu, 27 Oktober 2010
praktikum Sdata ke-5, Rabu 09.00
#include <iostream.h>
template <class T>
class Array1D{
friend ostream& operator<<(ostream&,const Array1D<T>&);
public:
Array1D(int size=0);
Array1D(const Array1D<T>& 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<T> operator-()const;
Array1D<T> operator-(const Array1D<T>& 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<T>::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<size;i++)
element[i]=v.element[i];
}
template <class T>
T& Array1D<T>::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<size;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<size;i++)
w.element[i]=element[i]- v.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<size;i++)
w.element[i]=element[i]+ v.element[i];
return w;
}
template <class T>
Array1D<T>Array1D<T>::operator-()const
{
Array1D<T>w(size);
for(int i=0; i<size;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<size;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<T>& 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 " <<X<<endl;
Z=(Y+X)*Y;
cout<<"(Y+X)*y is " << Z <<endl;
cout<< "-(Y+X)*Y is " << -Z <<endl;
cout<<"setelah digeser kekanan :"<<(Y-X)*Y<<endl;
cout<<"setelah digeser kekiri :"<<(Y+X)<<endl;
system("PAUSE");
}
template <class T>
class Array1D{
friend ostream& operator<<(ostream&,const Array1D<T>&);
public:
Array1D(int size=0);
Array1D(const Array1D<T>& 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<T> operator-()const;
Array1D<T> operator-(const Array1D<T>& 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<T>::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<size;i++)
element[i]=v.element[i];
}
template <class T>
T& Array1D<T>::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<size;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<size;i++)
w.element[i]=element[i]- v.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<size;i++)
w.element[i]=element[i]+ v.element[i];
return w;
}
template <class T>
Array1D<T>Array1D<T>::operator-()const
{
Array1D<T>w(size);
for(int i=0; i<size;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<size;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<T>& 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 " <<X<<endl;
Z=(Y+X)*Y;
cout<<"(Y+X)*y is " << Z <<endl;
cout<< "-(Y+X)*Y is " << -Z <<endl;
cout<<"setelah digeser kekanan :"<<(Y-X)*Y<<endl;
cout<<"setelah digeser kekiri :"<<(Y+X)<<endl;
system("PAUSE");
}
Selasa, 19 Oktober 2010
postest ke 4
#include <cstdlib>
#include <iostream>
#define maks5
using namespace std;
class Array1D{
friend ostream& operator<<(ostream&, const Array1D&);
friend istream& operator>>(istream&, Array1D&);
public:
Array1D();
void cetak();
void geser_kiri();
void geser_kanan();
void hapus_elemen();
private:
char A[5];
};
Array1D::Array1D(){
for(int i=0;i<5;i++)
A[i]='O';
}
void Array1D::cetak(){
for(int i=0;i<5;i++)
cout<<A[i]<<" ";
}
ostream& operator<<(ostream& out, const Array1D& x){
for(int i=0;i<5;i++)
out<<x.A[i]<<" ";
out<<endl;
return out;
}
istream& operator>>(istream& in, Array1D& x){
for(int i=0;i<5;i++){
cout<<"nilai array ke-"<<i+1<<" : ";
in>>x.A[i];
}
return in;
}
void Array1D::geser_kanan(){
int n=5;
int temp=A[n-1];
for(int i=n-1;i>=0;i--)
A[i+1]=A[i];
A[0]=temp;
}
void Array1D::geser_kiri(){
int n=5;
int temp=A[0];
for(int i=0;i<n;i++)
A[i]=A[i+1];
A[5-1]=temp;
}
void Array1D::hapus_elemen(){
int posisi;
cout<<"Pilih indeks berapa yang akan di hapus : ";
cin>>posisi;
if(posisi>0 && posisi<=5)
A[posisi-1]='0';
else cout<<"indeks hanya terdiri dari 1 - 5\n";
}
int main()
{
Array1D x;
cout<<"Array masih kosong : "<<x;
cin>>x;
cout<<"Isi Array saat ini : "<<x;
x.geser_kiri();
cout<<"Isi Array setelah di geser kiri : "<<x;
x.geser_kanan();
cout<<"Isi Array setelah di geser kanan : "<<x;
cout<<"Urutan elemen pada indeksnya saat ini : "<<x;
x.hapus_elemen();
cout<<"Setelah dihapus menjadi : "<<x;
system("PAUSE");
return 0;
}
#include <iostream>
#define maks5
using namespace std;
class Array1D{
friend ostream& operator<<(ostream&, const Array1D&);
friend istream& operator>>(istream&, Array1D&);
public:
Array1D();
void cetak();
void geser_kiri();
void geser_kanan();
void hapus_elemen();
private:
char A[5];
};
Array1D::Array1D(){
for(int i=0;i<5;i++)
A[i]='O';
}
void Array1D::cetak(){
for(int i=0;i<5;i++)
cout<<A[i]<<" ";
}
ostream& operator<<(ostream& out, const Array1D& x){
for(int i=0;i<5;i++)
out<<x.A[i]<<" ";
out<<endl;
return out;
}
istream& operator>>(istream& in, Array1D& x){
for(int i=0;i<5;i++){
cout<<"nilai array ke-"<<i+1<<" : ";
in>>x.A[i];
}
return in;
}
void Array1D::geser_kanan(){
int n=5;
int temp=A[n-1];
for(int i=n-1;i>=0;i--)
A[i+1]=A[i];
A[0]=temp;
}
void Array1D::geser_kiri(){
int n=5;
int temp=A[0];
for(int i=0;i<n;i++)
A[i]=A[i+1];
A[5-1]=temp;
}
void Array1D::hapus_elemen(){
int posisi;
cout<<"Pilih indeks berapa yang akan di hapus : ";
cin>>posisi;
if(posisi>0 && posisi<=5)
A[posisi-1]='0';
else cout<<"indeks hanya terdiri dari 1 - 5\n";
}
int main()
{
Array1D x;
cout<<"Array masih kosong : "<<x;
cin>>x;
cout<<"Isi Array saat ini : "<<x;
x.geser_kiri();
cout<<"Isi Array setelah di geser kiri : "<<x;
x.geser_kanan();
cout<<"Isi Array setelah di geser kanan : "<<x;
cout<<"Urutan elemen pada indeksnya saat ini : "<<x;
x.hapus_elemen();
cout<<"Setelah dihapus menjadi : "<<x;
system("PAUSE");
return 0;
}
Langganan:
Postingan (Atom)