Manual Dev Pascal
Manual Dev Pascal
La interfaz grfica
Las siguientes prcticas de la asignatura se van a realizar con el entorno de programacin DevPascal (http://www.bloodshed.net/devpascal.html) sobre ordenadores con sistemas operativos Windows. La interfaz grfica de usuario de Dev-Pascal tiene el siguiente aspecto:
pag. 1
Esencialmente, tiene los siguientes componentes: 1. Barra de men: a. File (archivo). Contiene opciones para gestionar (crear, abrir, guardar) ficheros fuente de una aplicacin, as como imprimirlos y salir de la aplicacin. b. Edit (editar). Contiene funcionalidades bsicas de edicin (copiar, pegar, cortar y seleccionar texto), hacer/rehacer acciones, plantillas bsicas de programacin (cabeceras de comentario, bucles, etc), insercin de marcadores y acceso. c. Search (buscar). Contiene un motor de bsqueda dentro del cdigo fuente. d. View (ver). Permite gestionar los elementos visibles de la interfaz grfica de usuario. e. Project (proyecto). Facilita la gestin de programas complejos que utilizan varios ficheros fuente. f. Execute (ejecutar). Contiene las funcionalidades necesarias para compilar, ejecutar y depurar el programa.
g. Options (opciones). Este men permite modificar las opciones del compilador (rutas de acceso, generacin de informacin para la depuracin, seleccin del compilador, etc) h. Tools (herramientas). Contiene un conjunto heterogneo de funcionalidades, como el acceso a la ventana de resultados de compilacin, creacin de programas autoinstalables, etc. i. j. Windows (ventanas). Contiene funcionalidades para la gestin de las ventas dentro del programa. Help (ayuda). Contiene informacin acerca del entorno de programacin DevPascal, un Tutorial, informacin sobre Pascal, etc.
2. Barras de herramientas. Comprende la barra de herramientas Principal, la de Compilacin y Ejecucin, Proyecto, Opciones y Ayuda y Especial. Su visibilidad es configurable desde View Toolbars. Todas estas barras de herramientas proporcionan botones de acceso directo a las funcionalidades ms comunes del men de la interfaz grfica de usuario. 3. rea de edicin. Editor de texto que facilita la creacin y modificacin del cdigo fuente del programa. 4. Barra de estado. Proporciona informacin sobre la posicin del cursor en el rea de edicin (fila, columna), el modo de edicin (insertar o reemplazar) y sobre el nmero total de lneas que contiene el fichero de cdigo fuente. 5. Barra de Pestaas. Facilita el acceso a informacin vital, como el resultado del proceso de compilacin del cdigo fuente. 6. Botones de control de ventana. Permite minimizar, maximizar o cerrar las ventanas del cdigo fuente y de la aplicacin.
pag. 2
Configuracin Inicial
Antes de comenzar a trabajar con Dev-Pascal ser til modificar el cdigo que por defecto nos genera el entorno cuando creamos un fichero nuevo. Para ello, en la barra de men, elegir la opcin Options -> Environment options -> Misc. Una vez seleccionado, aparece el siguiente dilogo:
Sustituye el cdigo que aparece por defecto (Default code when creating new source files) por esto:
{ AUTOR: PROYECTO: FICHERO: DESCRIPCION: } program titulo; begin end.
Pulsa sobre el botn en OK. A partir de ahora, cada vez que creemos un fichero nuevo en DevPascal, aparecer ese cdigo inicial, que habr que completar.
pag. 3
pag. 5
Indica que se ha producido un error al tratar de compilar en la lnea 11 en NOTTA. El mensaje de error es IDENTIFIER NOT DEFINED , que significa que ese identificador no ha sido declarado ( notta y nota son nombres distintos). Error de ejecucin Aparece cuando el programa es sintcticamente correcto (no se han producido errores de compilacin), pero alguna de las acciones que trata de realizar es incorrecta y da lugar a un error. Ejemplo:
{ AUTOR: ... PROYECTO: ... FICHERO: errores2.p DESCRIPCION: Programa para observar los errores de ejecucion } program generaErrorEjecucion(input,output); var contador, dato: integer; ficheroDatos: file of integer; begin assign(ficheroDatos,'fichero.dat'); for contador:= 1 to 25 do begin read(ficheroDatos,dato); writeln('El dato numero ',contador,' es ',dato) end; close(ficheroDatos) end.
Se compila el programa fuente como en el ejemplo anterior. Al tratar de ejecutarlo se produce un error de ejecucin porque se ha intentado leer un dato del fichero 'fichero.dat' de un fichero que no existe.
Seguimiento y monitorizacin de programas Hay ocasiones en las que el programa no muestra el comportamiento deseado, pero no acertamos a dar con el error. En esos casos es conveniente disponer de algn tipo de ayuda para averiguar qu partes del programa se han ejecutado correctamente.
pag. 6
Caso 1: Mensajes de seguimiento Si tratamos de ejecutar el siguiente programa, nos encontraremos con que se "queda atascado", y no acaba nunca.
{ AUTOR: ... PROYECTO: ... FICHERO: sinfin.p DESCRIPCION: Programa en bucle infinito } program paraSiempre(input, output); var x: integer; begin x:= 1; while x<>0 do begin x:= x + 1; if x = 5 then x:= 1 end; end.
Una buena idea puede ser insertar ciertos mensajes para tratar de averiguar qu partes del cdigo se ejecutan y detectar si hay algn punto del programa que no se alcanza.
{ AUTOR: ... PROYECTO: ... FICHERO: sinfin.p DESCRIPCION: Programa en bucle infinito con traza } program paraSiempre(input, output); var x: integer; begin x:= 1; writeln('He asignado valor a x.'); while x<>0 do begin x:= x + 1; if x = 5 then x:= 1 end; writeln('He terminado el bucle.') end.
El segundo mensaje no aparece, por lo que podemos deducir que el programa se ha atascado en algn punto entre el primer y el segundo mensaje. Podemos refinar un poco ms, insertando mensajes adicionales, o monitorizar el valor de ciertas variables. Caso 2: Monitorizacin de variables Modificamos el programa anterior de la siguiente forma:
{ AUTOR: ... PROYECTO: ... FICHERO: sinfin.p DESCRIPCION: Programa en bucle infinito con traza } program paraSiempre(input, output); var x: integer; begin x:= 1; writeln('He asignado valor a x.'); while x<>0 do begin x:= x + 1; if x = 5 then x:= 1; writeln ('El valor de x es: ', x) end; writeln('He terminado el bucle.') end.
As descubrimos que, en efecto, el programa no puede finalizar porque x nunca llega a tener valor 0.
DevPas_Orig.bat hace que DevPascal vuelva a utilizar el compilador original Para que esta utilidad funcione, es requisito imprescindible que tanto Dev-Pascal como FreePascal 2.4.2 estn previamente instalados, y adems en los directorios de defecto especificados en sus respectivos instaladores; a saber, "C:\Dev-Pas" para Dev-Pascal y "C:\FPC\2.4.2\bin\i386-win32" para FreePascal 2.4.2. En caso de que estas herramientas se hubieran instalado en otros directorios, habra que sustituir por las correctas todas las apariciones de estas trayectorias en los seis ficheros proporcionados: DevPas_FP242.bat, DevPas_Orig.bat, y dentro de la carpeta data, fpc_orig.cfg, fpc_nw.cfg, devpas_orig.ini y devpas_FP242.ini.
o Cerca del final, hay un apartado encabezado por [History] y otro por [History_Open] o Borrar el contenido de ambos Los caracteres del ASCII extendido no se muestran correctamente en la ejecucin del programa La codificacin de caracteres usada por la interfaz grfica y por la interfaz textual de Windows son distintas. Para que los caracteres del cdigo ASCII extendido se muestren igual, lo ms sencillo es seleccionar en la interfaz textual la misma codificacin que en la interfaz grfica, lo que se consigue ejecutando el siguiente comando en la interfaz textual de Windows: MODE CON CP SELECT=1252 No es posible iniciar una sesin de depuracin En el cuadro de dilogo Options/Compiler options/Linker, elegir Generate debugging information No es posible abrir las ayudas de Insight Debugger Se encuentran en la carpeta de Dev-Pascal, concretamente share/insight1.0/help. Abrir el fichero index.html con el navegador web en la carpeta
pag. 10