====== Examen Final - 75.42. Taller de programación I ====== **Cátedra:** Veiga\\ **Fecha:** 2do Cuatrimestre 2007\\ **Día:** 19/02/2008\\ **Tema:** 3 ===== Enunciado ===== - Explique el significado de la palabra **static** cuando es antepuesta a: * Una variable local de una función * A una variable global de un archivo - Escriba un programa ANSI C que reciba por línea de comandos una cadena de la forma "x-mmmmmmmmmmmm|x-mmmmmmmmmm..." donde x es un dígito y mmmmmmmm un título de un menú. El programa debe borrar la pantalla, desplegar el menú y devolver al SO el numero de opcion elegida. Por ejemplo: **menu.exe "1-Ejecutar|2- Salir del Sistema"**\\ debe borrar la pantalla, desplegar el menú:\\ **1-Ejecutar**\\ **2-Salir del Sistema**\\ y devolver el número de opción elegida al SO. Cabe destacar que el programa debe validar que la opción elegida por el usuario sea válida. - Explique el propósito del llamado a Bind y Accept en una aplicación servidor TCP/IP - Escribir un programa ANSI C no recursivo que admita una cadena de dígitos por línea de comandos e imprima todos los elementos de la serie de fibonachi menores que la cifra especificada. - Explique el significado de deadlock. Ejemplifique mediante un pequeño segmento de código. - Defina el operador >> de forma que cargue el contenido de una lista de STL. La carga se iniciará con el ingreso del número de elementos a ingresar. (Suponer que la clase contenida en la lista implementa el operador >> ). - Para la construcción de un compilador es necesario crear una clase denominada TablaDeConstantes que asista al precompilador en cuanto a definición y consulta de Constantes y Macros. Se pide que escriba la declaración de la clase contemplando al menos: constructor, método que define(agrega a la tabla), exists, undefine, etc. Es fundamental especificar los campos de datos necesarios para que todas las definiciones puedan almacenarse (cantidad de constantes y macros indefinidas, con parámetros indefinidas). - Los archivos .h usualmente exhiben una estructura como la siguiente: \\ #ifndef(_XXXXX_) #define _XXXXX_ ... #endif Explique: * El propósito de estas instrucciones * El funcionamiento teórico de #if...#endif - ¿Qué función utiliza para lanzar un nuevo thread?¿Qué parámetros posee? - Escriba una rutina( para ambiente gráfico Windows o Linux) que dibuje dos líneas horizontales dividiendo la ventana en tres franjas iguales.