• Sábado 14 de Diciembre de 2024, 15:56

Autor Tema:  Re: Hola, ayudenme porfavor a revisar este código, yo no se  (Leído 2849 veces)

Andrea804

  • Nuevo Miembro
  • *
  • Mensajes: 4
    • Ver Perfil
Re: Hola, ayudenme porfavor a revisar este código, yo no se
« en: Jueves 27 de Febrero de 2003, 18:22 »
0
for(i20=0;i20<N;i20++){
       prueba22[i20]=hola5[i20].calculo;
    }


//imprimir array prueba22[] antes de la ordenación
    i23=0;

 for(i23=0;i23<21;i23++){
      cout << prueba22[i23] << " pruebaAntesssn";
    }  
   
/////////////////////////////////algoritmo de ordenación//////////////////////////////

    for(i8=1;i8<N;i8++){ // Hacer N pasadas.
      for(j8=0;j8<N-1;j8++){ // Mirar los N-1 pares.
   if(prueba22[j8] < prueba22[j8+1]) // Si el elemento j+1 es menor que el elemento j:
     {
       aux=prueba22[j8]; // Se intercambian los elementos
       prueba22[j8]=prueba22[j8+1]; // de las posiciones j y j+1
       prueba22[j8+1]=aux; // usando una variable auxiliar.
     }
      }
    }

////////////////////////////////fin/////////////////////////////////////////////////////

//imprimir el array despues de la ordenación
    i25=0;

for(i25=0;i25<21;i25++){
      cout << prueba22[i25] << " pruebadespuesn";
}


Al imprimir el array prueba22[] antes de la ordenación aparece bien,
el problema es que al imprimirlo despues de la ordenación
aparece mal, sin ordenar y no aparecen algunos elementos del array.

No se que esta mal!!

Muchas gracias

Astor

  • Miembro MUY activo
  • ***
  • Mensajes: 112
    • Ver Perfil
Re: Hola, ayudenme porfavor a revisar este código, yo no se
« Respuesta #1 en: Jueves 27 de Febrero de 2003, 18:56 »
0
Mira no lo mire del todo ya que resulta bastante confuso el nombre que usas para las variables, sobre todos los contadores. Seria bueno que
1. Agregues las definiciones de los arrays y variables para saber si no estaras haciendo algun overflow.
2. Te recomendaria uses una sola variable para contadores (ejmplo i o x, o n). Si bien podes hacerlo como gustes adquirir buenas costumbres cuando comenzas es mejor que luego tener que cambiarlas.

gothmog

  • Miembro activo
  • **
  • Mensajes: 84
    • Ver Perfil
Re: Hola, ayudenme porfavor a revisar este código, yo no se
« Respuesta #2 en: Jueves 27 de Febrero de 2003, 19:32 »
0
pues asi a bote pronto sin haber overflows ni nada de eso como bien comenta astor, esto:

for(i8=1;i8<N;i8++){ // Hacer N pasadas.
for(j8=0;j8<N-1;j8++){ // Mirar los N-1 pares

Hacen exactamente el mismo numero de pasadas, esto es, n-1. No deberia ser i8=0 ??

Astor

  • Miembro MUY activo
  • ***
  • Mensajes: 112
    • Ver Perfil
Re: Hola, ayudenme porfavor a revisar este código, yo no se
« Respuesta #3 en: Jueves 27 de Febrero de 2003, 20:21 »
0
Tiene razon gothmog. Vos tendrias que hacer

for(x=0,x<N,x++)
{
    for(i=x, i< N, i++)
    {

Vos intentaste hacer esto ? ordenar por metodod e bubujeo ?

Andrea804

  • Nuevo Miembro
  • *
  • Mensajes: 4
    • Ver Perfil
Re: Hola, ayudenme porfavor a revisar este código, yo no se
« Respuesta #4 en: Viernes 28 de Febrero de 2003, 10:24 »
0
Hola, si, he tratado de aplicar el método de la burbuja
que lo he encontrado en alguna página de la internet.

Muchas Gracias Gothmot, probé con i8=0, pero me pasa lo mismo.

Hasta pronto

Astor

  • Miembro MUY activo
  • ***
  • Mensajes: 112
    • Ver Perfil
Re: Hola, ayudenme porfavor a revisar este código, yo no se
« Respuesta #5 en: Sábado 1 de Marzo de 2003, 22:47 »
0
Si quisiste hacer burbujeo deberias haber hecho lo que yo te dije para tenet un indice en un lugar y con el otro recorrer desde alli al final.

Saludos.-

Andrea804

  • Nuevo Miembro
  • *
  • Mensajes: 4
    • Ver Perfil
Re: Hola, ayudenme porfavor a revisar este código, yo no se
« Respuesta #6 en: Martes 4 de Marzo de 2003, 17:07 »
0
Muchas gracias por la ayuda,  Astor como es el algoritmo de burbujeo que me planteas?

Me lo puedes escribir o enviar a mi e-mail por favor.

Muchas gracias.
Saludos.

agvabraham

  • Nuevo Miembro
  • *
  • Mensajes: 5
    • Ver Perfil
Re: Hola, ayudenme porfavor a revisar este código, yo no se
« Respuesta #7 en: Jueves 6 de Marzo de 2003, 11:02 »
0

Bueno primeramente ... holaa...
oye  quiero pensar que esta instruccion  
hola5[i20].calculo    es la inicializacion del arreglo...ok

Despues muestras lo que tienes almacenado en tu arreglo (tus datos a ardenar...ok

Despues utilizas el metodo de la burbuja para ordenarlo...cierto... si es asi entonces lo que esta mal es el empleo del metodo... estan mal los ciclos for y ademas los subindices de los arreglos en el intercambio... prueba el sig codigo...


#incluide <stdio.h>

void main ();
{

int prueba22 [10];
int N=10;
burbuja (prueba22,N);  /* Ordenaremos el arreglo en forma ascendente  1,5,8,10,15,22,100  */
getch();

}

/*          *a_p    es el apuntador al primer elemento del arreglo que quieres ordenar  */

/*  tam es el tamaño del arreglo que quieres ordenar  */

void burbuja (int *a_p,int tam)
{
   int j,k,aux;

   for (j=0 ; j<tam-1 ;j++)
    for (k=i+1 ; k<tam ; k++)
   if ( prueba22 [ k ] < prueba22 [ j ] )
      {
    aux = prueba22 [ j ];
   prueba22 [ j ]  = prueba22 [ k ];
       prueba22 [ k ] = aux;
      }
}


Espero esto te sirva...ok

Andrea804

  • Nuevo Miembro
  • *
  • Mensajes: 4
    • Ver Perfil
Hola, ayudenme porfavor a revisar este código, yo no se que
« Respuesta #8 en: Jueves 13 de Marzo de 2003, 18:30 »
0
Hola agvabraham

Muchas Gracias por tu respuesta, pero hasta hoy he visto tu mensaje.

Si, tienes razón lo que estaba mal era el metodo burbuja. ya lo he resuelto por mi misma.

Gracias de nuevo

Un saludo