EXAMEN DE LA PRCTICA DE PRO2 Cuatrimestre de otoo 2013 - JUEGO DE PRUEBAS PBLICO

Esquema del documento:

0. Observaciones previas.
1. Composicin de los juegos de pruebas.
2. Entrada y salida de las operaciones.
3. Juego de pruebas pblico.

-----------------------------------------------------------------------------
0. OBSERVACIONES PREVIAS
-----------------------------------------------------------------------------

* En general, los datos de operaciones diferentes se leern en lneas
  diferentes y los resultados de operaciones diferentes se escribirn en lneas
  diferentes.

* Los ficheros de entrada de los juegos de pruebas tendrn lneas de menos de
  80 caracteres. Si necesitamos datos muy grandes para una misma operacin,
  los dividiremos en varias lneas.

* No es necesario comprobar si los datos que se van a leer son consistentes,
  por ejemplo, si hay que dar de alta una revista, sta no existir 
  previamente, etc. Tambin se garantiza que los datos cumplirn las 
  precondiciones mencionadas en el enunciado.

* Para favorecer la legibilidad, tanto los ttulos de revistas, como los
  nombres de las reas temticas como las palabras claves de las revistas
  estarn compuestos nicamente por letras minsculas, dgitos y el carcter
  '_'. Por ejemplo, si queremos mencionar la revista real Annalen der Physik,
  escribiremos annalen_der_physik. No necesariamente usaremos nombres reales, e
  incluso puede que haya nombres compuestos nicamente por dgitos.

* A partir del juego de pruebas incluido al final de este documento no se deben
  extrapolar propiedades de los datos que no se describan explcitamente.

-------------------------------------------------------------------------------
  1. COMPOSICIN DE LOS JUEGOS DE PRUEBAS
-------------------------------------------------------------------------------

La primera accin es leer la estructura de las reas temticas. sta
sigue el formato estndar de lectura de un rbol en preorden que se ha
visto en la sesiones de laboratorio. La marca de rbol vaco ser el string "."

A partir de este momento, pasamos a aplicar las distintas operaciones, cuya
estructura viene especificada en la siguiente seccin.

-------------------------------------------------------------------------------
2. ENTRADA Y SALIDA DE LAS OPERACIONES
-------------------------------------------------------------------------------

* ALTA DE REVISTA

Cdigo de operacin: -1

Datos: Un ttulo y una o varias palabras clave por orden alfabtico, seguidas
por el string ".". El string "."  estar separado de la ltima palabra clave.
En el sistema no hay ninguna revista con el mismo ttulo que la nueva.

Salida: Ninguna.

Efectos sobre el sistema: Se aade la revista leda con su rea de
conocimiento (obtenida segn el criterio 2 de clasificacin respecto a sus
palabras clave).


* CONSULTA DE REVISTAS POR AREA

Cdigo de operacin: -2

Datos: Un string que representa un rea temtica.

Salida: Escribe el area y el ttulo de las revistas del sistema que tengan el
rea temtica especificada, por orden alfabtico de ttulo.

Efectos sobre el sistema: Ninguno.


-------------------------------------------------------------------------------
3. JUEGO DE PRUEBAS PBLICO
-------------------------------------------------------------------------------

Entrada comentada:
------------------

55555 4444 12345 987654 assyriology10 . .  // Estructura de las reas temticas
calculus3 . . computability12 . .          // La marca ser el string "."
888 777 levitation4 . . 
gravitation5 . . 
byzantine11 . . 
2222 byzantine11 . . 
9999 . assyriology10 . .

-1 j3 byzantine11 .          // Dar de alta una revista de ttulo j3,
                             // con una sola palabra clave, que es byzantine11.
                             // El final de las palabras clave se marca 
                             // con el string "." 
                                               
-1 j2 computability12 . 

-1 j1 assyriology10 computability12 .

-2 byzantine11           // Consultar las revistas de rea byzantine11

-2 computability12       // Consultar las revistas de rea computability12

-2 55555                 // Consultar las revistas de rea 55555
    
-3


Salida comentada:
------------------


Revistas del area byzantine11          // Consulta de las revistas
                                       // de area byzantine11

Revistas del area computability12      // Consulta de las revistas
j2                                     // de area computability12

Revistas del area 55555                // Consulta de las revistas
j1                                     // de area 55555
j3


-------------------------------------------------------------------------------

Entrada sin comentar: cortadla y pegadla en un fichero para usarla como entrada
a vuestro programa mediante la redireccin <.

-------------------------------------------------------------------------------

55555 4444 12345 987654 assyriology10 . .    
calculus3 . . computability12 . .             
888 777 levitation4 . . 
gravitation5 . . 
byzantine11 . . 
2222 byzantine11 . . 
9999 . assyriology10 . .

-1 j3 byzantine11 .   

-1 j2 computability12 . 

-1 j1 assyriology10 computability12  . 

-2 byzantine11  

-2 computability12

-2 55555

-3

-------------------------------------------------------------------------------

Salida sin comentar: vuestro resultado ha de coincidir exactamente con
ste (comparndolos con el comando diff -b de unix o diff -Bb de Linux),
salvo acaso los blancos del final.

------------------------------------------------------------------------------

Revistas del area byzantine11

Revistas del area computability12
j2

Revistas del area 55555
j1
j3

-------------------------------------------------------------------------------
