Autor Tema: ejercicio ordenar serie de números CU00119A fundamentos de programación  (Leído 4603 veces)

Pandemia

  • Avanzado
  • ****
  • APR2.COM
  • Mensajes: 255
    • Ver Perfil
Buenos tardes amigos he echo este ejercicio porque no me  quedaba claro, lo veía un poco enrevesado y e decidido hacer uno por mi cuenta no sin antes darle muchas vueltas y mirar los ejemplos tanto que salen en el libro, como en el curso, haber que os parece, ya me diréis si lo he entendido bien no no.

saludos y gracias de antemano por vuestro tiempo, que hace ya unos días que no escribía nada por aquí.

caso 1  47  25  91  70  40

PASO 1

o(1)=v(1)     o(1)=47

PASO 2

o(1)>v(2) ? --> si  o(2)=25

PASO 3

o(1)>v(3) ? --> si    o(3)=o(1)=91   o(1)=o(2)=47   o(2)=o(3)=25

o(1)=91  o(2)=47  o(3)=25

PASO 4

o(1)>v(4) ? --> si   o(3)=o(4)=25  o(2)=o(3)=47  o(3)=o(2)=70

o(1)=91   o(2)=70   o(3)=47   o(4)=25

PASO 5

o(1)>v(5) ? --> si   o(4)=0(5)= 25   o(5)=o(4)=40  o(3)= 47  o(2)= 70  o(1)= 91


resultado final:

                   o(1)= 91
                   o(2)=70   
                   o(3)=47
                   o(4)=40
                   o(5)=25

Bueno espero que me haya salido bien me ha costado un poco de trabajo entenderlo, y hacerlo.
saludos y gracias de nuevo

Alex Rodríguez

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2050
    • Ver Perfil
Hola

En el paso 1 se establece que o(1) vale 47, correcto.

En el paso 2 se compara si 47 es mayor que 25, y al ser así en segunda posición queda el 25, correcto.

En el paso 3 se compara si 47 es mayor que 91. La respuesta es que no.

Sin embargo tú has puesto que sí con lo cual no tienes bien el ejercicio

PASO 3

o(1)>v(3) ? --> si


Aquí hay una explicación que creo te aclarará: https://www.aprenderaprogramar.com/foros/index.php?topic=694.0, si no te aclara vuelve a consultar

Saludos

Pandemia

  • Avanzado
  • ****
  • APR2.COM
  • Mensajes: 255
    • Ver Perfil
Buenas noches Alex, gracias por contestar tan rápido, no me queda nada claro el ejercicio sobre todo la parte que dices:

 En el paso 3 se compara si 47 es mayor que 91. La respuesta es que no.

Sin embargo tú has puesto que sí con lo cual no tienes bien el ejercicio

PASO 3

o(1)>v(3) ? --> si

He entrado en el link que me pones, y medio lo he entendido lo he intentado hacer en papel y me he vuelto ha liar, no se si es que soy un cabezón, o no me entra, de todas maneras cuando lo tenga más claro sobre papel, pondré el ejemplo, de todas maneras si me puedes aclarar algo te lo agradecería, porque llevo tiempo pillado con este tema, aunque estoy avanzando con los demás del curso y el libro que os compre.

Saludos y gracias por vuestro tiempo

Alex Rodríguez

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2050
    • Ver Perfil
Hola, mi recomendación: coge 5 cajitas y escribe por fuera v(1), v(2), v(3), v(4) y v(5). Dentro de cada cajita pon un papel con los números.

Coge otras 5 cajitas y escribe por fuera o(1), o(2), o(3), o(4) y o(5). Dentro de cada cajita pon un papel.

Ahora sigue el ejemplo según https://www.aprenderaprogramar.com/foros/index.php?topic=694.0 consultando las cajitas y escribiendo de las cajas o(...) en cada momento lo que vaya correspondiendo. Ten en cuenta que las cajas v(...) siempre tendrán lo mismo, los números iniciales. En cambio en las cajas o(...) tendrás que ir tachando (o moviendo papeles de una a otra) cada vez que haya cambios.

Saludos

Pandemia

  • Avanzado
  • ****
  • APR2.COM
  • Mensajes: 255
    • Ver Perfil
Buenas noches Alex, creo que lo de las cajitas y el link que me pones ha funcionado y lo he comprendido mejor, he repetido el ejercicio con los  mismos números pero de todas maneras probaré con otros para ver que  tal, te pongo la propuesta de este para ver que te parece.

CASO 1 47  25  91  70  40

v(1)>o(1) ? --> si  o(1)=v(1)  previsto eliminar v(1)
v(2)>o(1) ? --> no
v(3)>o(1) ? --> si  o(1)=v(3) previsto eliminar v(3)
v(4)>o(1) ? --> no
v(5)>o(1) ? --> no

o(1)=v(3)    Eliminar v(3)

v(1)>o(2) ? --> si  o(2)=v(1) previsto eliminar v(1)
v(2)>o(2) ? --> no
v(4)>o(2) ? --> si  o(2)=v(4) previsto eliminar v(4)
v(5)>o(2) ? --> no

o(2)=v(4)   Eliminar v(4)

v(1)>o(3) ? --> si   o(3)=v(1)    previsto eliminar v(1)
v(2)>o(3) ? --> no
v(5)>o(3) ? --> no

o(3)=v(1)  Eliminar v(1)

v(2)>o(4) ? --> si  o(4)=v(2)   previsto eliminar v(2)
v(5)>o(4) ? --> si  o(4)=v(5)   previsto eliminar v(5)

o(4)=v(5)   Eliminar v(5)

v(2)>o(5) ? --> si  o(5)=v(2)  previsto eliminar v(2)

o(5)=v(2)   Eliminar v(2)

Resultado final:
                           o(1)= 91
                           o(2)= 70
                           o(3)= 47
                           o(4)= 40
                           o(5)= 25


Ahora creo que lo he entendido practicaré más y pondré ejercicios para ver si están bien, siempre y cuando este este bien, espero que le des un vistazo si puedes y me haces el favor para ver si le he cogido el truquillo.

Saludos y gracias por tu tiempo. 
 

Alex Rodríguez

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2050
    • Ver Perfil
Hola, estás mezclando dos métodos de ordenación.

Tienes que tener en cuenta que:

a) Existen varios métodos para ordenar números
b) Cada método tiene unos pasos a seguir
c) No se pueden mezclar métodos
d) El método que usa órdendes o(1), o(2)... se basa en mantener una lista donde se van ordenando los números y se van desplazando según resulta necesario
e) El método con "previsto eliminar" se basa en elegir el número mayor en cada paso, con lo cual no hay que desplazar números

Lo más importante: debes estudiar cada método por separado y entenderlo por separado. Son métodos distintos.

Saludos

Pandemia

  • Avanzado
  • ****
  • APR2.COM
  • Mensajes: 255
    • Ver Perfil
Buenas noches Alex he repetido el ejercicio, que creo que ahora si he cogido el concepto o eso creo vamos, te lo expongo aquí debajo:

CASO 1º  47  25  91  70  40

Te expongo las chuletas que he usado:

V(1)=47  V(2)=25   V(3)=91   V(4)=70   V(5)=40

O(1)=91   O(2)=70   O(3)=47   O(4)=40   O(5)=25     


A partir de aquí el ejercicio:

V(1)>O(1) ? si --> O(1)=V(1); Previsto eliminar V(1)
V(2)>O(1) ? no
V(3)>O(1) ? si --> O(1)=V(3); Previsto eliminar V(3)
V(4)>O(1) ? no
V(5)>O(1) ? no

  O(1)=V(3)  Eliminado V(3)

O(2)=70 que es V(4)  Eliminado V(4)
O(3)=47 que es V(1)  Eliminado V(1)
O(4)=40 que es V(5)  Eliminado V(5)
O(5)=25 que es V(2)  Eliminado V(2)

Creo que esta vez más o menos he cogido el concepto, he buscado primero el número mayor y luego he ido ordenando en los o().... los números de mayor a menor y los he ido eliminando de los v()...., bueno ya me diras si al fin le he cogido el concepto al menos ha este método que también tengo que probar con el otro, si me haces el favor échale un vistazo para ver que tal está, espero no molestarte mucho pero es que así me aseguro que voy por buen camino y practico mas esto que no se me da muy bien, bueno sin  mas me despido agradeciéndote de corazón toda la ayuda y paciencia  que me estas brindando.

Saludos y mil gracias por tu tiempo


Alex Rodríguez

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2050
    • Ver Perfil
Hola Pandemia, este método lo estás aplicando correctamente (lo único que falltaría sería detallar más los pasos pero supongo que no lo has hecho para ahorrar espacio). Saludos.

Pandemia

  • Avanzado
  • ****
  • APR2.COM
  • Mensajes: 255
    • Ver Perfil
Buenas tardes Alex, sí como tu dices lo hice asi para ahorrar espacio, ahora tengo que probar y practicar con el otro método.

Saludos y gracias por tu tiempo, me has servido de mucha ayuda.

 

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".