Cómo comprobar algoritmos. Verificación mental y verificación (prueba) por seguimiento escrito. (CU00230A)

Resumen: Entrega nº29 del curso Bases de la programación Nivel II.
Codificación aprenderaprogramar.com: CU00230A

 

 

VERIFICACIÓN MENTAL DE ALGORITMOS

La verificación mental consiste en “recorrer” el algoritmo mentalmente. Durante ese recorrido hacemos el seguimiento de:

· El flujo del programa.

· Los valores de las variables.

· Procesos relevantes que hayan tenido lugar como extracción o almacenamiento de datos en dispositivos externos.

Anagrama aprenderaprogramar.com

 

Para el caso planteado de doble anidamiento, podemos realizar una verificación mental sin demasiado problema puesto que tenemos tres variables y dos bucles. Sin embargo, para algoritmos complejos nuestra capacidad mental no va a ser suficiente por lo que esta técnica será útil sólo para evaluar procesos sencillos.

 

 

VERIFICACIÓN POR SEGUIMIENTO ESCRITO

La verificación por seguimiento escrito vendría a ser plasmar el seguimiento mental que hacemos sobre papel. Tiene la ventaja de que requiere un mínimo empleo de nuestra memoria, ya que de todo va quedando registro escrito, así como de evitarnos el tener que empezar desde el principio si nos perdemos, ya que siempre podemos volver a empezar desde el último punto escrito del que estamos seguros.

Para el caso planteado el seguimiento escrito vendría a reflejar lo siguiente:

Entrada a bucle controlado por i, que tomará valores de 1 a 5.

i vale 1.

Entra a bucle controlado por j, que tomará valores de 1 a 5.

 j vale 1.A vale i * j = 1 * 1 = 1. Se muestra A. j progresa a 2.

A vale i * j = 1 * 2. Se muestra 2. j progresa a 3.

A vale i * j = 1 * 3 = 3. Se muestra 3. j progresa a 4.

A vale i * j = 1 * 4 = 4. Se muestra 4. j progresa a 5.

A vale i * j = 1 * 5 = 5. Se muestra 5. j progresa a 6 y supera el valor preestablecido, por lo que se sale del bucle.

i progresa a 2. Entrada a bucle controlado por j, que tomará valores de 1 a 5. j vale 1. A vale i * j = 2 * 1 = 2. Se muestra 2. j progresa a 2.

A vale i * j = 2 * 2 = 4. Se muestra 4. j progresa a 3.

A vale i * j = 2 * 3 = 6. Se muestra 6. j progresa a 4.

A vale i * j = 2 * 4 = 8. Se muestra 8. j progresa a 5.

A vale i * j = 2 * 5 = 10. Se muestra 10. j progresa a 6 y supera el valor preestablecido, por lo que se sale del bucle. i progresa a 3. Entrada a bucle controlado por j, que tomará valores de 1 a 5. j vale 1.

A vale i * j = 3 * 1 = 3. Se muestra 3. j progresa a 2.

A vale i * j = 3 * 2 = 6. Se muestra 6. j progresa a 3.

A vale i * j = 3 * 3 = 9. Se muestra 9. j progresa a 4.

A vale i * j = 3 * 4 = 12. Se muestra 12. j progresa a 5.

A vale i * j = 3 * 5 = 15. Se muestra 15. j progresa a 6 y supera el valor preestablecido, por lo que se sale del bucle. i progresa a 4. Entrada a bucle controlado por j, que tomará valores de 1 a 5. j vale 1.

A vale i * j = 4 * 1 = 4. Se muestra 4. j progresa a 2.

A vale i * j = 4 * 2 = 8. Se muestra 8. j progresa a 3.

A vale i * j = 4 * 3 = 12. Se muestra 12. j progresa a 4.

A vale i * j = 4 * 4 = 16. Se muestra 16. j progresa a 5. A vale i * j = 4 * 5 = 20. Se muestra 20. j progresa a 6 y supera el valor preestablecido, por lo que se sale del bucle. i progresa a 5. Entrada a bucle controlado por j, que tomará valores de 1 a 5. j vale 1.

A vale i * j = 5 * 1 = 5. Se muestra 5. j progresa a 2.

A vale i * j = 5 * 2 = 10. Se muestra 10. j progresa a 3.

A vale i * j = 5 * 3 = 15. Se muestra 15. j progresa a 4.

A vale i * j = 5 * 4 =    = 20. Se muestra 20. j progresa a 5.

A vale  i * j = 5 * 5 = 25. Se muestra 25. j progresa a 6 y supera el valor preestablecido, por lo que se sale del bucle. i progresa a 6 y supera el valor preestablecido, por lo que se sale del bucle.

 

El lenguaje que se emplea en este seguimiento escrito es libre y puede “soslayar” algunos pasos que se consideren no relevantes. Puede emplearse un lenguaje abreviado que evite la repetición de texto. Por ejemplo:

(-->)Bucle 01  i ->1a 5. i = 1.  (-->)Bucle 02  j ->1a 5. j = 1. A = 1. j = 2. A = 2. j = 3. A = 3. j = 4.  A = 4. j = 5. A = 5. j = 6. Fin bucle 02  (<--)i = 2.  (-->)Bucle 03.  j ->1a 5. j = 1.  A = 2. j = 2. A = 4. j = 3.     A = 6. j = 4. A = 8. j = 5. A = 10. j = 6. Fin bucle 03  (<--)i = 3.  (-->)Bucle 04. j ->1a 5. j = 1. A = 3. j = 2.    A = 6. j = 3. A = 9. j = 4. A = 12. j = 5. A = 15. j = 6. Fin bucle 04  (<--). i = 4.  (-->)Bucle 05  j ->1a 5. j = 1. A = 4. j = 2. A = 8. j = 3. A = 12. j = 4. A = 16. j = 5. A = 20. j = 6. Fin bucle 05  (<--)i  = 5.  (-->)Bucle 06        j ->1a 5. j = 1. A = 5. j = 2. A = 10. j = 3. A = 15. j = 4. A = 20. j = 5. A = 25. j = 6. Fin bucle 06  (<--)Fin bucle 01 (<--)

 

Abreviando o no esta técnica resulta repetitiva, de lectura no demasiado agradable y un tanto tediosa. Su uso se limita por tanto a alguna aplicación de fines didácticos o a procesos poco largos en los que mentalmente “nos enrollamos” y decidimos escribir un pequeño seguimiento para verificar que se cumple lo esperado.

 

 

 


 

 

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
 

MAYO - JUNIO 2017

1. Java / J2EE
2. Entornos Oracle
3. Entornos SQL Server
4. .NET, C#
5. JavaScript, jQuery
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