1 program TrabajoPracticoI;
\r
4 ALGORITMOS Y PROGRAMACIÓN II
\r
5 ========== = ============ ==
\r
7 TRABAJO PRÁCTICO NÚMERO 1
\r
8 ~~~~~~~ ~~~~~~~~ ~~~~~~ ~
\r
13 1er Cuatrimestre 2000
\r
14 --- ------------ ----
\r
21 PROG_GRL, GRAL, TABLA, PILA_C;
\r
26 fEnt: T_ARCHIVO_COMANDOS;
\r
39 mensajeDeEntrada( 'Programa para procesar archivos de comandos.' );
\r
40 procesarParametros( fEnt, fSal, err );
\r
41 if ( err ) then begin
\r
43 exit; { ----------------------------------> SALE DEL PROGRAMA!!!! }
\r
46 { Inicializacion de TADs }
\r
47 T_TABLA_Crear( tbl );
\r
48 PILAC_Inicializar( p );
\r
50 { Lectura de datos hasta EOF }
\r
51 while ( not eof( fEnt ) ) do begin
\r
53 cmd := strToComando( c.comando );
\r
54 agregaComando( fSal, c );
\r
56 { Ejecuta segun tipo comando }
\r
61 val( c.dni, r.dni, valerr ); { Convierte el DNI en string a DNI en longint }
\r
62 if ( valerr <> 0 ) then { Si hay un error al convertir }
\r
63 agregaError( fSal, comandoToStr( cmd ), 'DNI incorrecto!' )
\r
65 r.nombre:= c.nombre;
\r
66 if ( T_TABLA_Llena( tbl ) ) then
\r
67 agregaError( fSal, comandoToStr( cmd ), 'Tabla Llena!' )
\r
69 m := strToMovim( c.Movimiento, err );
\r
71 agregaError( fSal, comandoToStr( cmd ), 'Movimiento NO valido ("' + movimToStr( m ) + '")!' )
\r
73 T_TABLA_Insertar( tbl, m, r );
\r
74 agregaRegistro( fSal, comandoToStr( cmd ), r );
\r
80 { Insersion Ordenada }
\r
82 val( c.dni, r.dni, valerr ); { Convierte el DNI en string a DNI en longint }
\r
83 if ( valerr <> 0 ) then { Si hay un error al convertir }
\r
84 agregaError( fSal, comandoToStr( cmd ), 'DNI incorrecto!' )
\r
86 r.nombre:= c.nombre;
\r
87 if ( T_TABLA_Llena( tbl ) ) then
\r
88 agregaError( fSal, comandoToStr( cmd ), 'Tabla Llena!' )
\r
89 else if ( not T_TABLA_Ordenada( tbl ) ) then
\r
90 agregaError( fSal, comandoToStr( cmd ), 'Tabla Desordenada!' )
\r
92 T_TABLA_Insertar_Ord( tbl, r );
\r
93 agregaRegistro( fSal, comandoToStr( cmd ), r );
\r
100 if ( T_TABLA_Vacia( tbl ) ) then
\r
101 agregaError( fSal, comandoToStr( cmd ), 'Tabla Vacia!' )
\r
103 T_TABLA_Ordenar( tbl );
\r
108 val( c.dni, dni, valerr ); { Convierte el DNI en string a DNI en longint }
\r
109 if ( valerr <> 0 ) then { Si hay un error al convertir }
\r
110 agregaError( fSal, comandoToStr( cmd ), 'DNI incorrecto!' )
\r
111 else if ( T_TABLA_Vacia( tbl ) ) then
\r
112 agregaError( fSal, comandoToStr( cmd ), 'Tabla Vacia!' )
\r
113 else if ( not T_TABLA_Ordenada( tbl ) ) then
\r
114 agregaError( fSal, comandoToStr( cmd ), 'Tabla Desordenada!' )
\r
116 T_TABLA_Buscar_Clave( tbl, dni, err );
\r
118 agregaError( fSal, comandoToStr( cmd ), 'No se encontro la clave "' + c.dni + '"!' )
\r
120 T_TABLA_Elem_Cte( tbl, r );
\r
121 agregaRegistro( fSal, comandoToStr( cmd ), r );
\r
128 val( c.dni, r.dni, valerr ); { Convierte el DNI en string a DNI en longint }
\r
129 if ( valerr <> 0 ) then { Si hay un error al convertir }
\r
130 agregaError( fSal, comandoToStr( cmd ), 'DNI incorrecto!' )
\r
132 val( c.dni_hasta, dni, valerr ); { Convierte el DNI en string a DNI en longint }
\r
133 if ( valerr <> 0 ) then { Si hay un error al convertir }
\r
134 agregaError( fSal, comandoToStr( cmd ), 'DNI_hasta incorrecto!' )
\r
136 if ( T_TABLA_Vacia( tbl ) ) then
\r
137 agregaError( fSal, comandoToStr( cmd ), 'Tabla Vacia!' )
\r
138 else if ( not T_TABLA_Ordenada( tbl ) ) then
\r
139 agregaError( fSal, comandoToStr( cmd ), 'Tabla Desordenada!' )
\r
141 T_TABLA_Buscar_por_Rango( tbl, r.dni, dni, p, err );
\r
143 agregaError( fSal, comandoToStr( cmd ),
\r
144 'No se encontro ninguna clave "' + c.dni + '-' + c.dni_hasta + '"!' )
\r
146 while ( not PILAC_vacio( p ) ) do begin
\r
147 PILAC_sacar( p, r );
\r
148 agregaRegistro( fSal, comandoToStr( cmd ), r );
\r
158 if ( T_TABLA_Vacia( tbl ) ) then
\r
159 agregaError( fSal, comandoToStr( cmd ), 'Tabla Vacia!' )
\r
161 T_TABLA_Mover_Cte( tbl, T_MOVIM_primero, err );
\r
163 while ( not err ) do begin
\r
164 T_TABLA_Elem_Cte( tbl, r );
\r
165 agregaRegistro( fSal, comandoToStr( cmd ), r );
\r
166 T_TABLA_Mover_Cte( tbl, T_MOVIM_siguiente, err );
\r
171 { Listar Corriente }
\r
173 if ( T_TABLA_Vacia( tbl ) ) then
\r
174 agregaError( fSal, comandoToStr( cmd ), 'Tabla Vacia!' )
\r
176 T_TABLA_Elem_Cte( tbl, r );
\r
177 agregaRegistro( fSal, comandoToStr( cmd ), r );
\r
181 { Borrar Corriente }
\r
183 if ( T_TABLA_Vacia( tbl ) ) then
\r
184 agregaError( fSal, comandoToStr( cmd ), 'Tabla Vacia!' )
\r
186 T_TABLA_Elem_Cte( tbl, r );
\r
187 T_TABLA_Borrar_Cte( tbl );
\r
188 agregaRegistro( fSal, comandoToStr( cmd ), r );
\r
192 { Modificar Corriente }
\r
194 val( c.dni, r.dni, valerr ); { Convierte el DNI en string a DNI en longint }
\r
195 if ( valerr <> 0 ) then { Si hay un error al convertir }
\r
196 agregaError( fSal, comandoToStr( cmd ), 'DNI incorrecto!' )
\r
198 if ( T_TABLA_Vacia( tbl ) ) then
\r
199 agregaError( fSal, comandoToStr( cmd ), 'Tabla Vacia!' )
\r
201 T_TABLA_Elem_Cte( tbl, r );
\r
202 agregaRegistro( fSal, comandoToStr( cmd ), r );
\r
203 r.nombre:= c.nombre;
\r
204 T_TABLA_Modif_Cte( tbl, r );
\r
205 agregaRegistro( fSal, comandoToStr( cmd ), r );
\r
212 T_TABLA_Limpiar( tbl );
\r
214 { Comando Desconocido }
\r
216 agregaError( fSal, comandoToStr( cmd ), 'Comando Desconocido!' )
\r
218 end; { case ( cmd ) of }
\r
219 end; { while ( not eof( fEnt ) ) do begin }
\r
222 writeln( 'Archivo ', paramstr( 1 ), ' procesado con exito.' );
\r
223 writeln( 'Puede ver la salida y/o errores en el archivo ', paramstr( 2 ) );
\r
224 writeln( 'FIN DEL PROGRAMA' );
\r