2.4 Depuración en PSeInt

A continuación vamos a utilizar un ejemplo de un programa implementado en PseInt para ver en él cómo funciona la opción de depuración "paso a paso" y comprobaremos cómo el depurador nos indica por dónde va el flujo del programa en cada momento, circulando a través de sus bucles de repetición según las condiciones impuestas por el programador. En una ventana se muestra el programa, la secuencia de órdenes y el flujo, dirección y orden de ejecución, en otra se va ejecutando propiamente el programa, mostrando los valores y resultados buscados, y a la derecha tenemos el panel "paso a paso" donde podemos elegir varias opciones que te ofrece el depurador. Así, si marcamos la opción que nos muestra el detalle, abajo se nos abre otra ventana donde se explica qué está haciendo el programa en cada momento, donde guarda valores, en qué variables, cuales son los valores que guarda, etc. Vamos a verlo de forma más detallada.

El programa mostrará los números perfectos entre 1 y 500. Un número perfecto es un número natural que es igual a la suma de sus divisores propios positivos (los divisores propios de un número son todos los divisores del mismo, incluyendo el 1, a excepción del propio número).

El código fuente del programa sería el siguiente: PSeInt lo mostraría así:
Algoritmo Números_perfectos
       Escribir "Los números perfectos entre 1 y 500 son:"
       Para n<-1 Hasta 500 con Paso 1 Hacer
             suma_divisores=0
             Para divisor<-1 Hasta n/2 Con Paso 1 Hacer
                   Si n mod divisor=0 Entonces
                         suma_divisores=suma_divisores+divisor
                   FinSi
             Fin Para
             Si n=suma_divisores Entonces
                   Escribir n
             FinSi
       Fin Para
FinAlgoritmo
Código fuente en PSeInt del algoritmo que calcula los números perfectos. Haz clic para ampliar.
Fuente propia

A continuación, para comenzar la ejecución paso a paso del programa tendríamos varias opciones:

  • En el menú superior elegir la opción "Ejecutar" y dentro de ella seleccionar "Ejecutar paso a paso"
  • O bien pulsar la tecla F5
  • O bien hacer clic en el icono de ejecución paso a paso que aparece en la barra de herramientas, arriba a la derecha, representado por dos pies
  • También podemos hacer clic en la pestaña que aparece en la parte lateral derecha de la ventana de PSeInt, junto a los botones de los comandos.

La imagen siguiente muestra algunas de estas posibilidades:

Opciones de Ejecución paso a paso en PSeInt. Haz clic para ampliar.
Fuente propia

Inmediatamente después, el algoritmo comenzará a ejecutarse paso a paso, mostrando la ventana de ejecución del programa y marcando sobre el código fuente, en la ventana principal de PSeInt, qué instrucción se está ejecutando en cada momento.

Ventana de PSeInt cuando comienza la ejecución paso a paso. Haz clic para ampliar.
Fuente propia

También verás en la parte derecha de la ventana de PSeInt un panel lateral con distintas opciones que podrás utilizar para el proceso de ejecución paso a paso. Entre esas opciones encontrarás:

Panel lateral de PSeInt con opciones de ejecución paso a paso.
Fuente propia
  • Un primer botón para detener la ejecución paso a paso por completo.
  • Un botón que será utilizado para hacer pausas durante la ejecución paso a paso.
  • Un botón para poder avanzar instrucción a instrucción.
  • Otro botón que permitirá evaluar expresiones cuando se haga una pausa en la ejecución paso a paso. Este botón estará habilitado solo cuando la ejecución esté pausada.
  • Una barra horizontal que marcará la velocidad a la que se irá ejecutando cada paso. Desplazando esta barra hacia la derecha configurarás PSeInt para que se haga un tiempo de retardo menor entre cada instrucción ejecutada. Por el contrario, desplazándola hacia la izquierda PSeInt tardará más tiempo en pasar de una instrucción a otra.
  • Una opción que configurará PSeInt para que la ejecución paso a paso sea también a nivel de subprocesos (funciones) o solo del programa principal. Es decir, que si está marcada esta opción, los subprocesos también se ejecutarán paso a paso. En caso contrario, los subprocesos se ejecutarán sin hacer paradas o pausas.
  • Otra opción llamada Prueba de Escritorio que mostrará una nueva ventana en la parte inferior de la pantalla en la que se pueden agregar variables o expresiones para seguir los valores que van tomando durante la ejecución.
  • También aparecerá una opción que permitirá mostrar de forma detallada cada paso durante la ejecución.
  • Por último, aparece un botón para acceder a la ayuda de PSeInt.

Caso práctico

Para que puedas practicar con PSeInt y su depurador, te proponemos un segundo ejemplo. Intenta hacer el programa y luego ejecutarlo paso a paso.

En este caso se trata de un programa que calcule con una renta dada de 1.000 euros, 5 combinaciones posibles de consumo de 2 bienes (A y B) que tienen respectivamente unos costes de 20 euros y 7 euros, haciendo que el usuario introduzca cada vez una cantidad a consumir del bien A. También deberá mostrar los costes invertidos respectivamente en los bienes y el sobrante monetario.

¿Te atreves a desarrollarlo tú mismo? ¿No? No te preocupes, te facilitamos la solución para que solo tengas que copiarlo, pegarlo en el editor de PSeInt y comenzar la ejecución paso a paso.