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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 18.12.2009, 13:17   #1
HaTyCuk
 
Регистрация: 18.12.2009
Сообщений: 4
Радость Строка символов. Паскаль.

Ввести строку символов ( предусмотреть ввод пустой строки или строки из одних пробелов). Разделителями слов в строке могут быть «_»,«:»,«;»,«,»,«( )»(предусмотреть использование множества для разделителей). Определить номер слова-палиндрома, имеющего максимальную длину.

Помогите пожалуйста решить задачку, мне нужно зачет закрыть, и дали это, а я уже всю информатику за 2 года забыла)) Вообще без понятия что делать....
HaTyCuk вне форума Ответить с цитированием
Старый 18.12.2009, 13:18   #2
HaTyCuk
 
Регистрация: 18.12.2009
Сообщений: 4
По умолчанию

Слово палиндром это, например, ШАЛАШ (читается с начала и конца одинаково).
HaTyCuk вне форума Ответить с цитированием
Старый 18.12.2009, 16:56   #3
SERG1980
Участник клуба
 
Аватар для SERG1980
 
Регистрация: 28.03.2007
Сообщений: 1,814
По умолчанию

Код:
uses crt;
type TSeparator = set of Char;
{*************************************************}
function ReversString(str:string):string;
var i:integer;
    srs:string;
begin
 ReversString:='';
 srs:='';
 for i:=Length(str) downto 1 do
 srs:=srs+str[i];
 ReversString:=srs;
end;
{*************************************************}
const Separator: TSeparator = ['_',':',';',',','(',')'];
var i,d:integer;
    stroka,s:string;
BEGIN
 clrscr;
 writeln('Vvedite stroky');
 readln(stroka);
 s:='';
 d:=0;
 if stroka='' then
 begin
  writeln('Ne vveli stroky!');
  readln;
  exit;
 end;
 for i:=1 to Length(stroka) do
 if (stroka[i] in Separator)or(i=length(stroka))then
 begin
  if s<>''then
  begin
   if i=Length(stroka) then s:=s+stroka[length(stroka)];
   if s=ReversString(s) then
   begin
    if d < Length(s) then d:=Length(s);
   end;
  end;
  s:='';
 end else s:=s+stroka[i];
 writeln('Dlina: ',d);
 readln;
END.
Номер самого длинног слова введите сами после этой строки: if d < Length(s) then d:=Length(s);(заведите счётчик и увеличивайте на +1 как только выполнится условие if s=ReversString(s))

Последний раз редактировалось SERG1980; 18.12.2009 в 16:59.
SERG1980 вне форума Ответить с цитированием
Старый 18.12.2009, 23:41   #4
HaTyCuk
 
Регистрация: 18.12.2009
Сообщений: 4
По умолчанию

Ой, спасибо вам большое!!! А то я сегодня больше никого и не нашла, кто бы помочь мог) На зачет, думаю, сойдет!
HaTyCuk вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Строка больше 255 символов? TwiX Общие вопросы Delphi 6 07.12.2009 16:53
Строка длинною более 255 символов Kuzya59 Общие вопросы Delphi 7 27.09.2009 20:29
Как узнать состоит ли строка из одных числовых символов DarkEvil Общие вопросы Delphi 12 13.08.2009 08:44
C++,строка символов Alik-Soldier Помощь студентам 1 01.05.2009 16:57
Строка символов в виде байтов Blondinka Общие вопросы Delphi 17 14.09.2007 19:06