LINEBURG


<< . .

 3
( 3)



procedure InitFunction(var a:alfa;var b:beta; var c:gamma;var d:delta);
{ }
type Nalfa=array[1..Nmax]of alfa;
Ngamma=array[1..Nmax]of gamma;
Nword=array[1..Nmax]of word;

{ }
type alfaAction=record
{ }
end; gammaAction=record
{ }
end; procedure ActionFunction(a_,_a:alfa;b_,_b:beta;c_,_c:gamma;d:delta;No_,_No:word; var tmp:beta);
{ }
procedure InitAction;
{ }
{--}var a:Nalfa; b:Nbeta; c:Ngamma; d:delta;
{--} tmp:array[1..Nmax] of Nbeta;
{--} Nex:Nword;
{--} aA:alfaAction; cA:gammaAction;
{--} TableRalation:array[1..Nmax] of Nword;
{--} Nobj:word; {- }
{--}procedure Cr(i,j:word);forward;procedure Br(i,ii:word);forward;
{--}procedure Co; forward; procedure Bo(i:word); forward;
{--}procedure BoAll; forward; procedure f(i:word);forward;
{--}procedure fAll; forward; procedure fAllback; forward;
{--}procedure Action(i:word);forward;procedure ActionAll;forward;
{ :}
type alfaObject=record
{ }
end;type gammaObject=record
{ }
end; var aObj:alfaObject; cObj:gammaObject;
procedure functionObject
(cObj:gammaObject);
{ }
procedure InitObject;
{ }
procedure fObj; forward;

{ }
type alfaModel=record
{ }
end;type gammaModel=record
{ }
end;procedure ModelFunction;
{ }
procedure ModelInit;
{ }
procedure out_befor(a:alfa;b:beta;c:gamma;d:delta; Nex:word;No:word);
{ }
procedure out_after(a:alfa;b:beta;c:gamma;d:delta; Nex:word;No:word);
{ }
procedure out_beforObject(a:alfaObject;c:gammaObject);
{ }
procedure out_afterObject(a:alfaObject;c:gammaObject);
{ }
{********** *******************************}
{###################################################}
{ :}
procedure f(i:word);
begin
out_befor(a[i],b[i],c[i],d,Nex[i],i);
ResultFunction(a[i],b[i],c[i],d,tmp[i],Nex[i],i,false);
InternalFunction(a[i],b[i],c[i],d,Nex[i],i,false);
out_after(a[i],b[i],c[i],d,Nex[i],i);
end;
procedure fAll;
var i:word;
begin
for i:=1 to Nobj do f(i);
end;

procedure fAllback;
var i:word;
begin
for i:= Nobj downto 1 do f(i);
end;
procedure fObj;
begin
out_beforObject(aObj,cObj);
functionObject(cObj);
out_afterObject(aObj,cObj);
end;
procedure Action(i:word);
var j,k:word;
begin
for j:=1 to Nex[i] do
begin
k:=TableRalation[i][j];
ActionFunction(a[i],a[k],b[i],b[k],c[i],c[k],d,i,k,tmp[i][j]);
end;
end;
procedure ActionAll;
var i:word;
begin
for i:=1 to Nobj do Action(i);
end;

procedure Cr(i,j:word);
begin
Nex[i]:=Nex[i]+1; TableRalation[i][ Nex[i] ]:=j;
end;

procedure Br(i,ii:word);
var k:word;
label 1;
begin
for k:=1 to Nex[i] do
if TableRalation[i][k]=ii then
begin
TableRalation[i][k]:=TableRalation[i][ Nex[i] ];
Nex[i]:=Nex[i]-1;
goto 1;
end;
1:
end;
procedure BrAll(i:word);
begin
Nex[i]:=0;
end;

procedure Co;
var k:word;
begin
if Nobj<Nmax then
begin
Nobj:=Nobj+1;
Nex[ Nobj ]:=0;
InitFunction(a[Nobj],b[Nobj],c[Nobj],d);
end;
end;
procedure Bo(i:word);
var j,k,s:word;
begin
if i<=Nobj then
begin
for k:=1 to Nobj do {- }
begin { }
s:=0;
for j:=1 to Nex[k] do
if TableRalation[k][j]=i then s:=s+1;
for j:=1 to s do Br(k,i);
end;
a[i]:=a[Nobj]; b[i]:=b[Nobj]; c[i]:=c[Nobj];
Nex[i]:=Nex[ Nobj ];
TableRalation[i]:=TableRalation[Nobj];
Nobj:=Nobj-1;
for k:=1 to Nobj do
for j:=1 to Nex[k] do
if TableRalation[k][j]=Nobj+1 then
TableRalation[k][j]:=i;
end;
end;
procedure BoAll;
begin
Nobj:=0;
end;

VAR i:word;
Begin
for i:=1 to Nmax do Co;
InitAction; InitObject; ModelInit;
Repeat
ModelFunction; fObj;
until false;
End.


* .
* .
*
??

??

??

??




180



<< . .

 3
( 3)



Copyright Design by: Sunlight webdesign