- •Строковые функции.
- •Строковые процедуры.
- •Прочие процедуры и функции (избр).
- •I, {номер обрабатываемого символа }
- •I, {номер обрабатываемого символа }
- •If ( not (st[I] in razd))
- •I, {номер обрабатываемого символа }
- •I, {номер обрабатываемого символа }
- •I, {номер обрабатываемого символа }
- •I, {номер обрабатываемого символа }
- •Inv_wrd {инвертированное слово }
I, {номер обрабатываемого символа }
kol_sl, { количество слов в строке,
оно же – порядковый номер }
dl_sl {длина очередного слова}
: integer;
st, {исходная строка }
wrd, {текущее слово }
Inv_wrd {инвертированное слово }
: string;
begin
razd:=[' ',',','.',':','!'];
writeln(‘Введите строку для обработки ’);
Readln (st);
i:=1; { обработка начинается с первого символа строки}
kol_sl:=0; {до обработки строки количество слов = 0 }
while ( i<=length(st)) do {обеспечение перебора всех
символов строки }
begin
dl_sl:=0; {длина текущего слова}
wrd := ‘’; { нач. значение – пустая строка}
inv_wrd := ‘’; beg_w:=i;{запом }
{ цикл перебора символов текущего слова }
while (i<=length(st)) and (not (st[i] in razd)) do
begin
dl_sl:= dl_sl+1;
wrd := wrd + st[ i ]; {формирование текущего
слова из букв}
inv_wrd := st [ i ] + inv_wrd; {формирование
инвертированного
слова из букв,
буква «приклеивается»
слева}
i:=i+1; {переход к очередному символу строки }
end;
if dl_sl > 0
then begin
kol_sl:= kol_sl+1;
if wrd = inv_wrd
then begin { найден палиндром }
writeln(‘найден палиндром ’, wrd,
‘ его порядковый номер = ‘,kol_sl); kol_pal := kol_pal + 1; {кол-во палинд.} end;
i:=i+1; {переход к очередному символу строки }
end;
readln;
end.
