TObject);
vari,j,m:byte;
v:array[1..numberneurons] of shortint; beginindexBtnNextClick:=indexBtnNextClick+1;
for m:=1 to numberneurons do begin
if (Percept_FieldHop.Brushes[m]=Percept_FieldHop.RectBrush) then
begin
v[m]:=1;
end
else
if (Percept_FieldHop.Brushes[m]=Percept_FieldHop.BackGroundBrush) then
begin
v[m]:=0;
end;
end;
for i:=1 to numberneurons-1 do begin
for j:=i+1 to numberneurons do begin
w[i,j]:=w[i,j]+(2*v[i]-1)*(2*v[j]-1);
w[j,i]:=w[i,j];
end;
end;
if (indexBtnNextClick+1)=numberpatterns then
begin
BtnNext.Caption:='last';
end
else
begin
if (indexBtnNextClick)=numberpatterns then
begin
BtnNext.Font.Color:=clWindowText;
BtnNext.Caption:='finished';
LabelInput.Font.Color:=clRed;
LabelInput.Visible:=True;
end
else
begin
BtnNext.Caption:='next';
end;
end; end; procedure TFrmHop.BtnOutputClick(Sender: TObject);
vari,j,m,indicator:byte;
y,z:array[1..numberneurons] of shortint;
wij,wijthres:shortint;
k:longint; begin
for m:=1 to numberneurons do begin
if (Percept_FieldHop.Brushes[m]=Percept_FieldHop.RectBrush) then
begin
z[m]:=1;
end
else
if (Percept_FieldHop.Brushes[m]=Percept_FieldHop.BackGroundBrush) then
begin
z[m]:=0;
end;
end;
for m := 1 to numberneurons do
begin
y[m]:=z[m];
end;
indicator:=0;
while indicator=0 do begin
for i:=1 to numberneurons do begin
wij:=0;
for j:=1 to numberneurons do begin
if ij then
wij:=wij+w[i,j]*z[j];
end;
wijthres:=wij-threshold;
if wijthres>=0 then
z[i]:=1
else
z[i]:=0;
end;
i:=1;
while inumberneurons;
end;
end;{while}
end;{while}
for m := 1 to numberneurons do
begin
if z[m]=1 then
begin
Percept_FieldHop.Brushes[m]:=Percept_FieldHop.RectBrush;
end
else
if z[m]=0 then
begin
Percept_FieldHop.Brushes[m]:=Percept_FieldHop.BackGroundBrush;
end;
stop:=false;
repeat
Application.ProcessMessages;
until stop;
end;
end; procedure TFrmHop.BitBtnCancelClick(Sender: TObject);
var i,j:byte;
begin
BtnNext.Font.Color:=clRed;
for i:=1 to numberneurons do begin
for j:=1 to numberneurons do begin
w[i,j]:=0;
end;
end;
indexBtnNextClick:=0;
LabelInput.Visible:=False;
BtnNext.Caption:='first';
for i := 1 to numberneurons do
begin
Percept_FieldHop.Brushes[i]:=Percept_FieldHop.BackGroundBrush;
end; end; procedure TFrmHop.ButtonDelayClick(Sender: TObject);
begin
stop:=true;
end;
procedure TFrmHop.ButtonRetrainClick(Sender: TObject);
vari,j,m:byte;
v:array[1..numberneurons] of shortint; begin
for m:=1 to numberneurons do begin
if (Percept_FieldHop.Brushes[m]=Percept_FieldHop.RectBrush) then
begin
v[m]:=1;
end
else
if (Percept_FieldHop.Brushes[m]=Percept_FieldHop.BackGroundBrush) then
begin
v[m]:=0;
end;
end;
for i:=1 to numberneurons-1 do begin
for j:=i+1 to numberneurons do begin
w[i,j]:=w[i,j]-(2*v[i]-1)*(2*v[j]-1);
w[j,i]:=w[i,j];
end;
end; end; end.
Похожие работы
Интересная статья: Основы написания курсовой работы