Показать сообщение отдельно
Старый 24.07.2011, 22:54   #1 (permalink)
juicy
Новичок
 
Регистрация: 24.07.2011
Сообщений: 1
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию Нужно написать принцип работы данной программы

Код:
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.



Замечание:
Вообще-то, сначала принято здороваться. И хотя бы вежливо попросить. А то- "нужно!"- и всё...
juicy вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070