Главная » Pascal, Исходники, Разное » Палиндромы
Дек
05

Палиндромы

Определить, является ил указанная строка палиндромом. Палиндромом называется строка, одиниково читающаяся слева направо или справа налево.

[sourcecode highlight=»20″ language=»pascal»]
Uses Crt;
var
i: Byte;
Str: String;

begin
ClrScr;
Readln(Str);
Write(‘ Строка ‘, Str);
While Pos(‘ ‘, Str) <> 0 do
Delete(Str, Pos(‘ ‘, Str), 1);

i:=1;
While (i <= Length(Str) div 2) and (Upcase(Str[i]) = Upcase(Str[Length(Str)-i+1])) do
Inc(i);

if i <= (Length(Str) div 2) then Write(‘ не ‘);
Write(‘ является палиндромом’);
end.
{ prepared special for www.kpeople.ru by AlexeyJava }
[/sourcecode]

В этом варианте программы из строки удаляются пробелы, и после этого сравниваются пары симметричных символов, таких пар Length(Str) div 2, т.е. количество символов в строке без учета пробелов деленное на 2. Строка являтся палиндромом если все пары пересмотрены и совпадают.

[sourcecode highlight=»20″ language=»css»]
Uses Crt;
var
Str, Str1, Str2: String;
i: Byte;

begin
ClrScr;
Readln(Str);

for i:=1 to Length(Str) do
if Str[i] <> ‘ ‘ then
begin
Str1:=Str1+Upcase(Str[i]);
Str2:=Upcase(Str[i])+Str2;





end;

if Str1 <> Str2 then Str:=Str+’ не';
Write(‘Строка ‘, Str, ‘ является палиндромом ‘);
end.
{ prepared special for www.kpeople.ru by AlexeyJava }
[/sourcecode]

Во второй программе складываются две спомогательные строки Str1 и Str2 без учета пробелов. Строка является палиндромом, если вспомогательные строки равны между собой.
В обоих примерах используется функция Upcase, которая пробразовывает символ в верхний регистр, и в приведеннных выше примерах применяется для того чтобы палиндромом считалась строка не только в которой соблюдаются все условия, но в которой встречаются символы верхнего и нижнего регистра, иначе программа будет реагировать по-другому.



Понравилась статья? Сделай приятно ее автору, поделись с друзьями:


Хотите получать обновления данного блога на EMail?

Введите адрес Почтового Ящика:




Подтвердите подписку в письме пришедшем на Почту, после чего начнете получить рассылку.