Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 26.05.2008, 15:39   #1
1234
Заблокирован
 
Регистрация: 09.11.2007
Сообщений: 97
Вопрос Нахождение слов-палиндромов ("перевертышей")

Подскажите, пожалуйста, как реализовать вот такую задачу:

В файле исходных данных задается символьная строка
Написать Паскаль-программу, включающуй 2 процедуры, выполняющие следующие действия:

1. Нахождение слов-палиндромов (перевертышей), одинаково-читающихся как слева направо, так и справа налево
2. Удаление из строки слов, не являющихся палиндромами.

-Очень интересует то, как именно проводить поиск слов-перевертышей для строки из пяти слов, например-
Если поможете, в долгу не останусь..
Сдать надо завтра (3 проги уже написал, а с этой никак не справлюсь)
1234 вне форума Ответить с цитированием
Старый 26.05.2008, 15:51   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Нахождение слов-палиндромов
По памяти:
Код:
var s:string; i:integer;b:boolean;
begin
s:='123321';
b:=true;
for i:=1 to Length(s) div 2 do
 if s[i]<>s[length(s)-i+1] then begin b:=false;end;
if b then //полином

end;
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 26.05.2008, 16:02   #3
1234
Заблокирован
 
Регистрация: 09.11.2007
Сообщений: 97
По умолчанию

Спасибо, а этот код будет работать для вот такой строки, к примеру?
ab ba qw fd wq
Fd - должен удалиться, тк не палиндром
1234 вне форума Ответить с цитированием
Старый 26.05.2008, 16:23   #4
puporev
Старожил
 
Регистрация: 13.10.2007
Сообщений: 2,740
По умолчанию

Удалится вся строка, т.к. в ней нет ни одного палиндрома.
puporev вне форума Ответить с цитированием
Старый 26.05.2008, 16:27   #5
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

я только проверку на палиндром показал.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 26.05.2008, 16:28   #6
1234
Заблокирован
 
Регистрация: 09.11.2007
Сообщений: 97
По умолчанию

Вот в этой строке должны удалиться цифры 33:
123321
Как это вот осуществить?
1234 вне форума Ответить с цитированием
Старый 26.05.2008, 16:30   #7
puporev
Старожил
 
Регистрация: 13.10.2007
Сообщений: 2,740
По умолчанию

Например так delete(s,pos('3'),2);
puporev вне форума Ответить с цитированием
Старый 26.05.2008, 16:33   #8
Карась
Участник клуба
 
Аватар для Карась
 
Регистрация: 26.10.2007
Сообщений: 1,244
По умолчанию

Цитата:
1. Нахождение слов-палиндромов (перевертышей), одинаково-читающихся как слева направо, так и справа налево
2. Удаление из строки слов, не являющихся палиндромами.
Вообще чтото муть какаято. В задание одно, а Вы предлагаете чтото удалить из середины слова.

Варианты решения:
1. Самый на мой взгляд менее трудоёмкий это заганть все слова в массив и там уже с ними работать.

2. Исхитриться и в циклах отыскивать начала и концы слов, затем их сравнвать.... Тут надо думать ибо с ходу не написать...
Умом Россию не понять, пока не выпито ноль пять,
А если выпито ноль пять всё делом кажется не хитрым,
Попытка глубже понимать уже попахивает литром...
Карась вне форума Ответить с цитированием
Старый 26.05.2008, 16:36   #9
1234
Заблокирован
 
Регистрация: 09.11.2007
Сообщений: 97
По умолчанию

А вот именно для данного цикла если Куда этот код поставить? я думаю, что проще заменить слова, которые не являются палиндромами пустыми местами (для наглядности) s[i]:= " "
1234 вне форума Ответить с цитированием
Старый 26.05.2008, 16:44   #10
NamelessEndless
Ворон-мститель
Пользователь
 
Аватар для NamelessEndless
 
Регистрация: 26.05.2008
Сообщений: 24
По умолчанию

var str:string[30];
k,i,n:integer;
Fl:boolean;
begin
readln(str);
n:=length(str);
Fl:=true;
for i:=1 to n div 2 do
if str[i]<> str[n-i+1] then
Fl:=false;
if Fl then
writeln ('Palindrom')
else
writeln ('Ne palindrom');
end.


вот это точно найдет палиндромы..у меня такая на зачете была, а дальше уже не вспомню, паскаль забыла, начинаю к С++ привыкать
Бог умер. Воскрес и мстит.
NamelessEndless вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Дана строка, состоящая из нескольких слов. Найти количество слов, которые содержат хотя бы одну букву "А" Mashaa Помощь студентам 13 09.12.2009 13:28
если пользователь наберет какой-то другой символ не "y" или "n" и нажмет enter, программа проигнорирует skobets Общие вопросы C/C++ 2 03.06.2008 06:51
Excel файл открывается не "до конца" (странички "не показываются" только серое поле) Dorvir Microsoft Office Excel 2 28.03.2008 10:03
Создаю диаграмму "Bar". Подскажите как убрать растояние между "столбами" MAcK Компоненты Delphi 11 24.10.2007 10:49
На чем пишутся стратегии типа "Казаков" и "Эпохи империи" Tayfun Свободное общение 3 26.06.2007 20:27