Ejercicios. Iniciar una sesión de trabajo en GNU-Linux (no gráfica). Abra una terminal remota en el CC de la ETSII para realizar los ejercicios (ssh). Abra una terminal local para editar el fichero de respuestas. El mismo ha de ser un fichero de texto plano (Editor de textos: vi,...). Utilice el comando man para buscar la descripción de un comando o para ver sus opciones. Asumiendo la jerarquía de directorio de las prácticas anteriores, sitúese en el directorio 'practicas' de 'IB' (cd) y cree un nuevo directorio denominado 'prc07' (mkdir). Este será el directorio actual durante la realización de la práctica número siete (cd). Acceda al servidor anónimo de ficheros de la ETSII (ftp.etsii.ull.es) (ftp) y descargue el fichero 'asignas/IB10/prct07.tgz' que contiene los ficheros de código fuente para la realización de la misma. Extraiga el contenido del fichero 'prct07.tgz'(tar -zx...). Compilación En el directorio actual cree un directorio 'src' (source) para almacenar los ficheros que contienen el código fuente C++ (mkdir). El fichero fuente 'grados.cc' contiene una implementación en C++ del algoritmo que transforma grados Fahrenheit a grados Centígrados. Coloque el archivo en el directorio 'src' (mv). Muestre el contenido del fichero 'grados.cc' sin abrirlo (cat). ¿En qué lenguaje está escrito? C++ ¿Qué significado tienen las líneas 1-27? Comentarios ¿Qué significado tiene la línea 29? Libreria E/S (Archivo de cabecera) ??? ¿Cómo se denomina a las líneas de la 31 a la 40? Declaración de tipos, variables, ... ¿Cómo se denomina a las líneas de la 42 a la 62? Cabecera y cuerpo de función principal http://es.wikipedia.org/wiki/Make http://nereida.deioc.ull.es/~cleon/doctorado/doc01/herramientas/mk.html El fichero 'Makefile' contiene un ejemplo de tareas a realizar para desarrollar un proyecto software. Coloque el archivo en el directorio 'src' (mv). Muestre el contenido del fichero 'Makefile' sin abrirlo (cat). ¿En qué lenguaje está escrito? Lenguaje de comandos para la shell ¿Qué significado tienen las líneas 1-2? Comentarios ¿Cómo se denomina a las líneas de la 3 a la 5? Definicion de variables ¿Cuál es el objetivo de la línea 9? Crear ejecutable basado en grados.cc con directiva de depuración ¿Cuál es el objetivo de la línea 12? Crear ejecutable basado en grados.cc sin directiva de depuración ¿Cuál es el objetivo de la línea 15? Eliminar ficheros de objetivos anteriores Compile el programa 'grados.cc' para obtener un ejecutable (make ...). make ¿Describa qué ocurre? Se indica que hay un error en la linea 58 del fichero grados.cc, en concreto que falta un ; antes de esta linea ¿Cómo se soluciona el error en tiempo de compilación que se produce? Modificando el fichero grados.cc y poniendo el ; en la linea anterior Depuración Una vez obtenido el ejecutable. Compruebe su correcto funcionamiento. Indique qué resultado se obtiene para 68 grados F. ¿Es correcto el valor que muestra el programa? NO, debido a que la operacion 5 / 9 se hace como division entera (= 0) ¿Cómo se soluciona el error que se produce?. Haciendo la operacion en real (5.0 / 9 por ejemplo) Compile el programa 'grados.cc' con opciones de depuración (make ...). make depurar http://www.chuidiang.com/clinux/herramientas/makefile.php http://arco.esi.uclm.es/~david.villa/doc/repo/make/make.html?iframe=true&width=80%&height=80% Ejecute el programa objeto obtenido con el depurador de GNU (gdb ...). http://arco.esi.uclm.es/~david.villa/doc/repo/gdb/gdb.html http://ldc.usb.ve/~figueira/Cursos/ci3825/taller/material/gdb.html http://blog.drk.com.ar/2009/conociendo-gdb http://www.wikilearning.com/tutorial/introduccion_a_gnu_debugger_gdb-analizando_el_programa/422-5 ¿Qué comando le permite mostrar el código fuente? list ¿Qué valor contiene la variable 'f'? print f ¿Cómo se establece un punto de ruptura (breakpoint)? break [fichero:]funcion o break "numero de linea" ¿Qué comando le permite ejecutar paso a paso? next / step ¿Cómo se sale del depurador? quit http://www.scenebeta.com/tutorial/documentando-el-codigo-con-doxygen http://www.uca.es/softwarelibre/talleres/presentacionDoxygen http://trevinca.ei.uvigo.es/~jgarcia/FP/manuales/manualDoxygen.pdf Documentación En el directorio actual cree un directorio 'doc' (documentación) para almacenar los ficheros que contendrán la documentación(mkdir). Genere la documentación asociada al programa doxygen ...). ¿Cómo se genera el fichero de configuración? doxygen -g ¿Qué información del fichero fuente se incluye en la documentación generada? directivas en forma de comentarios, .... ¿En qué formato se genera la documentación? HTML, LATEX, RTF, Postscript, PDF, Unix man pages, Windows help compressed HTML, XML