Определить число подстрок "AB" встречающихся в строке с номером n - Free Pascal
Формулировка задачи:
Последовательность строк строится по следующему правилу: S(1)="A", S(2)="B",
S(k)=S(k-1)+S(k-2), если k>=3(последовательность Фибоначчи). Необходимо определить число подстрок "AB" встречающихся в строке с номером n. Объясните, пожалуйста, новичку как написать эту программу.
Решение задачи: «Определить число подстрок "AB" встречающихся в строке с номером n»
textual
Листинг программы
uses strutils;
// ...
k := -1;
p := 0;
repeat
inc(k);
p := posex('AB', s3, p + 1);
until p = 0;
Объяснение кода листинга программы
В данном коде используется язык программирования Free Pascal. В первой строке подключается библиотека StrUtils, которая предоставляет функции для работы со строками.
uses strutils;- подключается библиотека StrUtils Затем идет блок кода, который решает задачу поиска количества подстрокABв строке с номером n.k := -1;- инициализируется счетчик подстрокp := 0;- инициализируется счетчик позиции подстрокиrepeat- начинается цикл, который будет выполняться до тех пор, пока не будет найдена следующая подстрокаinc(k);- увеличивается значение счетчика k на 1p := posex('AB', s3, p + 1);- находится позиция следующей подстрокиABв строке s3, начиная с позиции p + 1until p = 0;- цикл выполняется до тех пор, пока не будет найдена следующая подстрока Таким образом, код считает количество подстрокABв строке s3. Значение переменной k будет содержать количество найденных подстрок, а значение переменной p будет содержать последнюю позицию подстроки в строке s3.