El paso 6 de cómo hacer un algoritmo indica:
Ejecutar a mano (en el papel) nuestro algoritmo y corregir los errores.
Al "terminar" de detallar nuestro algoritmo (paso 5 de cómo hacer un algoritmo), es necesario que verifiquemos que está completo y es correcto. La forma de hacer esto es simulando la ejecución del algoritmo llevando un registro de las entradas, salidas, valores que contienen nuestras variables y el flujo de la ejecución.
Por ejemplo, dado el siguiente ejemplo (muy sencillo) de un algoritmo para efectuar la suma de dos números:
1- Mostrar el mensaje "Ingresa un número"
2- Leer el dato ingresado y guardarlo en la variable num1
3- Mostrar el mensaje "Ingresa otro número"
4- Leer el dato ingresado y guardarlo en la variable num2
5- Sumar los dos números y colocar el resultado en la variable suma
6- Mostrar en pantalla el mensaje "La suma de los dos números es ", y mostrar el resultado de la suma
Podemos llevar la siguiente "ejecución" de nuestro algoritmo (comenzando con el paso 1)
Paso actual: 1
Salida actual:
Ingresa un número
Después "ejecutamos" el segundo paso:
Paso actual: 2
num1 = 1234
Salida actual:
Ingresa un número
1234
Nótese que en la sección donde se simula la salida también anotamos lo que el usuario podría teclear (en este caso, teclearía "1234"). Ese valor que ingresó el usuario es colocado en la variable llamada "num1", por ello también registramos que ya tenemos una variable con ese nombre y que su valor actual es "1234".
A continuación ejecutamos el paso 3 y 4, donde registramos una nueva variable (num2) y el valor que debe almacenar.
Paso actual: 4
num1 = 1234
num2 = 345
Salida actual:
Ingresa un número
1234
Ingresa otro número
345
Ahora "ejecutamos" el paso 5.
Paso actual: 5
num1 = 1234
num2 = 345
suma = 1579
Salida actual:
Ingresa un número
1234
Ingresa otro número
345
Y por último ejecutamos el paso 6.
Paso actual: 6
num1 = 1234
num2 = 345
suma = 1579
Salida actual:
Ingresa un número
1234
Ingresa otro número
345
La suma de los dos números es 1579
Ventajas
Hacer la simulación de la ejecución del algoritmo de esta manera nos da estas ventajas:
1- Tenemos registrada la ejecución a lo largo del tiempo. Así que podemos entender el comportamiento real del algoritmo. 2- Podemos llevar el registro de cómo han cambiado los valores que tienen nuestras variables. Para ello, si registramos en papel la ejecución de nuestro programa, al cambiar el valor de una variable podemos tachar el valor antiguo y anotamos el nuevo valor. Por ejemplo:
Paso actual: 130 contador =
1,2,3,4,5,6,7
Identificación de errores
Al ejecutar el algoritmo de forma manual debemos tener en cuenta que debemos ejecutar lo que el algoritmo dice, no lo que se supone debe hacer.
Esto es muy importante ya que al ejecutar el algoritmo de forma manual y con cuidado deberemos ser capaces de identificar errores sutiles que son difíciles de ver.
Por ejemplo, supongamos que tenemos el siguiente fragmento de un algoritmo:
39- Sacar el promedio de los 3 números al sumar los 3 números y dividirlo entre 3, y el resultado de esa operación lo guardamos en una variable.
39.1- promedio <-- numero1 + numero2 + numero3 / 3
En el paso 39 describimos qué es lo que se supone el algoritmo debe hacer, mientras que en el paso 39.1 especificamos cómo se lleva a cabo.
Si nosotros ejecutamos lo que se supone que el algoritmo debe hacer y no ejecutamos los pasos documentados de cómo se lleva a cabo se nos escapará que el paso 39.1 es incorrecto.
El error está en que, dada la precedencia de los operadores, primero se ejecutará la división de la variable "numero3" entre 3, y después se le sumarán los valores de las variables "numero1" y "numero2", lo cual da un resultado incorrecto.
Una vez que ejecutamos lo que el algoritmo dice (no lo que se supone debe hacer), tendremos la información necesaria para corregir nuestro algoritmo y continuar probándolo, quedando ese fragmento como:
39- Sacar el promedio de los 3 números al sumar los 3 números y dividirlo entre 3, y el resultado de esa operación lo guardamos en una variable.
39.1- promedio <-- (numero1 + numero2 + numero3) / 3
En esta versión corregida actualizamos la fórmula en el algoritmo para establecer que primero se debe hacer la suma de los 3 números y por último se deberá hacer la división entre 3.
La ejecución manual de nuestro algoritmo lo deberemos hacer varias veces, con datos de entrada de ejemplo tales que sabremos de antemano qué salida debe darnos.
Solamente cuando la ejecución de todos esos casos de prueba nos dan el resultado de salida correcto podremos decir que nuestro algoritmo (aparentemente) está correcto. Y digo que "aparentemente" está correcto debido a que, dependiendo de la complejidad del mismo, quizás no lo hayamos probado de manera exaustiva, o que quizás no hayamos podido anotar todas las posibilidades y caminos alternativos que podría nuestro algoritmo tomar. Sin embargo, sí podemos asegurar que tenemos un algoritmo "sólido" a comparación de no haberlo tenido.