|
Главная | Правила | Регистрация | Дневники | Справка | Пользователи | Календарь | Поиск | Сообщения за день | Все разделы прочитаны |
![]() |
|
Опции темы | Опции просмотра |
![]() |
#1 (permalink) | ||
Новичок
Регистрация: 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.
|
||
![]() |
![]() |
![]() |
|
Helpmaster
Member
Регистрация: 08.03.2016
Сообщений: 0
|
Необходимые ответы вы можете найти по этим ссылкам Нужно написать программу расчета вознаграждения Нужно написать программу в Pascal Принцип работы многоядерного процессора - нужна помощь |
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
![]() |
Опции темы | |
Опции просмотра | |
|
|