Fundamentos de Informática.

Primer Curso de Ingenieros Industriales

Práctica 6 Dev C++. Compilador de C para Windows
1. Introducción
Estas notas sirven de apoyo para la realización de las prácticas de programación en lenguaje C de la asignatura Fundamentos de Informática de primer curso de Ingeniería Industrial. Esta práctica de introducción al lenguaje C pretende mostrar algunos conceptos básicos asociados al programa compilador de C empleado en la asignatura. En este caso DevC++. Dev-C++ es un entorno integrado de desarrollo de programas en lenguaje C (y C++, una forma evolucionada de C) de libre distribución bajo licencia GNU (http://www.gnu.org/copyleft/gpl.html). Este software integra en una única herramienta todo lo necesario para desarrollar programas en lenguaje C, incorporando como elementos más destacados, un preprocesador de lenguaje (Preprocessor) y un compilador de lenguaje C/C++ (Compiler), y un montador de enlaces (Linker). Además de estos elementos básicos, la herramienta proporciona otras funcionalidades muy convenientes, como son una herramienta de depuración de código (Debugger), así como plantillas de código preformateado y librerías de funciones de fabricante. El software Dev-C++ puede descargarse gratuitamente desde la página web de la asignatura, o bien directamente desde la web del desarrollador http://www.bloodshed.net/dev/devcpp.html Los apartados que siguen tratarán de describir de un modo necesariamente no exhaustivo, aunque si suficiente para nuestros propósitos, esta útil herramienta.

2. Nomenclatura y Convenciones
En este texto, así como en otro de informática, se usan convenciones para indicar de forma resumida alguna acción a realizar. También se usan palabras con un sentido definido distinto del que tienen en el lenguaje habitual. En cuanto a las convenciones, éstas permiten sobre todo indicar las pulsaciones de las teclas. Para indicar que se pulsen dos teclas simultáneamente, se escribe tecla1+tecla2. Por ejemplo, Alt+f significa que se ha de pulsar la tecla Alt y, dejando ésta pulsada, pulsamos a continuación la tecla f. Otros conceptos referidos en este enunciado como, Barra de menús, barras de herramientas o ventana de programa y depuración se describen en el apartado siguiente.
1

es comenzar con la escritura de un primer programa en Dev-C++.1. Por este motivo nos centraremos únicamente en los aspectos esenciales que permitan la escritura.> Código fuente 2 . acudiendo en la barra de menús a Archivo -> nuevo . el mejor modo de aprender estas nociones. 3. Arranque de la aplicación En primer lugar arrancaremos la aplicación haciendo click dos veces sobre el icono del escritorio de la aplicación Dev-C++. Para ello es necesario abrir nuevo archivo en blanco de código fuente. Escritura del código fuente En este apartado escribiremos el código de lenguaje C que codifica el programa. el entorno de desarrollo proporciona multitud de funcionalidades que resultaría tedioso y extenso de describir en este documento. Desarrollo de la práctica Posiblemente. compilación. tal como describiremos a continuación. 3. El entorno de desarrollo Dev-C++ tiene el aspecto habitual de una aplicación para el sistema de explotación Windows.2.Fundamentos de Informática. Barra de Menús Barras de Herramientas Ventana de programa Como puede comprobar. Primer Curso de Ingenieros Industriales 3. montaje y depuración de un programa en C.

printf("\n\nLa media de %f y %f es %f\n". system("PAUSE"). Se sugiere que cree un directorio en el disco local C: (Búsquelo pulsando sobre el símbolo . y a continuación cree el directorio con ). Escriba lo siguiente: #include <stdio. La primera vez que guarde el archivo se le solicitará un nombre y una ubicación para el archivo.&a). Primer Curso de Ingenieros Industriales Observará que se despliega una nueva ventana de programas en blanco.b.Fundamentos de Informática. printf("Introduzca el primer numero\n"). scanf("%f". scanf("%f". printf("Introduzca el segundo numero\n"). } Compruebe que ha tecleado correctamente el programa con todos los símbolos que aparecen en él.med. en la barra de menús Archivo->Guardar. med=(a+b)/2. así como una extensión. Para finalizar guarde el programa en un fichero. y guarde allí su fichero con 3 . o bien pulsando ctrl+S.a. sobre la que podrá escribir el código que considere oportuno.med).h> main() { float a.b.&b).

c)”). Compilación En la etapa de compilación el código fuente es comprobado sintácticamente por Dev-C++. Primer Curso de Ingenieros Industriales el nombre que crea oportuno (Verifique que la extensión es “C source files (*. avisa apropiadamente. Si todo va bien debe observar una ventana como la siguiente: 4 .Fundamentos de Informática. Para obtener el programa final. y traducido a lenguaje de máquina (aún no ejecutable. es necesario compilar y montar el programa. o bien Ctrl+F9. pasos que se explican a continuación. tal como veremos a continuación. Con esto se inicia el proceso de compilación. En caso de detectarse errores sintácticos o de concordancia de acuerdo con las reglas del lenguaje C. Para compilar el código fuente que acabamos de teclear basta con acudir a la barra de menús y pulsar Ejecutar-> Compilar. Con esta etapa habrá finalizado la creación de su fichero de código fuente. 3.3. y denominado código objeto). Dev-C++.

3.4. 3. Errores más sutiles o de difícil detección pueden requerir el empleo de la herramienta de depuración que se describirá posteriormente. un fichero con ese mismo nombre. Son por tanto errores que impiden proseguir con el resto de etapas de creación del programa. Los avisos no impiden proseguir con el resto de etapas de creación del programa ejecutable.Fundamentos de Informática. indicando que el fichero es ejecutable directamente por el computador.exe. el código objeto generado en la etapa de compilación es “ensamblado” junto con el código objeto de las funciones de librería para crear un único fichero ejecutable (con extensión . aunque resulta poco recomendable hacerlo.exe) Esta etapa no conlleva generalmente errores.) pueden corregirse de forma sencilla inspeccionando el código del programa con la ayuda de los mensajes del compilador. debe obtener cero errores (Errors) y cero avisos (Warnings) en el proceso de compilación. paréntesis no balanceados. pero con extensión . Ejecución 5 . Los errores son fallos críticos en la escritura o la concepción del programa que impiden al compilador realizar su tarea. compruebe que no ha omitido ningún carácter crítico al teclearlo o ha cometido algún otro error al copiar el código fuente que se le suministra. variables no declaradas. Si detecta errores o avisos en el proceso de compilación de su programa. Montaje En la etapa de Montaje. debe obtener en el mismo directorio en el que ha guardado el código fuente de su programa. Los avisos hacen referencia a incongruencias no críticas en el código (tipos de datos no concordantes. Si todo es correcto. Una buena práctica de programación aconseja modificar el código fuente en lo necesario (generalmente cambios menores) para evitar la aparición de avisos en el proceso de compilación. etc.5. Los errores más simples (ausencia de punto y coma al final de una sentencia. etc). y deben ser reparados. Primer Curso de Ingenieros Industriales Es decir. variables declaradas pero no utilizadas. salvo que hayamos omitido o confundido algunas de las librerías de funciones que emplee nuestro programa.

bien porque no realiza las tareas para las que ha sido concebido. Primer Curso de Ingenieros Industriales La ejecución del programa es el paso final. (O bien pulsando Shift+F4). entre las que cabe destacar: 1. Para ello coloque el cursor con el ratón sobre cualquier línea del programa.b.Fundamentos de Informática.+F10). Con ello se puede verificar si las variables toman el valor esperado en cada paso de ejecución y actuar en consecuencia. Resulta sin embargo conveniente que en un principio realice estas tareas por separado hasta adquirir una cierta práctica. en primer lugar hay que ejecutar el programa en modo de depuración. 6 . montar y ejecutar de nuevo el programa. y permite comprobar el funcionamiento del programa. 3. Para esto último debe asegurarse de que se encuentra en el directorio local donde ha compilado y generado el programa ejecutable. aquellas tareas encaminadas a la localización y eliminación de errores (‘bugs’ en su denominación en inglés) de cualquier naturaleza en el código de un programa. y ejecutar el programa directamente en línea de comandos. Dev-C++ tiene una opción para realizar estas tres tareas en un sólo paso pulsando en la barra de menús Ejecutar -> Compilar y Ejecutar. Cada vez que realice alguna modificación al programa. Un método alternativo consiste en abrir una ventana de consola MS-DOS en el sistema operativo. Depuración Se entiende por depuración de un programa. bien porque presenta errores en tiempo de ejecución.2 de escritura del código fuente.6. y pulse sobre la barra de menús depurar-> ejecutar hasta el cursor. Para usar esta herramienta. por ejemplo float a. el código debe ser modificado volviendo al paso 3. Una forma sencilla de hacerlo es emplear la herramienta ejecutar hasta el cursor. tecleando el nombre del programa + ENTER. Para ejecutar el programa. Inspección de variables Esta herramienta permite mostrar el valor de cualquier variable del programa mientras éste se ejecuta.med. puede pulsar en la barra de menús Ejecutar -> Ejecutar (o bien Ctrl. deberá compilar. Si la ejecución del programa no es satisfactoria. Dev-C++ proporciona varias herramientas para este propósito.

La ejecución paso a paso se activa simplemente pulsando sobre la opción Siguiente Paso. las opciones añadir y remover variable vigilada. Puede repetir el procedimiento con otras variables (pruebe por ejemplo con las variables a y b). permiten respectivamente ampliar y reducir la lista de variables que queremos inspeccionar. 2. bajo la lengüeta depuración. que puede encontrar en la ventana de depuración de la parte 7 . pulse sobre Añadir variable vigilada. como su nombre indica. De este modo. y ante la pregunta “nombre de la variable”.Fundamentos de Informática. Primer Curso de Ingenieros Industriales Observará que se despliega una ventana de depuración en la parte inferior de la pantalla con diferentes opciones. Ejecución paso a paso Ésta es otra útil herramienta que. El valor de las variables inspeccionadas puede visualizarlo en la ventana desplegada en la parte izquierda de la pantalla. permite obtener la traza del programa y verificar el comportamiento del mismo. En conjunción con la herramienta de inspección de variables. introduzca la variable med. permite ejecutar el programa instrucción a instrucción de modo que sea posible comprobar el comportamiento del mismo ante cada una de ellas. Entre ellas.

time_t s. podrá observarse el valor de cada una de ellas en cada paso de ejecución.h> #include <time. i=0. en la barra de menús depurar. 4. Un programa más complejo Ahora que ha escrito su primer programa en C.h> #include <stdlib. resaltándose la línea en la que se encuentra actualmente el programa y. srand((unsigned int) s). Pruebe a programar el siguiente juego #include <stdio. puede intentarlo de nuevo con un programa algo más complejo. si se ha activado la inspección de variables. o bien pulsando Shift+F7.n. Podrá observar como cada vez que se avanza un paso.i. nal=rand()%50.h> main() { int nal.Fundamentos de Informática. time(&s). Primer Curso de Ingenieros Industriales inferior de la pantalla. 8 . se ejecuta una sóla instrucción del programa.

system("PAUSE"). printf("El numero era %d\n\n".nal). Es lo que se denomina indentación. scanf("%d". }while(i<6 && n!=nal). 9 . else printf("El numero es menor\n"). Primer Curso de Ingenieros Industriales printf("Adivina un numero entre 0 y intentos\n").Fundamentos de Informática. do{ printf("Introduzca un numero\n"). system("PAUSE"). printf("\n Fallaste !!\n"). Aunque no es imprescindible. Tiene 6 En esta ocasión puede observar que algunas líneas están desplazadas respecto al margen izquierdo. if(n==nal) {printf("ACERTASTE !!\n"). se recomienda que respete la indentación. exit(0). i++.&n).} else if(n<nal) printf("El numero es mayor\n"). ya que proporciona mayor legibilidad al código (en su debido momento comprenderá la importancia de adquirir está práctica como hábito de programación). } 50.