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

 

 
ESTRATEGIAS DE RESOLUCIÓN

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

 

 
De forma intuitiva desconfiamos de n = 4 y cogemos n = 5 ¿Cuántos casos cogemos? Igualmente no hay respuesta fija. Serán los necesarios o los que creamos convenientes. En esta ocasión, elegiremos estos cuatro casos:
 
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
 
 
 
La elección de casos se hace buscando:
 
·Representatividad de situaciones.
·Circunstancias especiales conocidas.
·Sencillez.
 
 
Representatividad de situaciones en relación a buscar situaciones variantes (p. ej. series ascendentes, series descendentes).
 
Circunstancias especiales conocidas: podemos introducir alguna para hallar una mecánica que se adapte a ellas (p. ej. presencia de ceros, etc.). Inicialmente elegiremos pocas (menor o igual a un 25 % de casos).
 
Sencillez: estamos en un primer paso y no nos complicamos la vida (p. ej. empezar con números enteros positivos). En algunas ocasiones, la mecánica para resolver casos sencillos permite resolverlos todos (o casi todos). Se trataría de un método fuerte. En otras ocasiones el método es débil o incapaz de resolver determinado tipo de casos o circunstancias especiales, por lo que hay que seguir trabajando en él para reforzarlo.
 
De las series elegidas podríamos decir lo siguiente:
 
 
Representatividad
Circunstancias especiales
Sencillez
Caso 1
· Número mayor en una
posición intermedia
No
Caso 2
· Serie descendente excepto último número
· Número mayor en extremo derecho
No
Caso 3
· Número mayor en extremo izquierdo
No
Caso 4
· Número mayor en posición intermedia
Dos valores son iguales
 
 
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.

Descargar archivo: