DOCUMENTO SOBRE LA EJECUCION DE LA PRACTICA DE PROMET "BAJAS EN LA ORGANIZACION"

Primera parte: formato de los juegos de pruebas

Esquema del documento:

0. Observaciones previas.
1. Entrada.
2. Salida.
3. Ejemplos --> Juego de pruebas pblico.



-------------------------
0. Observaciones previas:
-------------------------

En esta prctica tenemos dos constantes:
- K es la cantidad de elementos que posee la valoracin de un miembro.
- N es el nmero mximo de miembros que nuestro sistema puede tratar.
Utilizaremos los valores K=5 y N=10.



-----------
1. Entrada:
-----------

Los datos de entrada consisten en una secuencia organizada as:

 * En primer lugar, el rbol inicial (en preorden) a partir del cual vamos a
ir introduciendo los nuevos miembros. La informacin de los nodos (miembros)
del rbol vendr acompaada de la valoracin asociada a cada uno de ellos.
   Por ejemplo, si queremos el rbol:

                     5
                      \
                       7

y queremos las valoraciones (K para cada miembro):

         miembro 1 tiene la valoracin 12, 18, 32, 15, 13. 
         miembro 2 tiene la valoracin 40, 3, 2, 7, 9.

la codificacin en la entrada ser la siguiente :

5 12 18 32 15 13 0 7 40 3 2 7 9 0 0

(donde 0 significa rbol nulo):

Nota: La clase ArbolIOint tiene una operacin para leer un rbol pero, si
queris utilizarla, deberis modificarla para que lea tambin las
valoraciones que van despus de cada ndice.


 * A continuacin nos podemos encontrar cualquiera de las siguientes
operaciones, una por lnea. Cada operacin tiene un cdigo que la identifica,
y algunos posibles argumentos:


   -1 * Baja de un miembro de la organizacin:

   La baja se codifica con un -1 seguida del nmero de miembro que eliminamos
de la organizacin.

   Por ejemplo, si quisieramos dar de baja al miembro numero 7 lo debemos
codificar de la siguiente manera:

-1 7

   Casos especiales:

      * Si el miembro a eliminar no est en la estructura se ignora la baja.


   -2 * Reorganizacin de la estructura:

   La reorganizacin de la estructura del vector se codifica con un -2 sin
ningn parmetro:


   -3 * Escribir valoraciones:

   Un -3 indica que queremos mostrar la valoracin de un miembro. Se
codifica con un -3 seguido del nmero de miembro del que se quiere saber la
valoracin.

   Por ejemplo, si queremos saber la valoracin del miembro 4 lo debemos
codificar de la siguiente manera:

-3 4
   
   Y la salida sera, por ejemplo:

4 5 6 7 8

   -4 * Escribir el rbol de miembros:

   Un -4 indica que queremos escribir el rbol que tenemos en ese momento.

 
   -5 * Acabar:

   Un -5 indica que el programa debe acabar. 


    -------- Ejemplos validos: --------

5 34 23 32 45 13 
6 88 34  8  8  8 0 0 
7 45 56 21 31 34 0 0 

-3 6
-2 6
-5

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

1 2 9 87 8 9 
7 9 19 5 2 2 0 0
4 5 6 77 5 2 0 0

-4 
-2 4
-3 4
-4
-2 1
-3 7

-5


    -------- Ejemplos no vlidos: --------


   Aqu el rbol no est completo (se han de poner los rboles nulos).

3 70 71 72 30 81 0 
-3 1
-5

   Aqui faltaria el -5 para acabar

3 18 13 93 87 65 0 0
-3 3


   Aqui nos hemos olvidado de las valoracines:

2 23 45 77 19 0 0
-5


    Podemos encontrarnos otro tipo de errores como:
    	 Nmero de miembro incorrecto (>10).
    	 Ms parametros de los necesarios en una operacin.
    	 Valoracin incorrecta (>100)



----------
2. Salida:
----------

   La salida se genera con las operaciones de escribir valoraciones (-3) y de
escribir el rbol (-4).


 * Escribir valoraciones (-3):

   Cuando en la entrada nos encontremos con un -3 5, buscaremos en la
estructura el miembro 5 y mostraremos sus valoraciones;

Con una entrada:
1 3 4 9 8 2 0
3 5 1 7 2 6 
2 4 9 7 5 1 0 0
7 2 4 6 8 9 0 0

-3 3 nos generaria una salida:

5 1 7 2 6 

-3 8 no escribe nada puesto que no existe el miembro 8.

 * Escribir rbol (-4).

   Cuando en la entrada nos encontramos con un -4, debemos escribir el rbol
de miembros que tengamos en ese momento. Se escribir en inorden y se
ignorarn los rboles nulos.
   Podis utilizar la operacin escribir_rbol_int de la clase ArbolIOint.
   Por ejemplo, si tenemos el rbol:

              7
            /   \
           4     1
                /  \
               3    5

La operacin de escribir el rbol nos dar lo siguiente:

4
7
3
1
5


-------------------------------------
3. Ejemplo: Juego de pruebas pblico:
-------------------------------------


--------------------> Entrada del juego de pruebas comentada.

1 1 2 3 4 5 2 2 3 4 5 6 4 4 5 6 7 8 6 6 7 8 9 10 0 0 7 7 8 9 10 11 0 0 
5 10 11 12 13 14 8 71 72 73 74 75 0 0 9 9 10 11 12 13 0 0 3 3 4 5 6 7 0 0 


		#	6                    	Arbol Inicial.
		#	 \                      (leer de derecha a izquierda)
		#	   4
		#	 /  \
		#	7    \			Valoraciones iniciales
		#	      2			
  		#	8    / \			Miembro 1: 1 2 3 4 5 
                #        \  /   \			Miembro 2: 2 3 4 5 6 
		#	   5     1          	        Miembro 3: 3 4 5 6 7
		#	 /      /			Miembro 4: 4 5 6 7 8
		#	9      / 			Miembro 5: 10 11 12 13 14 
		#	      3 	 		Miembro 6: 6 7 8 9 10
		#					Miembro 7: 7 8 9 10 11
		#					Miembro 8: 71 72 73 74 75
		#					Miembro 9: 10 11 12 13 14  
                #
-3 2		#   Mostrar la valoracin del miembro 2.
-3 8		#   Mostrar la valoracin del miembro 8.
		#
-1 6		#   Dar de Baja al miembro 6.
		#
-4		#   Mostrar el rbol.
		#
-3 6		#   Mostrar la valoracin del miembro 6.
-3 5		#   Mostrar la valoracin del miembro 5.
		#
-1 2		#   Dar de baja al miembro 2.
		#
-3 2		#   Mostrar la valoracion del miembro 2.
		#
-4		#   Mostrar el rbol.
		#
-2		#   Reorganizar la estructura
		#
-3 2		#   Mostrar la valoracin del miembro 2.
-3 6		#   Mostrar la valoracin del miembro 6.
		#
-4		#   Mostrar el rbol.
		#
-5		#   Salir.


--------------------> Salida del juego de pruebas comentada.

2 3 4 5 6           	                        #    Valoracin del miembro 2.
						#
71 72 73 74 75 	                                #    Valoracin del miembro 8.
						#
4                                           	#    rbol en inorden despus de
7						#    dar de baja al miembro 6.
2						#
8						#
5						#
9						#
1						#	
3						#
						#
						#    No hay valoracin del 6 
						#
10 11 12 13 14		                        #    Valoracin del miembro 5.
						#
4						#    rbol en inorden despus de 
7						#    dar de baja al miembro 2.
8						#
5						#
9						#
1						#
3						#
						# --- Punto donde se reordena 
						#    la estructura.
3 4 5 6 7	                                #    Valoracin del miembro 2.  
						#
71 72 73 74 75		                        #    Valoracin del miembro 6.  
						#
3						#    rbol en inorden despus de la
5						#    reordenacin.
6						#
4						#
7						#
1						#
2						#



------> ENTRADA DEL JUEGO DE PRUEBAS SIN COMENTARIOS:

   Para evaluar la prctica emplearemos el mtodo de redireccionar la
entrada standard del programa a un fichero de texto (con < en java y
con assig sys$input en M2). En el caso del jp pblico dicho fichero
tendr este aspecto (sin los asteriscos).

**************************************************************

1 1 2 3 4 5 2 2 3 4 5 6 4 4 5 6 7 8 6 6 7 8 9 10 0 0 7 7 8 9 10 11 0 0 
5 10 11 12 13 14 8 71 72 73 74 75 0 0 9 9 10 11 12 13 0 0 3 3 4 5 6 7 0 0 

 
-3 2		
-3 8		

-1 6		

-4		

-3 6		
-3 5		
		
-1 2		
		
-3 2		
		
-4		
		
-2		
		
-3 2		
-3 6		
		
-4		
		
-5		

*****************************************************************


------> SALIDA DEL JUEGO DE PRUEBAS SIN COMENTARIOS:

   Vuestra salida ha de ser igual que sta, salvo el nmero de lneas en
blanco, que es indiferente. Emplearemos el mtodo de redireccionar la salida
standard del programa a un fichero de texto (con > en java y con assig
sys$output en M2). En el caso del jp pblico dicho fichero tendr este
aspecto (sin los *).

*****************************************************************

2 3 4 5 6           	
						
71 72 73 74 75 	
						
4                                           	
7						
2						
8						
5						
9						
1						
3						
						
						
						
10 11 12 13 14		
						
4						
7						
8						
5						
9						
1						
3						
						
						
3 4 5 6 7		
						
71 72 73 74 75		
						
3						
5						
6						
4						
7						
1						
2						



