Codificación aprenderaprogramar.com: CU00117A
La estrategia de aproximación al método es algo libre. Proponemos plantear varios casos con cifras concretas, resolverlos sobre papel y tratar de ver relaciones numéricas o encadenamiento de procesos que determinan el paso a paso.
1º) | Planteamos varios casos. ¿Qué número n de valores cogemos? No hay respuesta fija: debemos huir de los valores que puedan suponerse especiales o no genéricos así como de valores que den lugar a procesos demasiado largos. En nuestro caso: |
n =1, 2 ó 3
|
-->
|
Se consideran no representativos del caso genérico
|
n =4, 5 ó 6
|
-->
|
Se consideran aceptables
|
n =7, 8 ó 9
|
-->
|
Se consideran aceptables tendiendo a largos
|
n > 9
|
-->
|
Se consideran demasiados valores
|
|
|
Representatividad
|
Circunstancias especiales
|
Sencillez
|
|
Caso 1
|
· Número mayor en una
posición intermedia
|
No
|
Sí
|
Caso 2
|
· Serie descendente excepto último número
· Número mayor en extremo derecho
|
No
|
Sí
|
Caso 3
|
· Número mayor en extremo izquierdo
|
No
|
Sí
|
Caso 4
|
· Número mayor en posición intermedia
|
Dos valores son iguales
|
Sí
|
2º) | Tanteamos un método. A cada uno de los casos trataremos de aplicarle un mismo método a partir de una idea. En este caso la idea va a ser: “Considero al primer número como orden 1. A partir de ahí, cojo el segundo número y lo comparo con orden 1. Si es mayor orden 2 pasa a ser orden 1 y orden 1 pasa a ser el valor. Si es menor orden 2 es el valor. El proceso se repite, de forma que vamos comparando e intercalando donde proceda”. Aplicaremos el método y trataremos de dejar reflejo de los pasos seguidos como esquema gráfico, de cálculo o de encadenamiento de acciones. |
Caso 1
|
33
|
88
|
57
|
22
|
15
|
Paso 1) | o(1) = v(1) |
o(1) = 33 |
Paso 2) | o(1) > v(2) ? -> No -> | o(2) = o(1); | o(1) = v(2) |
o(1) = 88 | o(2) = 33 | o(1) = 88 |
Paso 3) | o(1) > v(3) ? -> Sí -> | o(2) > v(3) ? -> No -> | o(3) = o(2) ; | o(2) = v(3) |
88 > 57 | 33 > 57 | o(3) = 33 | o(2) = 57 |
Paso 4) | o(1) > v(4) ? -> Sí -> | o(2) > v(4) ? -> Sí -> | o(3) > v(4) ? -> Sí -> | o(4) = v(4) |
88 > 22 | 57 > 22 | 33 > 22 | o(4) = 22 |
Paso 5) | o(1) > v(5) ? -> Sí -> | o(2) > v(5) ? -> Sí -> | o(3) > v(5) ? -> Sí -> | o(4) > v(5) ? -> Sí -> | o(5) = v(5) |
88 > 15 | 57 > 15 | 33 > 15 | 22 > 15 | o(5) = 15 |
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) | o(1) = v(1) |
o(1) = 18 |
Paso 2) | o(1) > v(2) ? -> Sí -> | o(2) = v(2) |
18 > 16 | o(2) = 16 |
Paso 3) | o(1) > v(3) ? -> Sí -> | o(2) > v(3) ? -> Sí -> | o(3) = v(3) |
18 > 13 | 16 > 13 | o(3) = 13 |
Paso 4) | o(1) > v(4) ? -> Sí -> | o(2) > v(4) ? -> Sí -> | o(3) > v(4) ? -> Sí -> | o(4) = v(4) |
18 > 11 | 16 > 11 | 13 > 11 | o(4) = 11 |
Paso 5) | o(1) > v(5) ? -> No -> | o(5) = o(4) ; | o(4) = o(3) ; | o(3) = o(2) ; | o(2) = o(1) ; | o(1) = v(5) |
18 > 44 | o(5) = 11 | o(4) = 13 | o(3) = 16 | o(2) = 18 | o(1) = 44 |
Resultado final:
|
o(1) = 44
|
o(2) = 18
|
|
o(3) = 16
|
|
o(4) = 13
|
|
o(5) = 11
|
Caso 3
|
215
|
31
|
7
|
12
|
66
|
Paso 1) | o(1) = v(1) |
o(1) = 215 |
Paso 2) | o(1) > v(2) ? -> Sí -> | o(2) = v(2) |
215 > 31 | o(2) = 31 |
Paso 3) | o(1) > v(3) ? -> Sí -> | o(2) > v(3) ? -> Sí -> | o(3) = v(3) |
215 > 7 | 31 > 7 | o(3) = 7 |
Paso 4) | o(1) > v(4) ? -> Sí -> | o(2) > v(4) ? -> Sí -> | o(3) > v(4) ? -> No -> | o(4) = o(3) ; | o(3) = v(4) |
215 > 12 | 31 > 12 | 7 > 12 | o(4) = 7 | o(3) = 12 |
Paso 5) | o(1) > v(5) ? -> Sí -> | o(2) > v(5) ? -> No -> | o(5) = o(4) ; | o(4) = o(3) ; | o(3) = o(2) ; | o(2) = v(5) |
215 > 66 | 31 > 66 | o(5) = 7 | o(4) = 12 | o(3) = 31 | o(2) = 66 |
Resultado final:
|
o(1) = 215
|
o(2) = 66
|
|
o(3) = 31
|
|
o(4) = 12
|
|
o(5) = 7
|
Caso 4
|
15
|
22
|
33
|
15
|
6
|
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.