Составители:
Рубрика:
56
begin
Inc(I); Tab[I].Nam:=Tab[Iz].Nam+'0';
Inc(I); Tab[I].Nam:=Tab[Iz].Nam+'1';
end;
procedure NamP; {запись операции P}
begin Lsv:=Ls-Ord(Tab[I].Nam[0]);
Write(Tab[I].Nam, '':Lsv); Write(F, Tab[I].Nam, '':Lsv)
end;
{запись объема выпуска V}
procedure WriteV;
begin Cwt:=Tab[I].Nam; if Cwt <> Cw then
begin Kb:=Random(Rm-2)+2; if Kb <= 3 then Inc(Kb); Cw:=Cwt end;
Write('':Z, Kb);Write(F, '':Z, Kb);Tab[I].Dat[2]:=Kb
end;
procedure WriteS; {запись состава рабочих мест для операции}
var Ik, Jk, Kb : byte; Usl : boolean;
begin Bn:=[]; if random(Npm)<Npm div 2 then Kb:=2 else Kb:=3;
for Ik:=1 to Kb do begin
repeat Jk:=random(Nb)+1 until not (Jk in Bn); Bn:=Bn+[Jk]
end
end;
procedure WriteN; {запись запрета рабочего места}
begin Write('':Z, '-'); Write(F, '':Z, '-');
Write('':Z, '-'); Write(F, '':Z, '-');
Tab[I].Dat[1+2*J]:= Rm+1; Tab[I].Dat[2+2*J]:= Rm+1
end;
procedure Wtabl; {заполнение таблицы процессов и рабочих мест}
const UrK = 3;
function Kt(C:byte):byte;
begin Kt:=12-C+Round(Random)+Round(Random); end;
begin NamP; WriteV; WriteS;
for J:=1 to Nb do if J in Bn then for Jk:=1 to 2 do
begin if Jk=1 then K:=Random(Rm-UrK)+UrK else K:=Kt(K);
Write(K:Z+1); Write(F, K:Z+1);
Tab[I].Dat[Jk+2*J]:= K
end else WriteN; WriteLn; WriteLn(F)
end;
Страницы
- « первая
- ‹ предыдущая
- …
- 54
- 55
- 56
- 57
- 58
- …
- следующая ›
- последняя »