324 T. P. Lapso 2012/1 1/8 UNIVERSIDAD NACIONAL ABIERTA VICERRECTORADO ACADÉMICO ÁREA INGENIERÍA TRABAJO PRÁCTICO: ASIGNATURA: COMPUTACIÓN II CÓDIGO: 324 FECHA DE ENTREGA DE LAS ESPECIFICACIONES AL ESTUDIANTE: A partir de la primera semana de aplicación de pruebas, a través del asesor de la asignatura en su centro local FECHA DE DEVOLUCIÓN DEL INFORME POR EL ESTUDIANTE: Adjunto a la Segunda Prueba Integral NOMBRE DEL ESTUDIANTE: CÉDULA DE IDENTIDAD: CORREO ELECTRÓNICO: CENTRO LOCAL: CARRERA: 236 NÚMERO DE ORIGINALES: FIRMA DEL ESTUDIANTE: LAPSO: 2012/1 UTILICE ESTA MISMA PÁGINA COMO CARÁTULA DE SU TAREA O TRABAJO RESULTADOS DE CORRECCIÓN: OBJ N 1 2 3 4 5 6 7 8 9 10 11 12 13 0:N 1:L L
324 T. P. Lapso 2012/1 2/8 ESPECIFICACIONES DEL TRABAJO PRÁCTICO A continuación se describen las especificaciones del Trabajo Práctico que usted deberá desarrollar para lograr los objetivos 4, 5 y 6. 1- OBJETIVO 4 Se quiere hacer un análisis matemático basado en la conectividad de las vías del país, brindando una herramienta para la planificación de nuevas infraestructuras. Se consideran todas las capitales de los estados con conexión terrestre. Para construir el grafo se estableció una comparación entre los arcos y los nodos de las rutas, empleando ciertas medidas de conectividad, las cuales se describen a continuación. Mapa de Venezuela Medidas de conectividad: Para calcular la conectividad se consideran los siguientes índices: 1- Índice de Beta de Kanski: Indica cómo aumenta la conectividad al aumentar los números de arcos. Se expresa como: β = a/n
324 T. P. Lapso 2012/1 3/8 Donde a es el número considerado de arcos y n, el número total de nodos. 2- Índice Gamma de Kanski: Indica el número de arcos existentes y el número de arcos posibles. Este valor oscila entre 0 (cohesión nula) y 1 (máxima cohesión). Se expresa como: γ = [1/3*(n-2)] 3- Número ciclomático: Determina el número de circuitos, entendiéndose como circuito las múltiples maneras de ir de un nodo al mismo sin pasar dos veces por el mismo arco. Se expresa como: μ = a-(n - 1) γ Sobre la base de la situación expuesta, elabore un programa en PASCAL, que en forma modular y estructurada, realice lo siguiente: Construya un grafo que represente el mapa de todos los estados de Venezuela, comunicados por vía terrestre. El programa deberá realizar lo siguiente: a- Leer desde archivo de texto, los datos sobre el grafo. b- Imprimir lo siguiente: Número de nodos Número de arcos Índice Beta de Kanski. Índice Gamma de Kanski Número ciclomático. c- Dada una persona en una ciudad A, otra en una ciudad B y una tercera en una ciudad C y las 3 personas quieren encontrarse en una ciudad cualquiera D, diferente de las 3 ciudades. El programa debe determinar cuáles son las rutas con menos conexiones para encontrarse, en caso de que existan.
324 T. P. Lapso 2012/1 4/8 Dada 3 capitales cualesquiera, calcule los dos primeros índices descritos y determine si se requiere construir más carreteras entre ellas. En cuanto a los circuitos debe determinar si es bajo o alto el índice ciclomático. Imprima los resultados. Presente en una hoja adjunta a su trabajo un esquema del grafo con el que Ud. ha trabajado. Además un esquema del TAD empleado, que incluya las operaciones que permitieron resolver el problema y otras operaciones posibles. 2- OBJETIVO 5 Desarrolle un programa en PASCAL, que construya una estructura tipo hashing o dispersión, para almacenar los nombres de los estados que figuran en las rutas viales desde un archivo tipo texto. El programa se hará bajo las siguientes consideraciones: A través del archivo de texto, extraiga cada nombre de un estado y ubíquelo en la estructura mencionada, para ello utilice una función de hashing, como se explica en la sección (2.1). Imprima el nombre del estado a medida que lo inserta en la estructura y el número de la celda. 2.1 Emplee una función que consista en la suma de las posiciones en el alfabeto de las letras (codificación ASCII) que conforman el nombre del estado. Como se indica a continuación: N f ( nombre _ estado) = ( li )modr, en donde l i es el código ASCII de cada letra que forma el nombre de la ciudad, r es el número de entradas de la tabla de hashing o número de buckets o slots. En este caso escoja un valor de r, el mejor será el que produce menor número de sinónimos. Las i= 1
324 T. P. Lapso 2012/1 5/8 tablas de Codificación ASCII (también llamada asqui), se presentan en la sección (2.2). Ejemplo: si se va a construir la llave para una tabla de 200 slots( de 0 a 199), y se desea insertar la palabra Carabobo, de acuerdo a los códigos ASCII ( ver tabla ASCII), la construcción de la llave será la siguiente: Valor = Cod(C) + Cod (a) + Cod (r) + Cod (a) + Cod (b) + Cod (o) + Cod (b) + Cod (o) = 67 + 97 + 114 + 97 + 98 + 111+ 98 + 111 = 793 Valor mod r = 793 mod 199 = 196 ( resto de la división entera) Por lo tanto la palabra Carabobo se insertará en una lista asociada a la celda ( o slot ) 196. 2.2 En esta sección se presentan las tablas de caracteres ASCII Símbolo Valor ASCII Símbolo Valor ASCII A 65 N 78 B 66 O 79 C 67 P 80 D 68 Q 81 E 69 R 82 F 70 S 83 G 71 T 84 H 72 U 85 I 73 V 86 J 74 W 87 K 75 X 88 L 76 Y 89 M 77 Z 90 Tabla ASCII( mayúsculas)
324 T. P. Lapso 2012/1 6/8 a 97 n 110 b 98 ñ 241 c 99 o 111 d 100 p 112 e 101 q 113 f 102 r 114 g 103 s 115 h 104 t 116 i 105 u 117 j 106 v 118 k 107 w 119 l 108 x 120 m 109 y 121 z 122 Tabla ASCII( minúsculas) Nota: Para determinar el ordinal asociado a cada letra( código ASCII), se puede emplear la función ord, la cual pertenece al conjunto de funciones estándares del Pascal. 3- OBJETIVO 6 Elabore un procedimiento en Pascal de búsqueda, tal que dados nombres de estados, los busque en la tabla de hashing e imprima la celda a la cual esta asignada. Instrucciones generales sobre el Trabajo Práctico Para considerar el logro de cada uno de los objetivos, el estudiante debe entregar lo siguiente: Listado documentado del programa fuente. En el encabezado de cada procedimiento, función o sección de programa que lo requiera, debe incluir un breve comentario del proceso que se realiza o del método que aplica. Igualmente es conveniente hacerlo en la definición de las estructuras de datos y variables utilizadas.
324 T. P. Lapso 2012/1 7/8 Listado de los resultados. Respuestas a lo solicitado en la sección 1. CD que contenga el programa fuente (.PAS) y el programa ejecutable (.EXE), debidamente identificado. Si utiliza unidades modulares (units) en PASCAL, debe incluirlas. Recomendaciones Emplee nombres de variables, constantes, funciones y procedimientos alusivos a lo que representan. Utilice un diseño modular para la resolución del problema. Esta estructura aportará legibilidad y facilidad de comprensión, además evitará redundancias en los procesos. Evite variables globales en las funciones y procedimientos. Emplee parámetros en los mismos, determine cuáles son parámetros valor y cuáles parámetros variables. Desarrolle algoritmos eficientes. Elabore procedimientos de validación de la data y de detección de errores para evitar interrupciones inesperadas en la ejecución del trabajo. El CD debe estar libre de virus y debe entregarse en un sobre conjuntamente con el listado de programa y resultados. No use cinta engomada para adherir el CD ya que podría dañar la lámina protectora del mismo. El trabajo se entregará completo, adjunto a la segunda prueba integral, con una portada similar a la presentada en las especificaciones de este trabajo. Recuerde que los trabajos prácticos son estrictamente individuales. No se aceptarán códigos o parte de ellos iguales. El profesor podrá realizar una verificación oral y/o escrita, sobre el trabajo en cuestión si lo creyera conveniente.
324 T. P. Lapso 2012/1 8/8 Criterio de corrección Se considera logrado el objetivo si al menos se cumple con lo siguiente: Entrega del listado documentado del programa, codificado en PASCAL, en forma modular y estructurada. En el encabezado de cada procedimiento, función o sección de programa que lo requiera y en la declaración de las estructuras de datos se incluye un breve comentario acerca del proceso, método o definición de estructura, según sea el caso. Se elabora un programa para resolver el problema planteado en la parte 1. Las partes 2 y 3 se llevan a cabo en un sólo programa o en programas separados. El programa corre sin restricciones. En general cada programa incluye módulos que realizan o contribuyen a alcanzar lo solicitado en las especificaciones. Incluye las respuestas en las secciones solicitadas. Entrega el listado de los resultados. Entrega un CD que contenga el programa fuente (.PAS) y el programa ejecutable (.EXE), de acuerdo a lo especificado. FIN DE LAS ESPECIFICACIONES DEL TP