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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 31.03.2011, 23:26   #1
Destiny265
 
Регистрация: 23.09.2010
Сообщений: 4
По умолчанию Строки в delphi. Необходим алгоритм для задачи.

Дан текст. Создать текст все слова, которого начинаются на ту же букву, что и последнее слово исходного текста.

Мне хотя бы просто алгоритм, код под него я напишу сам.
Destiny265 вне форума Ответить с цитированием
Старый 01.04.2011, 00:09   #2
Sinapsik
Пользователь
 
Аватар для Sinapsik
 
Регистрация: 29.03.2011
Сообщений: 28
По умолчанию

алгоритм на словах подойдет?Если "да",то:
С конца текста проверяем символы до встречи первого символа ' ' (пробела).Букву стоящую на позицию ниже (в цикле ниже,а в тексте выше) заносим в переменную.
Далее идем от первого символа,проверяем его,яв-ся ли он равным этой переменной,если нет,то идем до первого пробела и проверяем следующий символ на совпадение с переменной (и т.д.).
При совпадении запоминаем позицию этой буквы и идем до след. пробела (запоминаем позицию до него) и копируем текст от первой позиции до второй
Как-то так

Последний раз редактировалось Sinapsik; 01.04.2011 в 01:07.
Sinapsik вне форума Ответить с цитированием
Старый 01.04.2011, 00:59   #3
MyLastHit
Очень суровый
Участник клуба
 
Аватар для MyLastHit
 
Регистрация: 17.12.2009
Сообщений: 1,988
По умолчанию

Да задача не сложная... Но она на вынос мозга)
Ненавижу быть как все, но люблю, чтобы все были как я.
MyLastHit вне форума Ответить с цитированием
Старый 01.04.2011, 08:26   #4
Destiny265
 
Регистрация: 23.09.2010
Сообщений: 4
По умолчанию

Sinapsik, спасибо
Destiny265 вне форума Ответить с цитированием
Старый 01.04.2011, 09:08   #5
Sparkman
220400
Форумчанин
 
Аватар для Sparkman
 
Регистрация: 21.05.2010
Сообщений: 726
По умолчанию

Код:
function FindFirstLetterFromLastWord(text:string):string;
const wrd : set of char = ['A'..'Z','А'..'Я'];
var i,wb:integer;
    b:boolean;
    letter : char;
begin
     b:=false;
     letter:=#0;
     wb:=0;
     for i:=Length(text) downto 1 do
     begin
          if (AnsiUpperCase(text[i])[1] in wrd) and (wb=0) then wb:=i else
          if (wb>0)and not (AnsiUpperCase(text[i])[1] in wrd) then
             if (i+1)=wb then wb:=0 else
             begin
                  if not b then
                  begin
                       letter:=Text[i+1];
                       b:=true
                  end else
                      Text[i+1]:=letter;
             end;
     end;
     if AnsiUpperCase(text[1])[1] in wrd then text[1]:=letter;
     result:=text;
end;
минус в том, что знаки перехода на следующую строку выглядят в виде букв, и их тоже алгоритм заменяет , а вот для строк все правильно отрабатывает
Cерьёзной помощи не ждите - помогаю в перерывах на "перекур".
Не существует ничего невозможного для человека, который не собирается ничего делать сам.
Не учите человека, если вы не его учитель.
Sparkman вне форума Ответить с цитированием
Старый 01.04.2011, 15:59   #6
Destiny265
 
Регистрация: 23.09.2010
Сообщений: 4
По умолчанию

Благодарю.
Destiny265 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Открыт ли алгоритм для решения этой задачи? Ru_DoLF Помощь студентам 0 19.03.2011 20:17
Алгоритм для задачи. MoxFalder Помощь студентам 5 19.01.2011 14:04
Алгоритм для Задачи, нужны умники gse44 Помощь студентам 7 26.10.2010 09:33
Delphi. Массивы,алгоритм симметрии строки Fonarik Помощь студентам 6 28.10.2008 19:59