Arreglos Bidimensionales C++




Que tal, pues aquí dejo una pequeña ayuda para aquellos que anduvieron sufriendo o tal vez andan sufriendo con el problema de ordenar un arreglo bidimensional, realmente no es algo sencillo, espero que lo sepan apreciar y que les sea de utilidad, Mucha suerte segundos programadores:
 
El código consiste en un menú que muestra cuatro diferentes opciones: Llenar un arreglo bidimensional, mostrar su contenido, ordenar su contenido (numérico) ascendentemente y ordenar su contenido (numérico) descendentemente (creo yo que lo más complicado). 
La problemática más fuerte consiste en vaciar el arreglo bidimensional a un arreglo unidimensional y posteriormente volver a llenar el arreglo bidimensional pasándole los números ordenados. Se utiliza por supuesto el método de la burbuja cuando se ordena el arreglo unidimensional.

Bueno, supongo que estoy tratando con programadores, así es que sin darle más vueltas al asunto, aquí dejo el código, no incluyo comentarios en el mismo(mal hábito), pero es muy evidente:


 
¡ Ah !, y una disculpa por meter código de C++, siendo que esta página está dedicada a  JAVA, pero hay que recordar que primero fué C++. Saludos.

¡¡¡ Arriba los programadores de la Bancaria !!!


#include<iostream.h>
#include<conio.h>
class P{
    public: int dx,dy, cont, temp;
    public: int arr[100][100];
    public: int nuevoArreglo[100];
   
//__________________________________________________________________   
public: void llenarArreglo(){
   
    cout<<"dijite los numeros"<<endl;
    for(int x=0;x<dx;x++){
        for(int y=0;y<dy;y++)
        cin>>arr[x][y];
    }
  }
//___________________________________________________________________
 
public: void mostrarArreglo(){
   
    cout<<"los numeros que contiene el arreglo son:"<<endl;
    for(int x=0;x<dx;x++){
        for(int y=0;y<dy;y++)
        cout<<"arr["<<x<<"]["<<y<<"]=  "<<arr[x][y]<<endl;
    }
  }


 
 // ___________________________________________________________________
 
public: void burbujaAscendente(int n, int x[])
{
 int i,j;
 int temp;
 for(i=0;i<n;i++)
  for(j=n-1;j>i;j--)
   if(x[j-1]>x[j])
   {
    temp =x[j-1];
    x[j-1]=x[j];
    x[j]=temp;
   }
}

 
  //___________________________________________________________________ 
 
  public: void burbujaDescendente(int n, int x[])
{
 int i,j;
 int temp;
 for(i=0;i<n;i++)
  for(j=n-1;j>i;j--)
   if(x[j-1]<x[j])
   {
    temp =x[j-1];
    x[j-1]=x[j];
    x[j]=temp;
   }
}

 
  //___________________________________________________________________ 
 
 
 
public: void ordenarArregloAsc(){
    cont=0;
    cout<<"los numeros que contiene el arreglo ordenados ascendentemente son:"<<endl;
   
   
    for(int c=0;c<dx;c++)
        {
          for(int c2=0;c2<dy;c2++)
          {
          nuevoArreglo[cont++]=arr[c][c2];
          }
          }
         burbujaAscendente((dx*dy),nuevoArreglo);
          cont=0;
         for(int c=0;c<dx;c++)
           {
           for(int c2=0;c2<dy;c2++)
           {
             arr[c][c2]=nuevoArreglo[cont++];
             cout<<arr[c][c2]<<endl;
           }

          }
           
      }


 //___________________________________________________________________
 
 
 public: void ordenarArregloDes(){
    cont=0;
    cout<<"los numeros que contiene el arreglo ordenados descendentemente son:"<<endl;
   
   
    for(int c=0;c<dx;c++)
        {
          for(int c2=0;c2<dy;c2++)
          {
          nuevoArreglo[cont++]=arr[c][c2];
          }
          }
         burbujaDescendente((dx*dy),nuevoArreglo);
          cont=0;
         for(int c=0;c<dx;c++)
           {
           for(int c2=0;c2<dy;c2++)
           {
             arr[c][c2]=nuevoArreglo[cont++];
             cout<<arr[c][c2]<<endl;
           }

          }
           
      }


 //___________________________________________________________________
 
  public: P(int a,int b){
      P::dx=a;
      P::dy=b;
      //int arr[a][b];
  }
};

main(){
    clrscr();
    int d1,d2, opcion;
    cout<<"dijite las dimensiones del arreglo"<<endl;
    cin>>d1;
    cin>>d2;
    P p1=P(d1,d2);
   
    do{
       
    cout<<"Elija las opciones que desee"<<endl;
    cout<<"1.- llenar el arreglo"<<endl;
    cout<<"2.- mostrar el arreglo"<<endl;
    cout<<"3.- ordenar el arreglo ascendentemente"<<endl;
    cout<<"4.- ordenar el arreglo descendentemente"<<endl;
    cout<<"9.- Salir"<<endl;
    cin>>opcion;
   
    switch(opcion)    {
    case 1:
    p1.llenarArreglo(); break;
    case 2:
    p1.mostrarArreglo(); break;
    case 3:
    p1.ordenarArregloAsc(); break;
    case 4:
    p1.ordenarArregloDes(); break;
    }
  }while(opcion!=9);
   
    getch();
}


Java
 
El propietario de ésta página no ha activado todavía el extra "Lista Top"!
Java el más popular.
 
La comunidad de
programadores
TIOBE ha publicado su informe
de popularidad de los lenguajes
de programación:
1.- Java
2.- C
3.- C++
4.- PHP
5.- Visual Basic.
Los lenguajes menos populares
 
La información de este ranking esta dada por Ingenieros Calificados de todo el mundo, motores de búsqueda importantes como Google y Yahoo.
16.- Pascal
17.- Lenguaje D
18.- Lisp/Scheme
19.- Objetive-C
20.- MATLAB
Los mejores programadores del mundo:
 
Aquí una lista de los que son considerados los mejores programadores del mundo. Por desgracia este año no aparezco, pero en Fin..
1. John Carmack
2. Linus Torvalds
3. Tim Berners-Lee
4. Douglas Andrew Bel
5. Dennis Ritchie
6. Bram Cohen
7. Rasmus Lerdorf,
Andi Gutmans
& Zeev Suraski
8. Jez San
9. Bjarne Stroustrup
10. Richard Bartle & Roy Trubshaw
Sabias qué...
 
México ocupa el primer lugar
en el desarrollo de software
entre los países de habla hispana,
por encima de España,
Argentina y Chile, aunque en
América latina
es superado por Brasil.
 
Hoy habia 1 visitantes (11 clics a subpáginas) ¡Aqui en esta página!
Este sitio web fue creado de forma gratuita con PaginaWebGratis.es. ¿Quieres también tu sitio web propio?
Registrarse gratis