Prácticas de Laboratorio. E.D.I. Curso 2003/2004 Guión 1: Entorno de trabajo Estructura de Datos y de la Información. Prácticas de Laboratorio Guión 1: Entorno de trabajo. ENTORNO DE PROGRAMACIÓN TURBO PASCAL 1. Componentes del entorno Turbo Pascal. Turbo Pascal no es sólo un compilador de un lenguaje de programación, sino un completo entorno integrado compuesto por todos los componentes necesarios para desarrollar programas. Contiene, además del compilador, utilidades y herramientas. Estos elementos están integrados de modo que puede llamarse fácilmente a cualquiera de los módulos, durante el proceso de programación, desde cualquier otro, por ejemplo: • • • • Un potente editor, que permite escribir y modificar programas, con la posibilidad de copiar, cortar, pegar, buscar y reemplazar texto. Un compilador del lenguaje Turbo Pascal que cumple, salvo pequeñas excepciones, la sintaxis y semántica de Pascal estándar. Un depurador que permite realizar un seguimiento de los programas, ejecutándolos paso a paso, deteniendo la ejecución del programa e inspeccionando sus objetos. Una ayuda a la que se puede acceder desde el entorno, que permite la consulta rápida de la sintaxis y semántica de Turbo Pascal. Este entorno está controlado por menús, es decir, el programador puede elegir en cada momento entre una serie de opciones organizadas jerárquicamente. Así, en algunos casos, al escoger una opción se abre un submenú que muestra las nuevas (sub)opciones disponibles. En las sesiones de laboratorio se utilizará la versión 7.0. 2. Procedimiento de entrada y salida al entorno Turbo Pascal. Entrada. En primer lugar tenemos que arrancar el entorno, para ello: • Desde el escritorio, se selecciona el icono de Turbo Pascal. • Si no existe el icono, pinchar en el botón de Inicio, seleccionar la opción Ejecutar y escribir el camino o ruta donde se encuentra el fichero turbo.exe (por defecto, c:\tp\bin\turbo.exe). Aparece la pantalla inicial. La línea superior es el menú, es decir, el conjunto de opciones que se pueden ejecutar. En el centro aparece la ventana de edición. Salida. Para salir del entorno de programación, se accede al menú File y se selecciona la opción Exit. 3. Creación de programas: edición. Se realiza escribiendo las sucesivas líneas del programa, terminando cada línea pulsando la tecla ↵. Área de Lenguajes y Sistemas Informáticos Página 1 Prácticas de Laboratorio. E.D.I. Curso 2003/2004 Guión 1: Entorno de trabajo Dentro del menú principal existe la opción Edit (Editar) que ofrece algunas posibilidades complementarias del editor que permiten copiar y pegar fragmentos de texto. Una vez situado en el editor comience a escribir el siguiente programa: Program primero; Begin Writeln(‘Hola’); Writeln(‘Bienvenido a Turbo Pascal 7.0’); End. Terminada la edición y corregidos los posibles errores (utilizando las órdenes del editor), puede hacer dos cosas: guardarlo en un disco o compilarlo. El orden lógico, para evitar pérdidas indeseadas, sería guardar el programa fuente en disco (Save), darle nombre en este momento, compilar el programa fuente (Compile) y ejecutar el programa compilado (Run). 4. Grabación de programas en disco. Para no perder el trabajo que se va realizando, es necesario ir grabando el texto escrito periódicamente. Para ello debe seleccionar la opción Save del menú File. Se abrirá un cuadro de diálogo que le solicita el nombre con el que desea guardar el archivo. El sistema por defecto almacena los archivos en el directorio en el que se encuentra el programa turbo.exe. Nosotros cambiaremos el directorio por defecto pasando a ser c:\trabajos. El nombre que daremos al archivo será, por ejemplo, Hola (Turbo Pascal le asignará la extensión .PAS), a continuación pulsar Intro. 5. Compilación. En esta fase de desarrollo del programa vamos a realizar la traducción de nuestro programa fuente en Pascal (almacenado en un archivo con extensión .PAS) a un programa objeto, ejecutable, que al compilarse en el disco tendrá la extensión .EXE. Para compilar se selecciona el menú Compile. Dentro de este menú se elige la opción Compile. Aparece un cuadro de diálogo y se visualiza el proceso de compilación del programa. Si no ocurre ningún error, el mensaje “Compile Successful: press any key” parpadea en el cuadro hasta que se pulse una tecla. Si ocurre un error Turbo Pascal se detiene, posiciona el cursor en el punto donde ocurrió el error y visualiza un mensaje de error en la parte superior del editor. Una vez corregido el error, hay que volver a salvar y compilar el programa. Un error de compilación o de sintaxis ocurre cuando se viola una regla de la sintaxis de Pascal. Errores típicos en tiempo de compilación: • • • • • ‘;’ expected (falta un ;) unknown identifier (identificador desconocido, no declarado) No declarar todas las variables, tipos de datos, constantes y subprogramas, antes de utilizarlo. Parejas begin..end desequilibradas. Asignación de tipos de datos incompatibles. Área de Lenguajes y Sistemas Informáticos Página 2 Prácticas de Laboratorio. E.D.I. Curso 2003/2004 Guión 1: Entorno de trabajo 5.1. Elección del destino de la compilación. Durante la depuración, la compilación se puede efectuar almacenando el programa ejecutable en memoria RAM, lo que permite una mayor velocidad. Una vez que el programa esté totalmente depurado puede compilarse en disco, creándose el archivo ejecutable. Se puede elegir compilar el programa en disco o en memoria con la orden Compile/Destination. Si se elige compilar en disco, el programa objeto ejecutable se almacena en disco con el mismo nombre que el archivo en el que se encuentre el programa fuente, pero con la extensión .EXE y se almacena en el mismo directorio que los archivos fuente o en el directorio EXE y TPU (Options/Directories) si se especifica. Si se elige compilar en memoria, el programa se almacena en memoria, y si no lo graba, se pierde cuando salga de Turbo Pascal. Una vez que hemos compilado (en memoria o en disco) el programa con éxito ya se puede ejecutar. 5.2. Otras opciones de compilación. • Compilar todos los archivos modificados (Compile/Make) • Compilar todos los archivos de su proyecto (Compile/Build) • Compilar y ejecutar su programa (Run/Run) 6. Ejecución. Para ejecutar un programa hay que acceder a la opción Run del menú Run. La salida de nuestro programa se visualiza en la ventana de salida, en nuestro caso: Hola Bienvenido a Turbo Pascal 7.0 Cuando el programa termine de ejecutarse, el entorno Turbo Pascal reaparece y está listo para otro ciclo: editar, compilar y ejecutar. Si se quiere ver la ventana de salida, se pulsan las teclas ALT+F5 Si ocurriera un error mientras el programa se está ejecutando, los llamados errores de ejecución, se visualiza en pantalla un mensaje similar a: Run-time error <numerror> at <segmento>:<offset> donde: <numerror> <segmento>:<offset> es el código del error es la dirección de memoria donde ocurre el error. Los errores de ejecución son problemas que el compilador no puede detectar por anticipado, pero que originan la parada del programa antes de su terminación. Valores de entrada imprevistos, cálculos no válidos (división por cero), problemas en acceso a disco, etc., producen errores de ejecución. 7. El depurador. Durante el proceso de compilación y ejecución de un programa es frecuente que se originen errores que no sean fáciles de corregir. Para ayudar al programador en este caso, el depurador integrado de Turbo Pascal permite analizar el funcionamiento de nuestro programa, ejecutarlo paso a paso, Área de Lenguajes y Sistemas Informáticos Página 3 Prácticas de Laboratorio. E.D.I. Curso 2003/2004 Guión 1: Entorno de trabajo examinar y modificar variables y fijar puntos de ruptura (en los que se detiene la ejecución del programa de forma condicional o incondicional, permitiendo inspeccionar el estado del mismo). Para ejecutar el programa paso a paso, sin entrar en las llamadas a subprogramas, elegimos la opción Step over del menú Run o simplemente pulsamos repetidamente la tecla F8, viendo como las líneas del programa se van iluminando y ejecutando sucesivamente. Para ejecutar paso a paso, pero entrando en las llamadas a subprogramas, elegimos la opción Trace into o pulsamos repetidamente la tecla F7. La opción Go to cursor nos permite especificar un punto temporal de parada en el programa. Tenemos que situar el cursor en una línea específica del programa y pulsar F4. Turbo Pascal ejecutará el programa hasta que se alcanza la línea de programa que contiene el cursor, en cuyo punto el control retorna al programador. Esta operación facilita saltar sobre bucles y otras secciones de código tediosas. La ejecución paso a paso tiene su complemento perfecto con la inspección de constantes, variables y parámetros, que nos permitirá examinar los valores que tienen estos objetos tras la ejecución de cada instrucción. Para ello hay que abrir una ventana de inspección llamada Watches. Para introducir nuevos identificadores elegimos Debug y Add Watch . El depurador permite también detener la ejecución de un programa para la inspección de objetos sin necesidad de ejecutar paso a paso. Esto se hace estableciendo un punto de ruptura Breakpoint. Para añadirlo elegimos Debug y Add Breakpoint. Ejercicios propuestos 1. Cree, utilizando el editor de Turbo Pascal, un fichero que contenga el siguiente programa: Program ejercicio1; Begin Writeln (‘Esta es una prueba’); End. 2. Cambie el directorio de trabajo por defecto (File/Change Dir...), haciendo que el nuevo directorio sea c:\trabajos. 3. Grabe este fichero en disco con el nombre prog1 y salga de Turbo Pascal. Vuelva a entrar y recupere el fichero. 4. Compile y ejecute el programa. 5. Cree otro fichero prog2 que contenga el siguiente programa: Program ejercicio2; Type Rango = 1..10; Var x,y : Rango Begin Write(‘Introduzca un número entre 1 y 10: Readln(x) If x mod 2 = 0 Then writeln (‘El número es par’); Else writeln (‘El número es impar’); End. ’); 6. Grabe y compile el programa; observe los errores de compilación. 7. Corrija el programa. Vuelva a grabar y compilar. Ejecute el programa dando a la variable x un valor superior a 10. 8. Observe lo que ha ocurrido y aporte una solución para validar el dato de entrada. Área de Lenguajes y Sistemas Informáticos Página 4 Prácticas de Laboratorio. E.D.I. Curso 2003/2004 Guión 1: Entorno de trabajo 9. Añada al programa anterior las sentencias siguientes: For x:=1 to 10 do Begin y:=x*x; Writeln(y); End; 10. Compile el programa y ejecútelo. 11. Repita la ejecución activando el comprobador de rangos (Options/Compile). Observe el error de ejecución que se produce. 12. Corrija el programa. Vuelva a grabar, compilar y ejecutar el programa. 13. Cree otro fichero prog3.pas que contenga el siguiente programa: Program Factorial; Var Fact: Integer; N,i: Byte; Begin Write (‘Introduce un número’); Readln(n); Fact:=1; i:=1; While i<=n do Begin fact:=fact*i; i:=i+1; End; Writeln(‘El factorial de ‘,n,’ es: ‘,fact); End. 14. Establezca un breakpoint (Debug/Add Breakpoint) en la línea While i<=n do y ejecute el programa (introduciendo el valor 6 en la variable n) paso a paso observando el valor de las variables (Debug/Add Watch) n, i y fact. 15. Repita el apartado anterior para un valor de n=10. 16. Detecte el error y corríjalo. Área de Lenguajes y Sistemas Informáticos Página 5