Estrategias frente a problemas de programación II: procedimiento de resolución (CU00118A)

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

 

 

Vamos a resolver el caso 4 que habíamos planteado, y que se componía de los números 15, 22, 33, 15 y 6

 

Paso 1) o(1) = v(1)
  o(1) = 15



 

 

Paso 2) o(1) > v(2) ? -> No -> o(2) = o(1); o(1) = v(2)
    15 > 22 o(2) = 15 o(1) = 22
 
 
  

 

Paso 3) o(1) > v(3) ? -> No -> o(3) = o(2) ; o(2) = o(1) ; o(1) = v(3)
    22 > 33 o(3) = 15 o(2) = 22 o(1) = 33



 

 

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



 

 

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)
    33 > 6   22 > 6   15 > 6   15 > 6 o(5) = 6
 
 
 
 
Resultado final:
o(1) = 33
 
o(2) = 22
 
o(3) = 15
 
o(4) = 15
 
o(5) = 6
 
 
 
 

3º) Valoración preliminar. Un primer análisis de lo realizado nos permite decir que:

 

  * En los cuatro casos se ha alcanzado un resultado satisfactorio.
 

* El caso cuatro que presentaba dos valores iguales ha quedado bien resuelto. El que entra primero en la rueda de comparación, en este caso v(1), queda detrás al no cumplirse el ser mayor que v(4). Pero a efectos prácticos nos es indistinto que quede detrás o delante.

 

 

 

4º) Plantear relaciones y procesos con letras. Observando los distintos casos, trataremos de plantear qué relaciones y procesos se dan en todos ellos. Se dan las siguientes circunstancias:


Se dan las siguientes circunstancias:

 

  * Vamos extrayendo sucesivamente v(1), v(2), v(3), ..., v(n)
  * Cuando el valor resulta mayor que un orden preexistente se produce un desplazamiento en cadena.
  * Desplazar o no está condicionado por la comparación v(a) con los órdenes o(1), o(2), o(3), ..., o(a-1). Si tras sucesivas comparaciones v(a) es menor que o(a-1) establecemos o(a) = v(a).
 

* En los desplazamientos observamos:

 
 
 
 
 
 
 
En resumen, el desplazamiento va desde o(a) hasta o(m) de forma que:
 
o(a) = o(a-1)
o(a-1) = o(a-2)
.
.
.
o(...) = o(m)

Y finalmente:                       

o(m) = v(a)
 
 
 
5º)   Plantear el procedimiento de resolución. En base a las relaciones observadas, trataremos de plantear un procedimiento general de resolución.
 
 
 
 
 
Procedimiento para desplazar:
 
 
 
 
Bien, hemos llegado a un método o protocolo donde tenemos definidos los pasos a dar. Mezclamos recursos gráficos (flechas) con escritura, en una especie de esquema. De momento no nos interesa su presentación estética, sino su corrección y entender cómo se ha llegado a él. Debemos tener en cuenta que a medida que vayamos programando ganaremos en soltura y podremos resolver problemas más complicados empleando menos tiempo. Al empezar a programar, necesitamos más casos y más esfuerzo.

 

 

 

 

 

 

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.

¿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
 

MARZO - ABRIL 2017

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


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