Vous êtes sur la page 1sur 9

UNIVERSIDAD DE SAN CARLOS DE GUATEMALA FACULTAD DE INGENIERIA ORGANIZACIN DE LENGUAJES Y COMPILADORES 2 PRIMER SEMESTRE 2013

Prctica 1 - Derivador matemtico


Objetivos:
Objetivo General
Aplicar y ampliar los conocimientos adquiridos en clase sobre definiciones dirigidas por la sintaxis para la construccin de un derivador matemtico.

Objetivos especficos
Ampliar el conocimiento sobre las definiciones dirigidas por la sintaxis a travs de la aplicacin prctica de las mismas en una aplicacin real. Familiarizar al estudiante con las herramientas utilizadas para la construccin de analizadores lxicos y semnticos, y su aplicacin en lenguajes de programacin.

Descripcin del problema


La prctica consiste en la realizacin de un mdulo de ayuda para el departamento de matemticas, el cual ayude a mostrar el comportamiento de una operacin de transformacin sobre cualquier tipo de funcin matemtica. Para ello se requiere que funcione en 2 vas, de tal manera que pueda realizar la operacin de transformacin dando un resultado, o ingresar una funcin transformada y regresar a la funcin anterior. Dicho proceso deber ser mostrado en un paso a paso, de tal manera que se pueda orientar al estudiante sobre la forma correcta de realizar tanto la derivacin (por ejemplo de transformacin) o la integracin de la funcin (en el caso de la funcin de de reversin), preferentemente este paso a paso deber ser dibujado en un diagrama de flujo, de tal forma que se pueda enviar esta imagen en un correo al estudiante con la solucin a su consulta.

Operaciones Bsicas
Ingreso al sistema:
Se debe mostrar un formulario de ingreso al sistema en donde se ingrese el nmero de personal (NDP) y una password. Restricciones: NDP: Se debe validar que el NDP sea numrico (solo dgitos) con separadores con el siguiente formato: 2013-01-125-456123 La validacin del NDP est separada en 4 bloques importantes como se puede observar en el nmero de referencia anterior. De tal manera que: 2013 01 Representa el ao en que se imparte el curso. Representa el ciclo en que se imparte 01 = 1er Semestre 02 = 2do Semestre 03 = Vacaciones Junio 04 = Vacaciones Diciembre 05 = Cursos Extraordinarios

125

Representa la seccin del curso aperturado enlazndolo a ciertas configuraciones del sitio las cuales no son parte de este requerimiento.

456123

Cdigo Personal del Catedrtico o auxiliar de ctedra del curso. Representa a la persona que est utilizando el recurso para realizar o solventar cualquier duda por parte de los estudiantes.

NOTA: Es importante que se evale individualmente cada bloque a su ingreso ya que por medio de este dato se podr desplegar la configuracin del catedrtico/auxiliar que est ingresando al sistema, en qu ao, semestre, seccin, etc., se est realizando la consulta, esto servir posteriormente para presentar reportes estadsticos sobre la afluencia de consultas en periodos especficos.

Password: Se deber autenticar al usuario por medio de una clave la cual deber ser signo-alfanumrica con las siguientes restricciones: Longitud: 10 15 dgitos Debe Contener: Al menos un signo # @ Iniciar con Mayscula Finalizar con Punto Tener 1 numero

Debido a que no es parte del requerimiento el mantenimiento a cuentas, la primera vez que se ingrese al sitio se validara el NDP y la Password (con sus restricciones) y se pedir una confirmacin de password guardndola en un archivo plano encriptandola bajo la siguiente regla: Para los nmeros y Signos # @ . 1 2 3 4 5 6 7 8 9 0 *%& +-= /)? : _ ^ ] [ } , ; {

Para las letras (su equivalente en mayscula a minscula es el mismo): A=B K=L U=V B=C L=M V=W C=D M=N W=X D=E N=O X=Y E=F O=P Y=Z F=G P=Q Z= G=H Q=R =0 H=I R=S I=J S=T J=K T=U

A la prxima vez que ingrese el usuario, se deber revisar el NDP y su clave encriptada en el archivo, convertirla a la clave original y compararla con la que est ingresando, si los datos son vlidos entonces se puede ingresar al sistema.

Men del sistema


Muestra las opciones de Operacin de Transformacin. Operacin de Reversin. Envo de Correo Electrnico. Reportes.

El men deber mostrar las opciones de alguna forma (por medio de botones, un men desplegable, etc.) y al seleccionar una de las opciones se deber re direccionar a la opcin seleccionada.

Operacin de transformacin
En esta parte se podrn cargar al sistema una o varias funciones matemticas, y seleccionar el tipo de transformacin a realizar, para ello se debe presentar un formulario con los siguientes incisos: Carga de Funciones Matemticas Existen dos formas de carga de funciones, una funcin o varias funciones, para los dos casos se utilizar un formulario con una caja de texto y un botn Cargar Funcin. La extensin del archivo indicar el tipo de carga a realizar, si se est cargando un archivo con extensin .fpt, se asume que se desea cargar un archivo con varias funciones, en caso contrario, se tomar como que el archivo cuenta con un nica funcin y se realizar la carga a memoria de la o las funciones de acuerdo al tipo de carga: Caso una funcin Se mostrar la funcin ingresada en una etiqueta que diga La funcin fue cargada con xito y muestre la funcin cargada.

Caso varias funciones Se mostrar el nmero de funciones ledas del archivo de texto en una etiqueta que diga Se realizo la carga masiva de N funciones matemticas con xito (Donde N representa el nmero de funciones contenidas en el archivo .fpt cargado). Ejemplo de un archivo con varias funciones: f(x) = 3x^3+12x^2-2x+8 f(x) = 9x^2+24x-2 f(x) = 5x^5+x^3-43x 200914891@ingenieria.usac.edu.gt compi2.2s2012@gmail.com correo@ingenieria.usac.edu.gt 200914891 201116555 199915678

Escritura de funciones Adicionalmente en la aplicacin se debe contar con una rea de texto que permita ingresar de manera manual funciones para realizar el mismo proceso que en la carga de funciones por archivo. Utilizando la siguiente sintaxis [[f(x)][f(x1)][f(x2)]....] Por ejemplo: [[f(x) = 3x^3+12x^2-2x+8][ f(x) = 9x^2+24x-2][ f(x) = 5x^5+x^3-43x]] Transformaciones Disponibles Inicialmente se tienen solo tres tipos de transformaciones, se espera que en un futuro se puedan incorporar nuevas transformaciones y as poder ayudar a ms catedrticos en los distintos niveles de dificultad matemtica. Derivada: La derivada representa cmo se modifica una funcin a medida que su entrada tambin registra alteraciones. En los casos de las funciones de valores reales de una nica variable, la derivada representa, en un cierto punto, el valor de la pendiente de la recta tangente al grfico de la funcin en dicho punto. Ejemplo: Entrada: f(x)=3x^3+12x^2-2x+8 Salida: f(x)=9x^2+24x-2

Derivada de una Gramtica: La derivada de una gramtica es cualquier cadena de entrada que sea aceptada por esa gramtica. Por ejemplo: Entrada: G(x) = S -> L L->L, i L -> i Salida: G'(x) =i

NOTA: La salida debe ser la cadena ms pequea aceptable por la gramtica. Funciones validas Las funciones vlidas son de la forma: Para una funcin Matemtica: F(x) = Para una Gramtica: G(x) =

Las operaciones matemticas permitidas para las operaciones son: + * Suma Resta Multiplicacin, tambin puede representarse por un nmero seguido de un parntesis o de un identificador Divisin Potencia Raz Parntesis Derivada

/ ^ /() dx/dy

Las operaciones para gramticas son: -> | NT (S, L, D) de G(x) Produce O produce Indica los smbolos no terminales de la gramtica G(x)

Podra ingresarse una transformacin dentro de una funcin, de la forma F(x)=x^4+5x^3+dx/dy(x^2+1)

Una gramtica podra escribirse de la forma: NT (S,L) de G(x) G(x) = S -> L, L->a,L | a 6

Variables e identificadores Se pueden definir variables dentro de un archivo, estas se definen de la siguiente manera: var(nombre) = valor Donde nombre es el nombre de la variable y valor representa su valor. Por ejemplo: Var(a) = 10 f(x) = x^4+5x^3+dx/dy(x^2+1)

La manera de trabajar las variables ser reemplazando su valor dentro de la funcin y operando, si se encuentra una variable dentro de una funcin que no est definida se tomar como una constante. NOTA: Las variables pueden contener funciones. Por ejemplo: Var(z) = 10x+15x^2 f(x) = x^4+z

Operacin de Reversin
Integral: una integral es una generalizacin de la suma de infinitos sumandos, infinitamente pequeos. La integracin que se realizar, ser una integral indefinida. Ejemplo Salida: f(x)=9x^2+24x-2 Entrada: f(x)=3x^3+12x^2-2x

Envo de Correo Electrnico


Caso de una funcin Se deber solicitar una direccin de correo electrnico, la cual deber ser evaluada en su formato, respetando la conformacin estndar de una direccin de email de la siguiente forma: direccion@dominio.sentido

Donde: Direccin: representa el nombre, diminutivo o identificador de la persona duea del dominio, es de tipo signo-alfanumrico. Dominio: un dominio vlido de empresa la cual puede por ejemplo Google, Hotmail, etc. Sentido: sentido del dominio, que puede ser comercial, organizacin, de gobierno, etc. Por ejemplo .com .org . gov etc.

Tambin deber tener un cuadro de texto adicional para pedir un nmero de carnet esto para documentar las consultas realizadas por un alumno en particular, para poder medir posteriormente el nivel de inters de los estudiantes. Caso de varias funciones En este caso el archivo cargado de funciones, contendr una columna dedicada para este fin. Se deber realizar la validacin explicada en el inciso anterior, por cada direccin de correo encontrada. El archivo tambin contar con una columna destinada para un nmero de carnet esto para documentar las consultas realizadas por un alumno en particular, esto para poder medir posteriormente el nivel de inters de los estudiantes.

Reporte de Utilizacin del Sistema


El sistema contar en esencia con un reporte especfico el cual podr ser parametrizado de la siguiente forma Parametrizacin del Reporte Entre Fechas: se puede ingresar un rango de fechas y el reporte ser trabajado nicamente sobre este rango de fechas. Por Ao: se seleccionar un ao en especfico para mostrar, nicamente se mostrar el reporte de este ao o aos. Por Semestre: se ingresar un uno para el primer semestre del ao o un dos para el segundo. Por Curso-Seccin: Se deber ingresar el nombre y seccin del curso. Por Catedrtico/Auxiliar: Se deber ingresar el NDP del catedrtico o auxiliar. NOTA: Todos los criterios son incluyentes, es decir que puede estar entre fechas en un ao, semestre, curso, catedrtico determinado, o simplemente en un ao determinado, o en un curso, o para un catedrtico etc. Formato del Reporte Se mostrar un encabezado con los datos del auxiliar, curso-seccin, semestre y ao especificados en la parametrizacin del reporte. Luego se mostrar una grfica de barras con el porcentaje (%) de consultas realizadas agrupadas por da (LUNES MARTES MIERCOLES JUEVES VIERNES) por ejemplo: Lunes 15% Martes 10% Mircoles 5% Jueves 15% Viernes 55% -------------------------------------8

Esto porque en el estudio se pretende demostrar el comportamiento estudiantil en relacin a las dudas, tomando en cuenta que los exmenes, tareas, cortos se realizan los das sbados y al parecer siempre consultan las dudas un da antes de entregar las tareas, esta estadstica servir para coordinar mas los das de entrega, etc. Datos del reporte Para la obtencin de los datos necesarios para el reporte se deber utilizar un archivo de texto en el que se almacene la informacin que el alumno considere necesaria, y dicho archivo ser ledo para la generacin del reporte.

Restricciones de la Prctica
El lenguaje a utilizar ser Java. El tipo de sistema ser web. Utilizar Lex y Cup para el manejo de scanner y parser. Se puede utilizar cualquier sistema operativo. El IDE queda a discrecin del estudiante, siempre y cuando sea Java. El diagrama de flujo deber ser dibujado utilizando la herramienta Graphviz. Copias de proyecto tendrn una ponderacin 0 y sern reportados a la escuela de sistemas.

Fecha de Entrega
23/02/2013, en horario de laboratorio. La entrega ser presencial

Fecha de Calificacin
25/02/2013, rea de columnas a partir de las 9:00 am.

Vous aimerez peut-être aussi