Ejercicio ejemplo ordenar una serie de números II. Pasos o algoritmia (CU00120A)

Resumen: Entrega nº19 del curso Bases de la programación Nivel I.
Codificación aprenderaprogramar.com: CU00120A

 

 
CONTINUACIÓN DEL EJERCICIO PLANTEADO EN LA ENTREGA ANTERIOR
 
 
Caso 3
215
31
7
12
66
 

Recordar que estamos realizando un ejercicio que podemos denominar de razonamiento en el ámbito de la algoritmia para establecer un procedimiento de ordenación de números.

Este ejercicio nos permitirá determinar cuál es la lógica en base a la cual realizamos la ordenación de números. A partir de esta lógica podremos plantear una primera aproximación a un programa de ordenador que llamaremos pseudocódigo.

 
 
Paso 1)
v(1) > o(1) ? -> Sí -> o(1) = v(1) ; Previsto eliminar: v(1)
 
 
v(2) > o(1) ? -> No
 
 
v(3) > o(1) ? -> No
 
 
v(4) > o(1) ? -> No
 
 
v(5) > o(1) ? -> No
 
 
o(1) = v(1)        Eliminado v(1)
 
 
Paso 2)
v(1)   Está eliminado
 
 
v(2) > o(2) ? -> Sí -> o(2) = v(2) ; Previsto eliminar: v(2)
 
 
v(3) > o(2) ? -> No
 
 
v(4) > o(2) ? -> No
 
 
v(5) > o(2) ? -> Sí -> o(2) = v(5) ; Previsto eliminar: v(5)
 
 
o(2) = v(5)        Eliminado v(5)
 
 
Paso 3)
v(1) Está eliminado
 
 
v(2) > o(3) ? -> Sí -> o(3) = v(2) ; Previsto eliminar: v(2)      
 
 
v(3) > o(3) ? -> No
 
 
v(4) > o(3) ? -> No
 
 
v(5) Está eliminado
 
 
o(3) = v(2)        Eliminado v(2)
 
 
Paso 4)
v(1) Está eliminado
 
 
v(2) Está eliminado      
 
 
v(3) > o(4) ? -> Sí -> o(4) = v(3) ; Previsto eliminar: v(3)
 
 
v(4) > o(4) ? -> Sí -> o(4) = v(4) ; Previsto eliminar: v(4)
 
 
v(5) Está eliminado
 
 
o(4) = v(4)        Eliminado v(4)
 
 
Paso 5)
v(1) Está eliminado
 
 
v(2) Está eliminado      
 
 
v(3) > o(5) ? -> Sí -> o(5) = v(3) ; Previsto eliminar: v(3)
 
 
v(4)   Está eliminado
 
 
v(5) Está eliminado
 
 
o(5) = v(3)        Eliminado v(3)
 
 
Paso 6)
Todos los elementos eliminados: no hay extracción posible.
 
 
Resultado final:
o(1) = 215
 
o(2) = 66
 
o(3) = 31
 
o(4) = 12
 
o(5) = 7
¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨
 
 
 
Caso 4
15
22
33
15
6
 
 
 
Paso 1)
v(1) > o(1) ? -> Sí -> o(1) = v(1) ; Previsto eliminar: v(1)
 
 
v(2) > o(1) ? -> Sí -> o(1) = v(2) ; Previsto eliminar: v(2)
 
 
v(3) > o(1) ? -> Sí -> 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)
 
 
Paso 2)
v(1) > o(2) ? Sí -> o(2) = v(1) ; Previsto eliminar: v(1)
 
 
v(2) > o(2) ? -> Sí -> o(2) = v(2) ; Previsto eliminar: v(2)
 
 
v(3)   Está eliminado
 
 
v(4) > o(2) ? -> No
 
 
v(5) > o(2) ? -> No
 
 
o(2) = v(2)        Eliminado v(2)
 
 
Paso 3)
v(1) > o(3) ? -> Sí -> o(3) = v(1) ; Previsto eliminar: v(1) 
 
 
v(2)   Está eliminado     
 
 
v(3)   Está eliminado
 
 
v(4) > o(3) ? -> No
 
 
v(5) > o(3) ? -> No
 
 
o(3) = v(1)        Eliminado v(1)
 
 
Paso 4)
v(1)   Está eliminado
 
 
v(2)   Está eliminado      
 
 
v(3)   Está eliminado
 
 
v(4) > o(4) ? -> Sí -> o(4) = v(4) ; Previsto eliminar: v(4)
 
 
v(5) > o(4) ? -> No
 
 
o(4) = v(4)        Eliminado v(4)
 
 
Paso 5)
v(1)   Está eliminado
 
 
v(2)   Está eliminado      
 
 
v(3)   Está eliminado
 
 
v(4)   Está eliminado
 
 
v(5) > o(5) ? -> Sí -> o(5) = v(5) ; Previsto eliminar: v(5)
 
 
o(5) = v(5)        Eliminado v(5)
 
 
Paso 6)
Todos los elementos eliminados: no hay extracción posible.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Resultado final:
o(1) = 33
 
o(2) = 22
 
o(3) = 15
 
o(4) = 15
 
o(5) = 6

 

3º)    Valoración preliminar:
 
·       En los cuatro casos se ha alcanzado un resultado satisfactorio.
·       El caso 4 que presentaba dos valores iguales ha quedado bien resuelto.
 
 
4º)    Plantear relaciones y procesos, con letras:
 
·       Vamos extrayendo sucesivamente v(1), v(2), v(3),..., v(n).
·       Si el valor extraído está marcado como eliminado no se procesa (decimos marcado porque no lo eliminamos realmente con el fin de conservar la lista original).
·       Se procede a asignar en cada paso o(1), o(2), o(3), ..., o(n).
·       Si el valor extraído es mayor que el orden a adjudicar, se hace ese orden igual al valor y se pone una marca en el valor de previsto eliminar. La marca sólo puede estar asociada a un valor, de forma que si otro extraído resulta mayor, la marca se queda únicamente en este último valor.
·       El proceso termina cuando todos los valores han sido marcados como eliminados, o momento en el que el orden a adjudicar es mayor que n.
 
 
5º)    Plantear el procedimiento de resolución:
 
 
 
Comentarios: Indicador funciona como previsto eliminar, mientras que marcaeliminado indica si un valor ha sido extraído, con lo cual no se tiene en cuenta

 

 

 

 

 

 

Para acceder a la información general sobre este curso y al listado completo de entregas pulsa en este link:  Ver curso completo.

Para  hacer un comentario o consulta utiliza los foros aprenderaprogramar.com, abiertos a cualquier persona independientemente de su nivel de conocimiento.

Donar o colaborar

Este sitio se mantiene abierto gracias al apoyo de muchas personas. Si crees que merece la pena apoyar económicamente este sitio web puedes realizar una donación o colaborar. Contacta con nosotros.

¿Puedo yo aprender?

Seas o no del área informática, si quieres aprender a programar te ofrecemos una solución guiada y personalizada: realizar un curso tutorizado on-line. Con este tipo de curso, podrás aprender a programar de forma ágil y amena.

Acceder a detalles y precios de los cursos tutorizados on-line

Política sobre cookies

Utilizamos cookies propias y de terceros para ofrecerte una mejor experiencia y servicio, de acuerdo a tus hábitos de navegación.

Si continúas navegando, consideramos que aceptas su uso. Puedes obtener más información en nuestra Política de Cookies.

En Facebook!

Ahora puedes seguirnos en Facebook. Noticias, novedades y mucho más ¡Te esperamos!

RANKING APR2+

Ranking de lenguajes y entornos de programación aprenderaprogramar.com
 

JULIO - AGOSTO 2017

1. Java / J2EE
2. Entornos Oracle
3. Entornos SQL Server
4. JavaScript, jQuery
5. .NET, C#
6. HTML, CSS
7. Android, iOS
8. Php, MySql


Acceder a detalles sobre el ranking de programación aprenderaprogramar.com

FOROS APR2+

Pregunta, responde, consulta, lee, intercambia...

Participa!!! Entra en los foros aprenderaprogramar.com.

             Copyright 2006-2017 aprenderaprogramar.com                La web abierta a cualquier persona interesada en la programación