-- AUTOR: Elvira Mayordomo Cámara
-- PROYECTO: módulo de declaración del
-- TAD criticos solución del examen de
-- EDA del 1-7-03 
-- FICHERO: criticos.ads
-- FECHA: 5-1-04
-- Especificación no hecha

with Ada.text_io, Ada.Strings.Unbounded, ustrings,
tablasrecolocacion;
use Ada.text_io, Ada.Strings.Unbounded, ustrings;

package criticos is

type critico is private;

type tpnota is new integer range 0..9;


type lista is private;
type pelicula is private;

procedure
crearpelicula(titulo,director,actores,tema,resumen,comentarios:in
ustring;  nota:in tpnota; p:out pelicula);

procedure listardirector(l:in lista);

procedure listartema(l:in lista);

procedure
anyadir(p:in pelicula; total:in out critico);

procedure pelis_de(director:in ustring; total:in
critico;
lalista:out lista);

procedure mejor_peli(director:in ustring; total:in
critico;
lamejor:out ustring);

procedure top_ten(tema:in ustring; total:in
critico; lasdiez: out lista);

function h(c:ustring;tam:positive) return integer;

private
type pelicula is record
	titulo,director,actores,tema,resumen,comentarios:
ustring; 
	nota: tpnota;
	sigpt, sigpa: lista;
end record;	
type lista is access pelicula;

	max: constant:=1039;
	type topten is record
		primera,ultima:lista;
		num:integer;
	end record;
		
	package mitabla is new
	tablasrecolocacion(ustring, topten, max, h);
	use mitabla;
	package mitabla2 is new
	tablasrecolocacion(ustring, lista, max, h);
	use mitabla2;
	type critico is record
		portema: mitabla.tabla;
		pordirector: mitabla2.tabla;
	end record;	
end criticos;	


syntax highlighted by Code2HTML, v. 0.9.1