Нужно написать принцип работы данной программы
[MOD2]Вообще-то, сначала принято здороваться. И хотя бы вежливо попросить. А то- "нужно!"- и всё...[/MOD2]
Код:
PROGRAM Boyer_Moore_2;
{ Алгоритм Бойера-Мура для определения вхождения подслова P в слово S }
var Wrd1,Wrd2: String[255];
j,i,k,i0: Integer;
d : Array['a'..'z'] of Integer;
S : Array[0..255] of Char;
P : Array[0..255] of Char;
N,M : Integer; ch : Char;
BEGIN
Write('Введите основное слово: ');
ReadLn(Wrd1);
Write('Введите слово для поиска: ');
Read(Wrd2);
n:=Length(Wrd1);
m:=Length(Wrd2);
For j:=0 to n-1 do S[j]:=Wrd1[j+1];
For j:=0 to m-1 do P[j]:=Wrd2[j+1];
{ ------------------------------- }
For ch:='a' to 'z' do d[ch]:=m;
For j:=0 to m-2 do d[P[j]]:=m-j-1;
i:=m;
i0:=0;
Repeat
While i0<i do
begin
Write(S[i0]);
i0:=i0+1
end;
j:=m;
k:=i;
Repeat
k:=k-1;
j:=j-1
until (j<=0) OR (P[j]<>S[k]);
i:=i+d[S[i-1]]
until ((j<=0) OR (i>N)) AND ((i>n) OR (P[j]=S[k]));
WriteLn;
If (j=0) AND (S[k]=P[j]) then WriteLn('Подслово найдено.') else WriteLn('Подслово не найдено.')
END.
[MOD2]Вообще-то, сначала принято здороваться. И хотя бы вежливо попросить. А то- "нужно!"- и всё...[/MOD2]