Хелпикс

Главная

Контакты

Случайная статья





Program Strings_main;. razd:set of char;. integer;. string;. writeln(‘Введите строку для обработки ’);. Readln (st); . while (i<=length(st)) and (not (st[i] in razd)) do. dl_sl:= dl_sl+1;. then begin. kol_sl:= kol_sl+1;. if wrd = inv_wrd



Program Strings_main;

var 

razd:set of char;

i,         {номер обрабатываемого символа строки}

kol_sl,    { количество слов в строке,

            оно же – порядковый номер }

dl_sl      {длина очередного слова}   

     : integer;

st,        {исходная строка }

wrd,        {текущее слово}

inv_wrd        {инвертированное слово }

    : string;

begin

razd:=[' ',',','.',':','!'];

writeln(‘Введите строку для обработки ’);

  Readln (st); 

 

kol_sl:=0; {до обработки строки количество слов = 0 }

kol_pal := 0; {до обработки количество палиндромов = 0 }

 

i:=1; { обработка начинается с первого символа строки}

while ( i<=length(st)) do {обеспечение перебора всех

                        символов строки }

 begin

 dl_sl:=0; {длина текущего слова}

 wrd := ‘’; { нач. значение – пустая строка}

 inv_wrd := ‘’; { нач. значение – пустая строка}

beg_wrd:=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;

        {действия с очередным словом }

        {о каждом слове известно:

           порядковый номер в строкеkol_sl,

           длина словаdl_sl,

           номер байта начала слова в строке beg_wrd ,

           палиндром или нет wrd = inv_wrd ? }

   if wrd = inv_wrd

    then begin { найден палиндром }

               kol_pal := kol_pal + 1; {кол-во палинд.}

               {действия с очередным палиндромом }

                   

            end;

      end;

i:=i+1;  {переход к очередному символу строки}

end; {конец цикла перебора символов строки}

{вывод результатов работы со строкой}

readln;

end.

 



  

© helpiks.su При использовании или копировании материалов прямая ссылка на сайт обязательна.