Добавил:
Studfiles2
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Шпоры по МПиПА / Строки / Алгоритм последовательного поиска / Pascal / Исходник / Find
.pas program SimpleSearch;
const
Nmax = 10000;
type
MyString = array[0..Nmax-1] of char;
var
s: MyString; {текст}
p: MyString; {слово}
function Find(const str, substr : MyString) : integer;
var
i, j, Res, ls, lss : integer;
begin
ls := Length(str);
lss := Length(substr);
if ( ls = 0 ) then begin write('Wrong string '); Find := -1; exit; end;
if ( lss = 0 ) then begin write('Wrong substring '); Find := -1; exit; end;
Res := -1;
for i := 0 to ls - lss do begin
for j := 0 to lss do begin
if substr[j] <> str[i+j] then break
else if j = lss - 1 then begin
Res := i;
break;
end;
end;
end;
Find := Res;
end;
begin
Writeln('Simple Search Algoritm.');
Write('String: '); Readln(s);
Write('Substring: '); Readln(p);
Write('Result: '); writeln( Find(s,p) );
Writeln('Press any key to continue...');
Readln;
end.
const
Nmax = 10000;
type
MyString = array[0..Nmax-1] of char;
var
s: MyString; {текст}
p: MyString; {слово}
function Find(const str, substr : MyString) : integer;
var
i, j, Res, ls, lss : integer;
begin
ls := Length(str);
lss := Length(substr);
if ( ls = 0 ) then begin write('Wrong string '); Find := -1; exit; end;
if ( lss = 0 ) then begin write('Wrong substring '); Find := -1; exit; end;
Res := -1;
for i := 0 to ls - lss do begin
for j := 0 to lss do begin
if substr[j] <> str[i+j] then break
else if j = lss - 1 then begin
Res := i;
break;
end;
end;
end;
Find := Res;
end;
begin
Writeln('Simple Search Algoritm.');
Write('String: '); Readln(s);
Write('Substring: '); Readln(p);
Write('Result: '); writeln( Find(s,p) );
Writeln('Press any key to continue...');
Readln;
end.