📄 gn21.pas
字号:
program ganzhiji(input,output,g,count);
label 1;
const m=4;
n=2;
a=0.2;
b=0.1;
e=0.01;
var q,z,sd,zz:real;
s:array[1..n,1..m] of real;
y:array[1..m] of real;
w:array[1..n] of real;
d:array[1..m] of real;
yf:array[1..m] of real;
sr:array[1..n] of integer;
kk:array[1..m] of integer;
yx:array[1..m] of integer;
i,k,j,h,c,nn,test,sc:integer;
g:file of real;
count:file of integer;
function f(x:real):integer;
begin
if x>0.0 then f:=1
else f:=-1
end;
begin
nn:=n;
c:=0;
z:=0.0;
for k:=1 to m do
begin
for i:=1 to n do
begin
write ('Input s(',i,',',k,')');
read (s[i,k])
end
end;
for k:=1 to m do
begin
write ('Input y(',k,')');
read (y[k])
end;
randomize;
for i:=1 to n do
begin
w[i]:=random(2000)/1000-1.0;
end;
q:=random(2000)/1000-1.0;
repeat
sd:=0.0;
for k:= 1 to m do
begin
z:=0.0;
for i:=1 to n do
begin
z:=z+w[i]*s[i,k];
end;
zz:=z+q;
yf[k]:=f(zz);
d[k]:=y[k]-yf[k];
writeln ('d(',k,')=',d[k]);
sd:=sd+abs(d[k]);
for i:=1 to n do
begin
w[i]:=w[i]+a*s[i,k]*d[k];
writeln ('w(',i,')=',w[i])
end;
q:=q+b*d[k]
end;
c:=c+1;
writeln ('count=',c);
until sd<0.01;
writeln ('count:',c);
for k:=1 to m do
begin
z:=0.0;
for i:=1 to n do
begin
write ('Input sr(',i,'):');
read (sr[i]);
z:=z+w[i]*sr[i]+q
end;
sc:=f(z);
writeln ('Output:',sc)
end
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -