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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 12.02.2009, 19:39   #1
stasig
Пользователь
 
Регистрация: 04.11.2008
Сообщений: 31
По умолчанию Определить в тексте слово, содержащее минимальное число согласных

Прошу помочь с задачей. В самом начале изучения нахожусь.
На основе этой хочу разобраться с другими. Если не трудно, то как нибудь по проще.

Задача.
Определите в тексте слово, содержащее минимальное число согласных. (При решении определить процедуру, или функцию, определяющую число согласных в слове).
stasig вне форума Ответить с цитированием
Старый 12.02.2009, 19:48   #2
Arigato
Высокая репутация
СуперМодератор
 
Аватар для Arigato
 
Регистрация: 27.07.2008
Сообщений: 15,544
По умолчанию

Ну 1-м делом пишем процедуру для определения числа согласных в переданной строке. Теперь достаточно разбить строку на слова (посимвольно просматриваем, выделяем слова, вызываем нашу функцию, выбираем слово с минимальным числом согласных).
Arigato вне форума Ответить с цитированием
Старый 13.02.2009, 03:00   #3
Ramires
Пользователь
 
Аватар для Ramires
 
Регистрация: 23.07.2008
Сообщений: 69
По умолчанию

Вот опять же, просят же соблюдать название темы.. ведь закроют..

Частично помогу вам:

Код:
function StrToWord(Var S: String; Delims: String): String;
var Res: String;
    State: byte;
begin
  State:=1;
  Res:='';
  if S='' then
  begin
    Result:='';
    Exit;
  end;
  while Pos(S[State],Delims)<>0 do
  begin
    Inc(State);
    if State>Length(S) then
    begin
      S:='';
      Result:='';
      Exit;
    end;
  end;
  while Pos(S[State],Delims)=0 do
  begin
     Res:=Res+S[State];
     Inc(State);
     if State>Length(S) then
     begin
       S:='';
       Result:=Res;
       Exit;
     end;
  end;
  while Pos(S[State],Delims)<>0 do
  begin
    Inc(State);
    if State>Length(S) then
    begin
      S:='';
      Result:=Res;
      Exit;
    end;
  end;
  Delete(S,1,State-1);
  Result:=Res;
end;
Эта функция выделяет из строки слова.
Вызываете функцию:

Код:
Word:=StrToWord(Stroka,'Razdelitel');
где:
Word - выделенное слово
Stroka - собственно строка со словами
Razdelitel - разделитель между словами.. (',',' ','.', и так далее..)

Особенность работы этой функции заключается в том, что выделив слово Word с разделителем Razdelitel строка Stroka уменьшится на Word и Razdelitel, таким образом вам не придется определять позиции с которых начинаются слова..

Этот код я подсмотрел давно и к сожалению уже не вспомню его автора, но огромное спасибо ему.. мне эта функция очень помогает.. эдакая приятная мелочь
I like beer.. more beer..

Последний раз редактировалось Ramires; 13.02.2009 в 03:10.
Ramires вне форума Ответить с цитированием
Старый 15.02.2009, 13:11   #4
stasig
Пользователь
 
Регистрация: 04.11.2008
Сообщений: 31
По умолчанию

так, так, так. Спасибо большое.
БУду пытаться разбираться дальше.....
stasig вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
посчет в тексте кол-во слов, гласных и согласных букв DiabloRVK Помощь студентам 4 01.12.2008 14:23
Найти и вывести все слова,у котоpых число гласных букв пpевышает число согласных. Briz Помощь студентам 2 11.05.2008 00:56
Как найти слово в тексте ? geniy Паскаль, Turbo Pascal, PascalABC.NET 2 03.02.2008 21:37
Определить сколько раз встречается в тексте самое короткое слово - Delphi 7 Леди Уинтер Помощь студентам 3 08.01.2008 17:56