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

 

 

EJERCICIO "ORDENAR UNA SERIE DE NÚMEROS CONFORME A UNOS CONDICIONANTES"

 
Determinar el método de resolución para el problema con los criterios expuestos a continuación:

1. Objetivo: ordenar una serie de números de mayor a menor

2. Condicionantes: Cantidad de números a ordenar indeterminada. Necesario conservar la serie inicial de números.

3. Datos de partida: Una serie de n números.

4. Método: Se basará en la siguiente idea. Se buscará el número más grande de la lista que pasará a una nueva lista. Con los elementos restantes repetimos el proceso para obtener el segundo número de la lista nueva. El proceso se repite hasta que no quedan números por extraer.

5. Resultados a obtener: Lista ordenada del tipo orden(1) = ..., orden(2) = ..., orden(3) = ..., ..., orden(n) = ...

 

 

SOLUCIÓN:

1º)  

Planteamos varios casos: Problema muy similar al anterior. Repetimos pues las consideraciones antes expuestas y los cuatro casos que teníamos.

 

Caso 1
33
88
57
22
15
Caso 2
18
16
13
11
44
Caso 3
215
31
7
12
66
Caso 4
15
22
33
15
6

 

 

2º)   Tanteamos el método: Partimos de la idea expuesta y la aplicamos a los distintos casos.

 

Caso 1
33
88
57
22
15

 

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) ? -> No
 
v(4) > o(1) ? -> No
 
v(5) > o(1) ? -> No
 
o(1) = v(2)        Eliminado v(2)

 

Paso 2)
v(1) > o(2) ? -> Sí -> o(2) = v(1) ; Previsto eliminar: v(1)
 
v(2) Está eliminado      
 
v(3) > o(2) ? -> Sí -> o(2) = v(3) ; Previsto eliminar: v(3)
 
v(4) > o(2) ? -> No
 
v(5) > o(2) ? -> No
 
o(2) = v(3)        Eliminado v(3)

 

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) = 88
 
o(2) = 57
 
o(3) = 33
 
o(4) = 22
 
o(5) = 15

 

 

***************************************************

 

 

Caso 2
18
16
13
11
44

 

 
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) ? -> Sí -> o(1) = v(5) ; Previsto eliminar: v(5)
 
o(1) = v(5)        Eliminado v(5)
 
Paso 2)
v(1) > o(2) ? -> Sí -> o(2) = v(1) ; Previsto eliminar: v(1)
 
v(2) > o(2) ? -> No
 
v(3) > o(2) ? -> No
 
v(4) > o(2) ? -> No
 
v(5) Está eliminado
 
o(2) = v(1)        Eliminado v(1)
 
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) ? -> No
 
v(5) Está eliminado
 
o(4) = v(3)        Eliminado v(3)
 
Paso 5)
v(1) Está eliminado
 
v(2) Está eliminado      
 
v(3) Está eliminado
 
v(4) > o(5) ? -> Sí -> o(5) = v(4) ; Previsto eliminar: v(4)
 
v(5) Está eliminado
 
o(5) = v(4)        Eliminado v(4)
 
Paso 6)
Todos los elementos eliminados: no hay extracción posible.
 
Resultado final:
o(1) = 44
 
o(2) = 18
 
o(3) = 16
 
o(4) = 13
 
o(5) = 11

 

  

***************************************************

Caso 3
215
31
7
12
66

 

La resolución del caso 3 la veremos en la próxima entrega.

 

 

 

 

 

 

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: