8.1 Organización de Archivos 185 leer (a . domicilio . calle , a . domicilio . numero, a.domicilio.ciudad) Repetir para i 1, 5 leer ( a . notas ( i ) ) fin para FIN cambios b.1) Procesamiento de archivos con Organización Directa De acuerdo a lo explicado en el item b), desarrollaremos un ejemplo. Ejemplo: En un archivo directo MATRIZ.DAT se han grabado los elementos de una matriz cuadrada real de 100 filas por 100 columnas, en orden de filas. Cada elemento ocupa un registro. Sin necesidad de cargar la matriz en memoria: a) Calcular el promedio de los elementos de la primera columna de la matriz. b) Reemplazar cada elemento de la última fila por dicho promedio. Algoritmo directos tipo registro reg1 real: x fin_registro entero: i real: suma, prom tipo(reg1) elem Inicio abrir (20,"MATRIZ.DAT",acceso= directo, longitud registro reg1) ! se especifica no sólo la referencia 20 y el nombre del archivo, sino también que es de acceso ! directo yla longitud del tipo de registro, en este caso reg1, que por contener un solo campo ! real ocupará 4 bytes. suma 0 Repetir para i 1 , 9901, 100 ! localizar cada elemento de la primera columna de la matriz; el ! primero está en el registro 1, el segundo en el 101, el tercero en ! el 201, hasta el centésimo en el 9901. leer (20, registro i: elem) ! leer el registro que está en la posición i (completo). suma suma + elem.x !acumular en suma el valor del único campo del registro finpara prom sumax2F;100 ! promedio calculado elem.x prom ! asignarlo para modificar la última fila Repetir para i 9901, 100000 ! los elementos de la última fila ocupan esas posiciones escribir (20, registro i: elem) ! escribir el registro completo en la posición dada finpara cerrar (20) FIN