Палиндромы

Ответить
hohotushka
Сообщения: 7
Зарегистрирован: 12 дек 2009, 18:41

Создать программу, проверяющую является ли строка текстовым палиндромом
Вот мой рабочий вариант,НО,мне нужно его не много упростить. Тоисть сделать так,чтобы не задавать константу символом,а чтобы программа сама удаляла их... Помогите :(
uses crt;
const rz=['.',',',';',':','?','!','-',' '];
procedure Format(var st:string);
var i:byte;
begin
for i:=length(st)downto 1 do
if st in rz then delete(st,i,1);
for i:=1 to length(st) do
st:=upcase(st);
for i:=1 to length(st) do
if st in ['а'..'п'] then st:=chr(ord(ord(st)-32))
else if st in ['р'..'я'] then st:=chr(ord(ord(st)-80))
else if st='ё' then st[i]:='Ё';
end;
procedure Palindrom(st:string);
var s1:string;
i:byte;
begin
s1:='';
for i:=length(st)downto 1 do
s1:=s1+st[i];
if st=s1 then write('palindrom')
else write('ne palindrom');
end;
var s:string;
begin
clrscr;
writeln('vvedite text:');
readln(s);
Format(s);
Palindrom(s);
readln
end.
Хыиуду
Сообщения: 2442
Зарегистрирован: 06 мар 2005, 21:03
Откуда: Москва
Контактная информация:

Как много букв...
for i:=1 to length(s) div 2 do
if s<>s[length(s)-i+1] then begin writeln('Не является!'); exit; end;
writeln('Является!');
Искусство программирования - заставить компьютер делать все то, что вам делать лень.
Для "спасибо" есть кнопка "Спасибо" в виде звездочки внизу под ником автора поста.
hohotushka
Сообщения: 7
Зарегистрирован: 12 дек 2009, 18:41

Хыиуду писал(а):Как много букв...
for i:=1 to length(s) div 2 do
if s<>s[length(s)-i+1] then begin writeln('Не является!'); exit; end;
writeln('Является!');

Это вставить в procedure Palindrom :confused:
поясните пожалуйста более детально,очень прошу :(
Хыиуду
Сообщения: 2442
Зарегистрирован: 06 мар 2005, 21:03
Откуда: Москва
Контактная информация:

Да, это весь код процедуры. Только замените в объявлении процедуры переменную st на s. Или наоборот в коде процедуры - s на st
Искусство программирования - заставить компьютер делать все то, что вам делать лень.
Для "спасибо" есть кнопка "Спасибо" в виде звездочки внизу под ником автора поста.
Ответить