[fpc-devel] Fwd: bug report
Gerhard Scholz
gs at g--s.de
Wed Jun 1 18:54:02 CEST 2005
I tried this example, but it does compile! No problem!
----- Original Message -----
From: 杨哲
To: fpc bug
Sent: Saturday, May 21, 2005 4:10 AM
Subject: [fpc-devel] Fwd: bug report
fpc 2.0.0 win32
problem:
I can't see pi in proceudre pre but I can see it in procedure kmp.
pre is a procedure belonging to kmp.
I found that I could only see vars in this proceudre/function and main
program, but I couldn't see vars in the procedure that this procedure
belongs to.
code:
var
t,p:string;
procedure kmp(t,p:string);
var
n,m,q,i:integer;
pi,match:array[1..255] of integer;
procedure pre(p:string);
var
k,q:integer;
begin
pi[1]:=0;
k:=0;
for q:=2 to m do begin
while (k>0) and (p[k+1]<>p[q]) do k:=pi[k];
if p[k+1]=p[q] then k:=k+1;
pi[q]:=k;
end;
end;
begin
n:=length(t);
m:=length(p);
q:=0;
pre(p);
fillchar(match,sizeof(match),0);
for i:=1 to n do begin
while (q>0) and (p[q+1]<>t[i]) do begin
match[i-q]:=q;
q:=pi[q];
end;
if p[q+1]=t[i] then q:=q+1;
if q=m then begin
match[i-q+1]:=q;
q:=pi[q];
end;
end;
write(match[1]);
for i:=2 to n do write(' ',match[i]);
writeln;
end;
begin
readln(t);
readln(p);
kmp(t,p);
end.
yangzhe1990 at yahoo.com.cn
杨哲
Do You Yahoo!?
150万曲MP3疯狂搜,带您闯入音乐殿堂
美女明星应有尽有,搜遍美图、艳图和酷图
1G就是1000兆,雅虎电邮自助扩容!
_______________________________________________
fpc-devel maillist - fpc-devel at lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-devel
More information about the fpc-devel
mailing list