twitter

Konversi kali ini adalah konversi kebalikan dari konversi sebelumnya yaitu dari array 2 dimensi ke 1 dimensi. Tata caranya pun sebenarnya sama saja hanya saja di balik dan ada pengurangan variabel. Langsung saja ke fungsinya sebaggai berikut :


           k=0;
           for(int i=0; i<n; i++){
                   for(int j=0; j<m; j++){
                           y[k]=x[i][j];
                           k=k+1;
                           }
                           cout<<endl;
                           }
                           }


Perbedaanya adalah di pemberian nilai yaitu yang di bold diatas. Pemberian nilainya di balik saja.

Berikut source code selengkapnya :


#include <cstdlib>
#include <iostream>

using namespace std;
class convert{
      friend istream& operator>>(istream&, convert&);
      friend ostream& operator<<(ostream&, convert&);
             public:
                    convert();
                    void pindah();
             private:
                     int x[100][100],y[100];
                     int k,m,n;
                     };
      convert::convert(){
                         cout<<"\tProgram Memindah Array 1 Dimensi Ke 2 Dimensi"<<endl;
                         }
      istream& operator>>(istream& in, convert& a){
               cout<<"Masukkan Baris Array 2 Dimensi :"; in>>a.n;
               cout<<"Masukkan Kolom Array 2 Dimensi :"; in>>a.m;
               for(int i=0; i<a.n; i++){
                   for(int j=0; j<a.m; j++){
                           cout<<"Masukkan data ["<<i+1<<"]["<<j+1<<"]:";
                           in>>a.x[i][j];
                           }}
               return in;}
      ostream& operator<<(ostream& out, convert& b){
               out<<"Data Array 2 Dimensi :"<<endl;
               for(int i=0; i<b.n; i++){
                   for(int j=0; j<b.m; j++){
                           out<<b.x[i][j]<<"\t";
                           }
                           out<<endl;
                           }
               out<<endl;
               out<<"Data Array Setelah di Pindah :"<<endl;
               for (int i=0; i<(b.n*b.m); i++){
                   out<<b.y[i]<<" ";
                   }
                   out<<endl;
                           return out;}
      void convert::pindah(){
           k=0;
           for(int i=0; i<n; i++){
                   for(int j=0; j<m; j++){
                           y[k]=x[i][j];
                           k=k+1;
                           }
                           cout<<endl;
                           }
                           }
   
int main(int argc, char *argv[])
{
    convert g;
    cin>>g;
    g.pindah();
    cout<<g;
    system("PAUSE");
    return EXIT_SUCCESS;
}


Hasil running code :



Kamis, 07 Juli 2011 | 0 komentar | Label: