Vous êtes sur la page 1sur 3

Problema 2

Se tiene (ya existe) el siguiente


Cod.
Mes
Pago-Hora
100
Enero
22.5
150
Marzo
30
100
Abril
20.8
200
Marzo
40
100
Febrero
25
150
Enero
40.5

archivo fsico EMPLEADO.DAT


T-Horas
50
40
70
30
20
100

Donde:
Cod: cdigo de un empelado
Mes: Nombre de un mes del ao
Pago hora: Pago por hora del mes
T-Horas: total de hora trabajadas en el mes.
Se Pide:
a) Presentar por cada empelado: cdigo y los meses del ao en donde
obtuvo el mayor monto pagado (monto-pagado = Pago-hora * T-hora)
b) Crear un archivo llamado REPORTE.DAT con los campos cdigo y
monto promedio pagado (el cual es el promedio de los meses
pagados)
Nota: tener presente que a un empleado no necesariamente se le paga
todos los meses del ao.
Solucin:
1.- Definir los registros del archivo y los archivos a trabajar,
El archivo EMPLEADO ser el ingreso de informacin ser tomado como
LECTURA / ESCRITURA en una primera etapa para ordenar el archivo por
orden secuencial al cdigo del alumno.
El archivo REPORTE ser definido como escritura para cargar los registros,
quedando el archivo:
Cod.
100
150
200

Mto.Prom
edio
1,027.00
2,625.00
1,200.00

De acuerdo a los datos que tenemos.

Tipo

Var

Reg1 =

Registro
Cod: Entero
Mes: Cadena
Pago-Hora: Real
T-Horas: Real
Notas: Arreglo [1..15] de Real
Fin de Registro
Reg2 =
Registro
Cod: Entero
Monto Promedio: Real
Fin de Registro
File1: Fichero de Reg1
File2: Fichero de Reg2
X1 : R1
X2 : R2
Aux : R2

Asignar (File1; Empleado)


Asignar (File2, Reporte)
n
Tam-Fich (File1)
n.
Abrir LE (File1)
(actualizacin)

Proceso Ordenar

/* tamao del fichero asignado a variable


/* abre archivo en modo lectura / escritura
/* ordena por cdigo de empleado para

determinar luego el
Monto pagado por cada mes */
Desde i
1 hasta n-1
Desde j
i+1 hasta n
Pos-Fichero (File1, i)
Leer (File1;X1)
Pos_fichero (File1, j)
Leer (File1, X2)
Si (x1.cod > X2.cod)
Pos-fichero(file1;i)
Escribir (File1;X2)
Pos-fichero(File2; j)
Escribir (File1; X1)
Fin de si
Fin de desde
Fin desde
Fin Ordenar.
Cerrar (File1)

/*se ubica en archivo en el registro de


posicin
i-1 */

Proceso clculo y grabacin.


Abrir L (File1)
Abrir E (File2)
Leer (File1, X1)
cod
X1.cod; i
1;
Mientras (i n) hacer
Aux.cod
cod
Pos-fichero (File1, i)
Cant_meses
0; sum
0; k
i; Monto-Mayor
0;
Mes-MM
;
Leer (File1; X1)
Mientras cod = X1.cod i n
Monto-Pagado = X1.pago_hora * X1.T-Hora
cant-meses
cant-meses +1
Sum
sum + Monto-pagado
Si Monto-pagado > Monto-Mayor
Monto-Mayor
Monto-pagado
Mes-MM
X1.Mes
Fin si
i
i +1;
Si (i n)
Leer (File1, X1)
Fin si
Fin mientras
Aux.Monto-Prom
Sum / cant-meses
/* Creando el archivo 2 que contiene el cdigo del empleado y su
monto promedio.
Escribir (File2, Aux)
/* Muestra los valores solicitados como salida, el cdigo, mayor monto
pagado mes
Escribir (Aux.cod; Monto-Mayor; Mes-MM); /* Muestra valores
solicitados.
Si ( i n)
Pos-fich (File1; i)
Leer (File1, X1)
Cod
X1.cod
Fin si
Fin mientras
Fin

Vous aimerez peut-être aussi