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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 18.01.2010, 21:54   #1
RUSSTUDENT
Пользователь
 
Аватар для RUSSTUDENT
 
Регистрация: 18.01.2010
Сообщений: 26
По умолчанию Paskal. Строки

Решить задачу со STRING'ом. Условие:
Удалить из текста слова, совпадающие с конечным отрезком латинского алфавита: z, yz, xyz и т.д. до uvwxyz.
RUSSTUDENT вне форума Ответить с цитированием
Старый 18.01.2010, 22:14   #2
Сергeй
Заблокирован
 
Регистрация: 14.01.2010
Сообщений: 92
По умолчанию

Цитата:
Сообщение от RUSSTUDENT Посмотреть сообщение
Решить задачу со STRING'ом. Условие:
Удалить из текста слова, совпадающие с конечным отрезком латинского алфавита: z, yz, xyz и т.д. до uvwxyz.
Вопрос на засыпку:

ukoz!!!!!!!! - это слово ?
А Nimbuzz)))) ?
Сергeй вне форума Ответить с цитированием
Старый 18.01.2010, 22:39   #3
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
ukoz!!!!!!!! - это слово ?
А Nimbuzz)))) ?
Тезка, не задавайте ненужных вопросов!
Безусловно, это слова! Только удалять их НЕ НУЖНО, т.к. они не соответствуют критерию удаляения (см. задание!)


RUSSTUDENT, поищи, на форуме неоднократно были примеры, как разобрать строку на отдельные слова (имхо, в твоём случае словом можно считать группу букв, отделённых пробелом). Дальше просто,
сравниваешь слово побуквенно с нужными буковками
Код:
i:=1;
CurBukva := chr( ord('z') - length(CurrentSlovo) + 1);
while (i<=Length(CurrentSlovo)) and (CurrentSlovo[i]=CurBukva) do begin
  inc(i);
  CurBukva := chr(ord(CurBukva)+1);
end;
if i>Length(CurrentSlovo) then значит текущее слово (CurrentSlovo) соответствует нужному критерию и его можно удалять...
Serge_Bliznykov вне форума Ответить с цитированием
Старый 19.01.2010, 09:35   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Хы... прикольная задачка чтоб побамить...
Предлагаю такой алгоритм:
Код:
   var e,s:string;i:integer;b:boolean;
begin             {$o-}
 s:='dont use ucoz und Nimbuzz ';e:='';
 i:=1;while(i<=length(s)) do begin
  if s[i]<>' ' then begin
   e:=e+s[i];
   b:=(pos(s[i],'uvwxyz')<>0);
  end  else begin
   if not b then write(e+' ');
   e:='';
  end;
  inc(i);
 end;
 readln;
  { TODO -oUser -cConsole Main : Insert code here }
end.
Надеюсь кто-то найдет в нем ошибки и оптимизирует еще лучше
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Pasсal. Кол-во точек попадающих в окружность. RUSSTUDENT Помощь студентам 2 18.01.2010 21:47
Paskal SkyL1ne Помощь студентам 1 25.12.2009 10:09
Paskal Dima169 Паскаль, Turbo Pascal, PascalABC.NET 2 20.05.2009 18:38
Paskal netcher Помощь студентам 3 05.02.2009 02:04