![]() |
|
Модераторы: Poseidon |
![]()
|
|
| halk091 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 18 Регистрация: 3.12.2009 Репутация: нет Всего: нет |
нужно написать программу проверяющую является ли фраза палиндромом . я написал программку но она работает только для сиимметрично написсанных слов. например если написать( фывапро орпавыф)_ он здесь пишет что палиндром , а если это же написать с пробелом в одном слове то онпишет что это не палиндром(фыва про орпавыф)-здесь пишет что не палиндром хотя это не так. Как сделать чтоб программа не реагировала на пробелы ? или как можно решить эту задачу ?вот мой вариант решения . помогите исправить пожалуйста!!!!!
uses crt; var s,c:string; i,k,n:integer; begin clrscr; writeln('укажите предложение'); readln(s); k:=length(s); for i:=k downto 1 do begin c:=concat(c,s[i]); end; writeln©; if ©=(s) then writeln('это фраза палиндром') else writeln('не палиндром'); readkey; end. Это сообщение отредактировал(а) halk091 - 11.12.2009, 06:44 |
|||
|
||||
| t_gran |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 621 Регистрация: 13.11.2007 Где: г.Усть-Илимск Репутация: 33 Всего: 37 |
Перед тем как проверять, удалите все пробелы, вот и всё.
Это сообщение отредактировал(а) t_gran - 11.12.2009, 09:57 -------------------- Я знаю, что ничего не знаю© Сократ ![]() |
|||
|
||||
| halk091 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 18 Регистрация: 3.12.2009 Репутация: нет Всего: нет |
спасибо все работает, а можно обойтись без процедур?
|
|||
|
||||
| halk091 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 18 Регистрация: 3.12.2009 Репутация: нет Всего: нет |
как можно заменить
procedure DeleteSubStr (var theStr: string; theSubStr: string); var i: byte; begin i:= pos(theSubStr, theStr); while (i <> 0) do begin delete(theStr, i, length(theSubStr)); i:= pos(theSubStr, theStr); end; end; {-----------------------------------------------} function IsPolindrom (theStr: string): boolean; ????????? |
|||
|
||||
| t_gran |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 621 Регистрация: 13.11.2007 Где: г.Усть-Илимск Репутация: 33 Всего: 37 |
-------------------- Я знаю, что ничего не знаю© Сократ ![]() |
|||
|
||||
| halk091 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 18 Регистрация: 3.12.2009 Репутация: нет Всего: нет |
|
|||
|
||||
| Dancer |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 537 Регистрация: 29.4.2005 Где: Nizhniy Novgorod Репутация: 4 Всего: 37 |
1. убивать нужно не только пробелы но и символы '.' ',' '-' '!' '?' и т.д., в общем все не буквы.
2. перед тем как сравнение делать, привести строчку к одному регистру (либо все "БОЛЬШИЕ" буковки, либо все "маленькие") str := UpperCase(str); или str := LowerCase(str); -------------------- У программистов есть великая тайна: всё, что только можно, было давно кем-то когда-то написано. Разработчику только нужно знать в какое место кода какие строчки вставить! |
|||
|
||||
| halk091 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 18 Регистрация: 3.12.2009 Репутация: нет Всего: нет |
Уважаемый DANCER! не могли бы вы показать как все все выше сказанное вами осуществить в паскале! помогите пожалуйста. избавиться и от знаков препинаний и от пробелов и чтоб привести все буквы к прописным или строчным.
|
|||
|
||||
| mr.Anderson |
|
|||
![]() iOS Lead Developer ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3374 Регистрация: 20.12.2004 Где: далеко Репутация: 16 Всего: 128 |
Елки, целая полемика прямо. Вот дельфовый проект. Проверил на строках "My ym" и "My string". Разумеется, работа только с латинским алфавитом. При желании модернизировать можно.
|
|||
|
||||
| halk091 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 18 Регистрация: 3.12.2009 Репутация: нет Всего: нет |
function IsPolindrom (theStr: string): boolean; var ret: boolean; i: byte; begin ret:= true; for i:= 1 to (length(theStr) div 2) do if (theStr[i] <> theStr[length(theStr)-i+1]) then begin ret:= false; break; end; IsPolindrom:= ret; end; препод гоаорит что цикл фор останавливается искусственно, а надо чтобы было естественно через while ;repeat - until. Помогите пожалуйста!!!!!!!! |
|||
|
||||
| mr.Anderson |
|
|||
![]() iOS Lead Developer ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3374 Регистрация: 20.12.2004 Где: далеко Репутация: 16 Всего: 128 |
Мой вариант чем не угодил? Препод имеет в виду, что в своем варианте ты используешь break для прерывания цикла, нужно обойтись без него. В моем варианте без таких прерываний.
Но если уж сильно хочется, то в твоем варианте можно, к примеру, так:
|
|||
|
||||
| halk091 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 18 Регистрация: 3.12.2009 Репутация: нет Всего: нет |
я заменил но программа перестала работать , не выдает ответ ,что делать???
|
|||
|
||||
| Dancer |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 537 Регистрация: 29.4.2005 Где: Nizhniy Novgorod Репутация: 4 Всего: 37 |
дык, итератор то инкрементировать нужно
-------------------- У программистов есть великая тайна: всё, что только можно, было давно кем-то когда-то написано. Разработчику только нужно знать в какое место кода какие строчки вставить! |
|||
|
||||
| mr.Anderson |
|
|||
![]() iOS Lead Developer ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3374 Регистрация: 20.12.2004 Где: далеко Репутация: 16 Всего: 128 |
Dancer, факт) вечная проблема - забываю инкремент в условных циклах)
|
|||
|
||||
![]()
|
| Правила форума "Центр помощи" | |
|
|
ВНИМАНИЕ! Прежде чем создавать темы, или писать сообщения в данный раздел, ознакомьтесь, пожалуйста, с Правилами форума и конкретно этого раздела.
Более подробно с правилами данного раздела Вы можете ознакомится в этой теме. Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Poseidon, Rodman |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Центр помощи | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |