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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 02.12.2015, 15:16   #1
андрей223
Новичок
Джуниор
 
Регистрация: 02.12.2015
Сообщений: 1
По умолчанию может кто знает?помогите ребят!

В тексте сократить все слова после согласных букв, расположенных за первой гласной буквой или последовательными гласными буквами. Знаки препинания должны остаться без изменений.

Например, исходный текст:
«Проверка вывода текста производится согласно установленного правила»
Результат:
«Пров. выв. текст. произв. согл. уст. прав.»

Текстовый файл выбирается через окно диалога и загружается в объект типа TMemo и/или создается/редактируется в объекте типа TMemo.
андрей223 вне форума Ответить с цитированием
Старый 02.12.2015, 15:36   #2
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,526
По умолчанию

Код:
for i:=0 to memo.lines.count-1 do begin
  j:=1;
  s:=memo.lines.strings[i];
  while j<length(s) do begin
    j:=GetBeginword(s, j);
    if j>=length(s) then break;// if j<0 then break;
    k:=GetEndWord(s, j);
    j:=GetFirstGlas(s, j, k);
    j:=GetFirstSoglas(s, j, k);
    Delete(s, j+1, k-j-1);
    Insert(s, j+1, '.');
  end;
  memo.lines.strings[i]:=s;
end;

function GetFisrtsymbolOf(const s: string; start, stop: string; symbolset: TcharSet): integer;
begin
  result:=-1;
  for j:=start to stop do begin
    if s[j] in symbolset then begin
       result:=j; break;
    end;
end;

function GetBeginWord(const s: string; start: integer): integer;
begin
  result:=GetFirstSymbolOf(s, start, length(s), ['а'..'я', 'А'..'Я']);
end;

function GetFirstGlas(const s: string; start, stop: integer);
begin
  result:=GetFirstSymbolOf(s, start, stop, ['а', 'о', ....];
end;
программа — запись алгоритма на языке понятном транслятору
evg_m вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ребят,кто знает Matlab? Marilyn123164 Помощь студентам 0 05.02.2015 16:24
ребят выручайте) иерархия классов кто знает? Выручайте23 Visual C++ 1 17.01.2014 07:31
Может кто-то знает ??? Marquez Помощь студентам 0 07.12.2011 11:14
может кто-нибудь знает? Gerberka Паскаль, Turbo Pascal, PascalABC.NET 1 08.06.2010 19:08
Может кто знает? Cardagant Помощь студентам 4 04.05.2008 00:35