Rabu, 06 Juli 2011

Program konversi array 2 dimensi ke 1 dimensi C++

Program ini sebenarnya hanya mengcopy data array 2 dimensi ke satu dimensi. Pengcopyanya berdasarkan indek array, jadi kita menjalankan array 2 dimensi sambil kita copy array tesebut.
Bila kita punya array seperti ini:
a
b
c
0
d
e
f
1
0
1
2




a
b
c
d
e
f
0
1
2
3
4
5



Jadi kita melakukan pengcopy’n dengan cara pemanggilan seperti ini
Seumpama variable kita a, maka pemanggilan b[0]=a[0][0],b[1]=a[0][1] dan seterusnya. Setelah itu kita tinggal coutkan saja variable b dengan perulangan.
Dan ini source codenya secara lengkap:
#include <cstdlib>
#include <iostream>

using namespace std;
class array{
      private:
              char data[20][20],e[200];
              int a,b,c;
      public:
             void inputan();
             void proses();
             void keluar();
};

void array::inputan(){
     cout<<"masukan baris :";
     cin>>a;
     cout<<"masukan kolom : " ;
     cin>>b;
    
     for(int i=0;i<a;i++){
             for(int j=0;j<b;j++){
                     cout<<"masukan data array ke-["<<i<<"],["<<j<<"] : ";
                     cin>>data[i][j];}}
}

void array::proses(){
    int k=0;
     for(int i=0;i<a;i++){
             for(int j=0;j<b;j++){
                     e[k]=data[i][j];k=k+1;
                     }
                     }
                     }
void array::keluar(){
     cout<<"data awal yang dimasukan :"<<endl;
     for(int i=0;i<a;i++){cout<<"[";
     for(int j=0;j<b;j++){
             cout<<data[i][j];}cout<<"]"<<endl;}
            
     cout<<"data yang sudah dipindah : "<<endl<<"[";
     for(int i=0;i<(a*b);i++){
             cout<<e[i];
             }cout<<"]";cout<<endl;
             }
int main(int argc, char *argv[])
{
    array x;
    x.inputan();
    x.proses();
    x.keluar();
    system("PAUSE");
    return EXIT_SUCCESS;
}




Jika dalam program ini masih ada yang kurang paham silahkan komentar atau bertanya melalui chat box yang saya sediakan terimaksih

Tidak ada komentar:

Posting Komentar