Laboratorio 5: CGI Convertidor de Expresiones

Objetivos

Durante esta práctica, los alumnos serán capaces de:

Esta actividad promueve las siguientes habilidades, valores y actitudes: análisis y síntesis, capacidad de resolver problemas, creatividad, y uso eficiente de la informática y las telecomunicaciones.

Descripción

Esta práctica puede ser elaborada de manera individual o en parejas.

Asume que se tiene la siguiente página Web, llamada convertidor.html, la cual contiene un formulario:

<?xml version="1.0" encoding="UTF-8" ?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <meta http-equiv="content-type" content="text/html; charset=UTF-8" />
    <meta http-equiv="content-language" content="es" />
    <title>Convertidor de Expresiones</title>
  </head>
  <body>
    <h1>Convertidor de Expresiones</h1>    
    <form action="/cgi-bin/convertidor.py">        
      <p>
        <input type="text" name="expresion" />
        <input type="submit" value="Continuar" />
        <input type="reset" value="Limpiar" />    
      </p>
    </form>
  </body>
</html>

Escribe en Python un script CGI llamado convertidor.py que reciba su entrada del campo expresion del formulario anterior. Dicha entrada representa una expresión posfija conformada por las letras A a la Z (mayúsculas o minúsculas), los símbolos +, -, * y /, y espacios en blanco. Por ejemplo:

ab+ cd+ ef- *+

El script CGI debe convertir la expresión posfija a su equivalente expresión infija y desplegarla como parte de la respuesta. Se debe desplegar un mensaje de error si la entrada contiene caracteres incorrectos o si la expresión es inválida. Para el ejemplo anterior, la salida sería:

((a+b)+((c+d)*(e-f)))

Puedes usar el siguiente código de Python para leer los parámetros de una petición desde un CGI:

from cgi import FieldStorage

mis_campos = FieldStorage()
mi_valor = mis_campos['nombre_de_mi_campo'].value

La página estática con el formulario inicial, así como el CGI, deben ser servidos por el servidor de Web Apache.

Verifica que la salida del CGI, ya sea una salida normal o un mensaje de error, sea XHTML válido. Utiliza el Servicio de Validación de W3C.

¿Qué se debe entregar?

Sigue las siguientes indicaciones para entregar tu práctica:

Evaluación

Esta práctica será evaluada usando los siguientes criterios:

100 La práctica cumple con todos los requerimientos.
60-90 La práctica funciona en general, pero contiene uno o varios errores menores.
50 El CGI produce un error a tiempo de ejecución.
DA La solución es un plagio.
© 1996-2008 por Ariel Ortiz Ramírez (ariel.ortiz@itesm.mx)
ArielOrtiz.com | Desarrollado en Django | Licencia de Creative Commons | XHTML válido | CSS válido