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 :
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 :
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 :