18.04.2008, 13:15
общий
это ответ
Здравствуйте, SHERRY! Могу предложить такой способ решения. Надеюсь я Вам помог.
Приложение:
Program z1; uses crt; const a=[‘ ‘,‘,‘,‘!‘,‘?‘,‘.‘]; var s,s1,polin:string; i,j:integer; k:byte; q:boolean; procedure reWriteString (s1:string; var polin:string); var l:integer; begin polin:=‘‘; for l:=ord(s1[0]) downto 1 do polin:=polin+s1[l]; end; function poisk (s:string):byte; begin k:=0; i:=0; j:=1; q:=false; repeat inc(i); if (s[i] in a) then j:=i+1 else begin repeat inc(i); if s[i] in a then q:=false else q:=true; until (q=false) or (i=ord(s[0])+1); s1:=copy(s,j,i-j); dec(i); reWriteString(s1,polin); Writeln(polin); if s1 = polin then inc(k); end; until i=ord(s[0]); poisk:=k;end;beginWrite(‘Введите строку: ‘);Readln(s); Writeln(‘Число полиндромов= ‘,poisk(s)); readlnend.