Всі умови | Умова: Дано натуральне число n, символи s1, ..., sn. визначити число входжень в послідовність s1, ..., sn групи букв:
а) abc.
б) aba.
(С.А. Абрамов, Г.Г. Гнездилова,Е.Н. Капустина, М.И. Селюн. Задачи по программированию. - Вологда, 2000. - №262)
Розв'язок на Pascal
program pr262;
var
s1, s2 : string;
i, j, len1, len2 : integer;
b : boolean;
count : integer;
begin
count := 0;
write('Enter String: '); readln(s1);
s2 := 'abc'; // use 'aba' for variant b
len1 := length(s1);
len2 := length(s2);
i := 1;
while i <= len1 do
begin
if (i + len2 - 1 <= len1) then
begin
b := true;
for j := 1 to len2 do
begin
if (s2[j] <> s1[i + j - 1]) then
b := false;
end;
end else
b := false;
if (b = true) then
begin
count := count + 1;
i := i + len2;
// use i := i + len2 - 1 if "ababa" result must be 2
end else
begin
i := i + 1;
end;
end;
writeln('RESULT: ', count);
readln;
end.