Selasa, 09 Oktober 2012

Perbedaan dan kesamaan array statis dan dinamis



Khususnya pada bagian data (private/protected data member)

Detail implementasi sebagai berikut;




PROGRAM COPASNYA!!!


#include <cstdlib>
#include <iostream>
#define maks 5

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();
      private:
              char A[maks];
      };
    
      //konstruktor
      Array1D::Array1D(){
                        for (int i=0; i<maks; i++)
                        A[i] = '0';
                        }
                      
      void Array1D::cetak(){
          for (int i=0; i<maks; i++)
          cout<<A[i]<<" ";
           }
    
      ostream& operator<<(ostream& out, const Array1D& x){
               for (int i=0; i<maks; i++)
               cout<<x.A[i]<<" ";
               cout<<endl;
               return out;
               }    
              
      istream& operator>>(istream& in, Array1D& x){
               int posisi;
               cout<<"Mengisi array pada posisi ke :";
               in>>posisi;
               if(posisi>0&&posisi<=maks){
                                          cout<<"Masukkan elemen array-nya :";
                                          in>>x.A[posisi-1];
                                          }
                                          else
                                          cout<<"Anda memasukkan posisi di luar range...";
                                          return in;
               }
              
               void Array1D::geser_kanan(){
                    int n=maks;
                    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=maks;
                    int temp = A[0];
                    for(int i=0; i<n; i++)
                    A[i]=A[i+1];
                    A[n-1]=temp;
                    }
              
int main(int argc, char *argv[])
{  
    Array1D x;
    cout<<"Array masih kosong :"<<x;
    cin>>x;
    cout<<"Isi Array saat ini: "<<x;
    x.geser_kiri();
    cout<<"Isi Array setelah digeser ke kiri : "<<x;
    x.geser_kanan();
    cout<<"Isi Array setelah digeser ke kanan : "<<x;
  
  
    system("PAUSE");
    return EXIT_SUCCESS;
}

0 komentar:

Posting Komentar