Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Работа_со_строками_разбор_задач_осень_2012.doc
Скачиваний:
2
Добавлен:
01.03.2025
Размер:
104.45 Кб
Скачать

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.