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.

 

Descargar archivo: