]> git.llucax.com Git - z.facultad/75.41/abo.git/blob - test.pas
Se expanden keywords del svn.
[z.facultad/75.41/abo.git] / test.pas
1 program test;\r
2 \r
3  uses\r
4    ABO_AB, GRAL, ABO_UTIL, PILA_C;\r
5 \r
6 { recorrer todos los nodos del arbol procesando todos los elementos }\r
7 { ORDEN de recorrido: como el contenedor ya esta ordenado se recorre en el orden definido para el orden }\r
8 PROCEDURE APL_ABO_recorrer_rec( a: ABO_arbol; var f: text );\r
9         PROCEDURE recorrer_rec( a: ABO_arbol );\r
10         VAR\r
11                 error: boolean;\r
12                 e: T_REGISTRO;\r
13         BEGIN\r
14                 { proceso el subarbol izquierdo }\r
15                 ABO_mover_cte( a, ABO_izquierda, error );\r
16                 IF not error\r
17                 THEN BEGIN\r
18                         recorrer_rec( a);\r
19                         ABO_mover_cte( a, ABO_padre, error );\r
20                 END;\r
21                 { proceso el nodo corriente }\r
22                 ABO_elem_cte( a, e);\r
23                 writeln( f, 'DNI: ' + e.dni + ' | Nombre: ' + e.nombre );\r
24                 { proceso el subarbol izquierdo }\r
25                 ABO_mover_cte( a, ABO_derecha, error );\r
26                 IF not error\r
27                 THEN BEGIN\r
28                         recorrer_rec( a);\r
29 {                       ABO_mover_cte( a, ABO_padre, error ); no hace falta }\r
30                 END;\r
31         END;\r
32 VAR\r
33         error: boolean;\r
34 BEGIN\r
35         { me voy a la raiz y desde allí proceso todo }\r
36         ABO_mover_cte( a, ABO_raiz, error );\r
37    recorrer_rec( a );\r
38 END;\r
39 \r
40 \r
41  var\r
42    abo: ABO_ARBOL;\r
43    r1:  T_REGISTRO;\r
44    r2:  T_REGISTRO;\r
45    e:   boolean;\r
46    f:   text;\r
47    p:   T_PILAC;\r
48 \r
49  begin\r
50    assign( f, 'log.txt' );\r
51    rewrite( f );\r
52 {CREAR}\r
53    ABO_crear( abo );\r
54 {VACIO}\r
55    if ABO_vacio( abo ) then\r
56       writeln( f,  'VACIO' );\r
57    r1.dni := '00000001';\r
58    r1.nombre := 'Luca';\r
59 {INSERTAR}\r
60    ABO_insertar( abo, r1, e );\r
61    ABO_insertar( abo, r1, e );\r
62    if ( e ) then\r
63       writeln( f,  'Hubo un error, clave ya existente' )\r
64    else\r
65       writeln( f,  'TODO OK (anda mal el programa)' );\r
66    ABO_elem_cte( abo, r2 );\r
67    writeln( f,  'DNI: ' + r2.dni + ' | Nombre: ' + r2.nombre );\r
68    r2.dni := '00000005';\r
69    r2.nombre := 'LucaX';\r
70    ABO_insertar( abo, r2, e );\r
71    r2.dni := '00000002';\r
72    r2.nombre := 'LucaXX';\r
73    ABO_insertar( abo, r2, e );\r
74    r2.dni := '00000015';\r
75    r2.nombre := 'LucaXXX';\r
76    ABO_insertar( abo, r2, e );\r
77    r2.dni := '00000012';\r
78    r2.nombre := 'LucaXXXX';\r
79    ABO_insertar( abo, r2, e );\r
80    r2.dni := '00000105';\r
81    r2.nombre := 'LucaX';\r
82    ABO_insertar( abo, r2, e );\r
83    r2.dni := '00010002';\r
84    r2.nombre := 'LucaXX';\r
85    ABO_insertar( abo, r2, e );\r
86    r2.dni := '00000115';\r
87    r2.nombre := 'LucaXXX';\r
88    ABO_insertar( abo, r2, e );\r
89    r2.dni := '00001012';\r
90    r2.nombre := 'LucaXXXX';\r
91    ABO_insertar( abo, r2, e );\r
92    r2.dni := '00000205';\r
93    r2.nombre := 'LucaX';\r
94    ABO_insertar( abo, r2, e );\r
95    r2.dni := '00000032';\r
96    r2.nombre := 'LucaXX';\r
97    ABO_insertar( abo, r2, e );\r
98    r2.dni := '00000215';\r
99    r2.nombre := 'LucaXXX';\r
100    ABO_insertar( abo, r2, e );\r
101    r2.dni := '00000412';\r
102    r2.nombre := 'LucaXXXX';\r
103    ABO_insertar( abo, r2, e );\r
104    APL_ABO_recorrer_rec( abo , f );\r
105    if not ABO_vacio( abo ) then\r
106       writeln( f,  'NO VACIO' );\r
107 {MOVER: padre}\r
108    ABO_mover_cte( abo, ABO_padre, e );\r
109    ABO_elem_cte( abo, r1 );\r
110    writeln( f,  'DNI: ' + r1.dni + ' | Nombre: ' + r1.nombre );\r
111    ABO_mover_cte( abo, ABO_padre, e );\r
112    ABO_elem_cte( abo, r1 );\r
113    writeln( f,  'DNI: ' + r1.dni + ' | Nombre: ' + r1.nombre );\r
114    ABO_mover_cte( abo, ABO_padre, e );\r
115    ABO_elem_cte( abo, r1 );\r
116    writeln( f,  'DNI: ' + r1.dni + ' | Nombre: ' + r1.nombre );\r
117    ABO_mover_cte( abo, ABO_padre, e );\r
118    ABO_elem_cte( abo, r1 );\r
119    writeln( f,  'DNI: ' + r1.dni + ' | Nombre: ' + r1.nombre );\r
120    ABO_mover_cte( abo, ABO_padre, e );\r
121    ABO_elem_cte( abo, r1 );\r
122    writeln( f,  'DNI: ' + r1.dni + ' | Nombre: ' + r1.nombre );\r
123    ABO_mover_cte( abo, ABO_padre, e );\r
124    ABO_elem_cte( abo, r1 );\r
125    writeln( f,  'DNI: ' + r1.dni + ' | Nombre: ' + r1.nombre );\r
126 {MOVER: izquierda}\r
127    ABO_mover_cte( abo, ABO_izquierda, e );\r
128    if not e then\r
129       ABO_elem_cte( abo, r1 )\r
130    else\r
131       writeln( f,  'ERROR AL MOVER' );\r
132    writeln( f,  'DNI: ' + r1.dni + ' | Nombre: ' + r1.nombre );\r
133    { YA ANDA EL BUSCAR!!!!!! }\r
134 {BUSCAR}\r
135    ABO_buscar( abo, '00000002', e );\r
136    if e then writeln( f,  'ERROR: buscar!!!' );\r
137 {BORRAR}\r
138    ABO_borrar_cte( abo );\r
139    writeln( f,  'despues de borrar ''00000002''' );\r
140    APL_ABO_recorrer_rec( abo , f );\r
141    ABO_buscar( abo, '00010002', e );\r
142    if e then writeln( f,  'ERROR: buscar!!!' );\r
143 {ELEM_CTE}\r
144    ABO_elem_cte( abo, r2 );\r
145    writeln( f,  'DNI: ' + r2.dni + ' | Nombre: ' + r2.nombre );\r
146    r2.dni := '00000002';\r
147    r2.nombre := 'NUEVO';\r
148    ABO_modif_cte( abo, r2, e );\r
149    if e then writeln( f,  'ERROR: modif_cte!!!' );\r
150    ABO_elem_cte( abo, r1 );\r
151    writeln( f,  'DNI: ' + r1.dni + ' | Nombre: ' + r1.nombre );\r
152 {MOVER: raiz}\r
153    ABO_mover_cte( abo, ABO_raiz, e );\r
154 {MOVER: derecha}\r
155    ABO_mover_cte( abo, ABO_derecha, e );\r
156    if e then writeln( f,  'ERROR: mover_derecha!!!' );\r
157    ABO_mover_cte( abo, ABO_izquierda, e );\r
158    if e then writeln( f,  'ERROR: mover_izquierda!!!' );\r
159    ABO_elem_cte( abo, r1 );\r
160    writeln( f,  'DNI: ' + r1.dni + ' | Nombre: ' + r1.nombre );\r
161    writeln( f,  'despues de modificar ''00100002''' );\r
162    APL_ABO_recorrer_rec( abo , f );\r
163 {BUSCAR POR RANGO}\r
164    PILAC_inicializar( p );\r
165    ABO_UTIL_buscar_por_rango( abo,'00000012', '00000412', p );\r
166    writeln( f,  'Mostrando resultados de busqueda desde ''00000012'' hasta '' 00000412''' );\r
167    while ( not PILAC_vacio( p ) ) do begin\r
168       PILAC_sacar( p, r1 );\r
169       writeln( f,  'DNI: ' + r1.dni + ' | Nombre: ' + r1.nombre );\r
170    end;\r
171    close( f );\r
172  end.