SoloCodigo

Programación General => C/C++ => Mensaje iniciado por: elpollo12 en Lunes 23 de Julio de 2007, 00:36

Título: Método De La Burbuja
Publicado por: elpollo12 en Lunes 23 de Julio de 2007, 00:36
Amigos, tengo una duda en cuanto al método de la burbuja. Este es mi código:

//Programa que calcule el  rea de tres rectangulos y luego las ordene
//de forma ascendente utilizando la burbuja.
//Programado por: Jos‚ Alejandro Hern ndez Gonz lez.  MAT-VZLA
#include<iostream.h>
#include<conio.h>
#include<dos.h>
# define n 3
void main()
{
textcolor(0);
textbackground(2);
float area[2][5],l1[2][5],l2[2][5],aux;
int i,j;
clrscr();
for(i=0;i<n;i++)      {
cout<<"Ingrese el 1er lado: ";
cin>>l1;
cout<<"Ingrese el 2do lado: ";
cin>>l2;
area=(l1*l2);
cout<<"El  rea es: "<<area<<endl;
            }
getch();   //Comienza el m‚todo de la burbuja
for(i=0;i<n-1;i++)   {  //Ojo debe ser i<n-1
for(j=0;j<n;j++)      {
if (area>area[j+1][j+1]) { //si quiero ordenar descendentemente cambio
             //el > por <
aux=area;//Guardo el valor que estoy comparando en un auxiliar
area=area[j+1][j+1];//el valor de la segunda area lo intercambio cn la 1era
area[j+1][j+1]=aux;
         }
          }
           } //Fin de la Burbuja
for(i=0;i<n;i++)          { //ciclo para mostrar las areas ordendas
cout<<" "<<area;
           }
getch();
}



El problema es que no se, porque se debe colocar en el primer for que inicia el metodo i<n-1  ...... si alguien me puede responder... se lo agradecería.
Título: Re: Método De La Burbuja
Publicado por: elpollo12 en Lunes 23 de Julio de 2007, 04:16
Bueno aqui consegui hacer este otro codigo, el cual creo que esta mejor... pero igual me gustaria saber poruqe se debe colocar en el anterior i<n-1.

//Método de la Burbuja
//Programado por: Jose Alejandro Hernandez Gonzalez
#include<iostream.h>
#include<conio.h>
main()
{
int num[4], aux,i,j;
clrscr();
for(i=0;i<5;i++)   {  //ciclo para pedir los numeros
cout<<"Ingrese un num: ";
cin>>num;//guardo el valor en un vector, tambien puedo trabajar con matriz
           }//fin del ciclo
for(i=0;i<5;i++) {  //comienza el metodo de la burbuja
for(j=0;j<5;j++)        {
if(num<num[j])       {//Si quiero ordenarlo de forma descendente cambio
          //el signo < por >
aux=num;
num=num[j];
num[j]=aux;
           }
         }
           } //fin del metodo
cout<<"Los numeros ordenados son: "<<endl;
for(i=0;i<5;i++) { //Ciclo para presentar los numero ordenados
cout<<" "<<num;
       }
getch();
return 0;
}
Título: Re: Método De La Burbuja
Publicado por: Mollense en Lunes 23 de Julio de 2007, 05:54
No es que "deba" obligadamente ponerse así, pero el -1 es porque en la última vuelta del ciclo, los valores ya están ordenados, por lo tanto es innecesaria.
Deberías hacer la prueba de escritorio o ejecutar el progrma paso a paso e ir viendo el valor que van tomando las variables.
Título: Re: Método De La Burbuja
Publicado por: elpollo12 en Lunes 23 de Julio de 2007, 20:13
ok muchas gracias angel k ido , seguire tu consejo a ver q tal!!!!!