pw1 jjjnnnnnnnnnnnnnnnnnn

4
13. Un ejemplo unificado: Consulta bibliográfica En esta sección desarrollaremos un ejemplo que unifique todo los visto hasta el momento. El ejemplo permitirá hacer búsquedas sobre un archivo de texto que contiene la bibliografía del curso. Las búsquedas podrán ser por autor, título y año. El archivo que contiene toda la información es un texto no estructurado (texto plano), donde a penas se distinguen las partes por algunos signos de puntuación sin que aparentemente haya una forma sencilla de extraer la información. [1] J. Glenn Brookshear, Computer Science: An Overview 11th Edition; Prentice Hall; January 31, 2011. [2] Jacqueline D. Hamilton, CGI Programming 101: Programming Perl for the World Wide Web Second Edition; http://www.cgi101.com/; 2004. [3] Nick Parlante, Essential perl; http://cslibrary.stanford.edu/108/; 2002. [4] Web-building tutorials; http://www.w3schools.com/; 2013. Antes de empezar con la implementación de la solución necesitaremos una nueva estructura de datos que será de gran utilidad. 13.1 Arreglos asociativos (Mapas) También conocidos como Diccionarios, Mapas o tablas Hash, los Arreglos asociativos, permiten relacionar una clave con un valor. Al estilo de un diccionario donde a cada palabra (clave) se le asocia un significado(valor). En cuanto a la sintaxis los arreglos asociativos se distinguen de los arreglos simples por el uso del símbolo %. %dict = ( "bart" => "Yo no lo hice!", "homer" => "Donnas", "lisa" => "El significado de la vida?", ); Es posible extraer valores usando las claves como índices: $string = $dict{"bart"}; Si una clave no existe se retorna el valor undef $string = $dict{"marge"}; También es posible cambiar el valor asociado a una clave $dict{"homer"} = "Mmmm, scalars"; Es posible extraer todas las claves de un mapa: @claves = (keys %dict); Entonces el arreglo claves, contendrá: ("homer", "lisa, "bart"). Sin ningún orden en especial. (La palabra Hash significa desorden). 13.2 El formulario para la consulta.html Para permitir que el usuario pueda hacer la consulta se usará el siguiente formulario <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <link rel="stylesheet" type="text/css" href="estilo.css"> <title>Consultas a la bibliografía</title> </head>

description

La programación informática, acortada como programación, es el proceso de diseñar, codificar, depurar y mantener el código fuente de programas computacionales. El código fuente es escrito en un lenguaje de programación. El propósito de la programación es crear programas que exhiban un comportamiento deseado. El proceso de escribir código requiere frecuentemente conocimientos en varias áreas distintas, además del dominio del lenguaje a utilizar, algoritmos especializados y lógica formal. Programar no involucra necesariamente otras tareas tales como el análisis y diseño de la aplicación (pero sí el diseño del código), aunque sí suelen estar fusionadas en el desarrollo de pequeñas aplicaciones.

Transcript of pw1 jjjnnnnnnnnnnnnnnnnnn

13. Un ejemplo unificado: Consulta bibliogrficaEn esta seccin desarrollaremos un ejemplo que unifique todo los visto hasta el momento.

El ejemplo permitir hacer bsquedas sobre un archivo de texto que contiene la bibliografa del curso. Las bsquedas podrn ser por autor, ttulo y ao.

El archivo que contiene toda la informacin es un texto no estructurado (texto plano), donde a penas se distinguen las partes por algunos signos de puntuacin sin que aparentemente haya una forma sencilla de extraer la informacin.

[1] J. Glenn Brookshear, Computer Science: An Overview 11th Edition; Prentice Hall; January 31, 2011.[2] Jacqueline D. Hamilton, CGI Programming 101: Programming Perl for the World Wide Web Second Edition; http://www.cgi101.com/; 2004.[3] Nick Parlante, Essential perl; http://cslibrary.stanford.edu/108/; 2002.[4] Web-building tutorials; http://www.w3schools.com/; 2013.Antes de empezar con la implementacin de la solucin necesitaremos una nueva estructura de datos que ser de gran utilidad.13.1 Arreglos asociativos (Mapas)Tambin conocidos como Diccionarios, Mapas o tablas Hash, los Arreglos asociativos, permiten relacionar una clave con un valor. Al estilo de un diccionario donde a cada palabra (clave) se le asocia un significado(valor).En cuanto a la sintaxis los arreglos asociativos se distinguen de los arreglos simples por el uso del smbolo%.%dict = ( "bart" => "Yo no lo hice!", "homer" => "Donnas", "lisa" => "El significado de la vida?",);Es posible extraer valores usando las claves como ndices:$string = $dict{"bart"};

Si una clave no existe se retorna el valorundef$string = $dict{"marge"};

Tambin es posible cambiar el valor asociado a una clave$dict{"homer"} = "Mmmm, scalars";

Es posible extraer todas las claves de un mapa:@claves = (keys %dict);

Entonces el arregloclaves, contendr:("homer", "lisa, "bart"). Sin ningn orden en especial. (La palabra Hash significa desorden).13.2 El formulario para la consulta.htmlPara permitir que el usuario pueda hacer la consulta se usar el siguiente formulario

Consultas a la bibliografa

Bsqueda biblogrfica por: autor
ttulo
ao

El cual captura dos datos:1. El campo de bsqueda: author, title o year, en la variable kind.2. El texto a buscar, en la variable keywordEl formulario usa la siguiente hoja de estilo.css:body { font: 75% georgia, sans-serif; line-height: 1.88889; color: #555753; background-color: #b0c4de; margin: 0; padding: 0;}fieldset{background-color: #6495ed;}legend{ color: white; background-color: #6495ed;}h1{color: blue;}a:link {color:#FF0000;}a:visited {color:#00FF00;}a:hover {color:#FF00FF;}a:active {color:#0000FF;}13.3 El CGI consulta.plEl CGI que procesa la consulta tendr el siguiente cdigo como rutina principal#!/usr/bin/perl -wTuse CGI qw(:standard);

print "Content-type: text/html\n\n";print CREATE DATABASE prueba;Query OK, 1 row affected (0.03 sec)

mysql> SHOW DATABASES;+--------------------+| Database |+--------------------+| mysql || prueba || test |+--------------------+mysql> USE prueba;Database changedmysql> USE pruebaDatabase changedmysql> CREATE TABLE gente (nombre VARCHAR(40), fecha DATE);

mysql> SHOW TABLES;+------------------+| Tables_in_prueba |+------------------+| gente |+------------------+mysql> CREATE TABLE ciudad1 (nombre CHAR(20) NOT NULL, poblacion INT NULL);