-
Notifications
You must be signed in to change notification settings - Fork 0
/
Maestro.pas
85 lines (73 loc) · 1.55 KB
/
Maestro.pas
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
----------- ACTUALIZAR MAESTRO CON UN DETALLE -----
program actualizar;
type
emp= record
nombre:string[30];
direccion: string [30];
cht:integer; //cantidad horas trabajadas
end;
e_diario=record
nombre:string[30];
chr:integer;
end;
detalle= file of e_diario;
maestro= file of emp;
const
valoralto='9999';
var
regm:emp;
regd:e_diario;
mae1:maestro;
det1:detalle;
procedure leer(var archivo: detalle; var dato: e_diario);
begin
if (not eof(archivo) then
read(archivo,dato);
else
dato.cod:=valoralto;
end;
begin
assign(mae1, 'maestro');
assign(det1, 'detalle');
reset(mae1);
reset(det1);
leer(det1,regd);
while (regd.cod <> caloralto) do begin
regm.cant:+regm.cant+ regd.cht;
leer(det1,regd);
end;
seek(mae1,filepos(mae1-1));
write(mae1,regm);
end.
------- UN MAESTRO N DETALLE ---------
var
regm:prod;
min,regd1,regd2,regd3:v_prod;
det1,det2det3:detalle;
begin
assign(mae1,'maestro);
assign(det1,'detalle1');
assign(det2,'detalle2');
assign(det3, 'detalle');
reset(mae1);
reset(det1);
reset(det2);
reset(det3);
leer(mae1);
leer(det1,regd1);
leer(det2,regd2);
leer(det3,regd3);
minimo(regd1,regd2,regd3,min);
while (min.cod <> valoralto) do begin
read(mae1,regm);
while (regm.cod <>min.cod) do
read(mae1,regm);
while (regm.cod = min.cod) do begin
regm.cant:+regm.cant + min.cantvendida;
minimo(regd1,regd2,regd3.min);
end;
seek(mae1,filepos(mae1 -1));
write(mae1,regm);
end;
end.
--------