Algoritmo del Banquero codigo en monitor
Publicado por xio (3 intervenciones) el 31/07/2013 06:56:05
xfaaa ayudenme necesito el codigo del algortimo del banquero en monitor
esto es lo tngo nose como pasarlo a monitor
PROGRAM banco;
CONST NCTAS=100;
VAR Cuenta : array[1..NCTAS] of integer; (* Almacena los saldos *)
i: Integer;
PROCESS Auditor;
VAR ci, Total:INTEGER;
BEGIN
REPEAT
sleep(1);
Total:=0;
FOR ci:=1 TO NCTAS DO
Total:= Total + Cuenta[ci];
Writeln('Total : ', Total);
FOREVER
END;
PROCESS banquero;
VAR c1, c2, cant: Integer;
BEGIN
REPEAT
c1 := RANDOM(NCTAS-1)+1; (* Origen *)
c2 := RANDOM(NCTAS-1)+1; (* Destino *)
cant:=0;
IF (Cuenta[c1]>10) THEN cant := RANDOM(10);
Cuenta[c1] := Cuenta[c1] - cant ;
Cuenta[c2] := Cuenta[c2] + cant ;
FOREVER
END;
BEGIN (* Principal *)
For i:= 1 TO NCTAS DO cuenta[i]:=100;
COBEGIN
Banquero;
Auditor
COEND
END.
esto es lo tngo nose como pasarlo a monitor
PROGRAM banco;
CONST NCTAS=100;
VAR Cuenta : array[1..NCTAS] of integer; (* Almacena los saldos *)
i: Integer;
PROCESS Auditor;
VAR ci, Total:INTEGER;
BEGIN
REPEAT
sleep(1);
Total:=0;
FOR ci:=1 TO NCTAS DO
Total:= Total + Cuenta[ci];
Writeln('Total : ', Total);
FOREVER
END;
PROCESS banquero;
VAR c1, c2, cant: Integer;
BEGIN
REPEAT
c1 := RANDOM(NCTAS-1)+1; (* Origen *)
c2 := RANDOM(NCTAS-1)+1; (* Destino *)
cant:=0;
IF (Cuenta[c1]>10) THEN cant := RANDOM(10);
Cuenta[c1] := Cuenta[c1] - cant ;
Cuenta[c2] := Cuenta[c2] + cant ;
FOREVER
END;
BEGIN (* Principal *)
For i:= 1 TO NCTAS DO cuenta[i]:=100;
COBEGIN
Banquero;
Auditor
COEND
END.
Valora esta pregunta


0