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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 24.05.2008, 22:58   #11
alexBlack
Участник клуба
 
Регистрация: 12.10.2007
Сообщений: 1,204
По умолчанию

Цитата:
Сообщение от Dimon1231 Посмотреть сообщение
мне нужно чтобы выводилось
если (f f f ) то s1:=f ; а s2:=f f
если (abcabc a abc abc) то s1:=abcabc ; s2:=defdef a def
но выводит без а
Не понял почему s1 = f в первом случае, но дело Ваше. Закоментируйте строки для проверки на равенство с последним словом:

Код:

   // Делим строку на две части
   n := length(s);
   while (n >= 1) and (s[n] = ' ') do dec(n);   // Пропуск пробелов в конце строки
   n1 := n;
   while (n >= 1) and (s[n] <> ' ') do dec(n);  // Поиск пробела перед последним словом

   s3 := copy(s, 1, n);                         // строка без последнего слова
   p_s := copy(s, n+1, n1-n);                   // последнее слово
   writeln(p_s+'---');

   // Дальше работаем только с первой частью без последнего слова
   n := 1; k := 1; max := 0; s1 := ''; s2 := '';
   while n <= length(s3) do begin
      if s3[n] = ' ' then begin
         // Нашли очередной пробел
         if n-k > 0 then begin // !!! Здесь не исправили, поэтому без 'a' во втором варианте
            writeln(n);
            writeln(k);
            s4 := copy(s3, k, n-k);             // Очередное слово в строке
            writeln(s4+'...');
            // дальше решаем, что делать с этим словом
            {if s4 <> p_s then begin  }           // Отличное от последнего
               if length(s4) > max then begin
                  s1 := s4;
                  max := length(s4)
               end;
            {end;}
            // Заменяем
            p := pos('abc', s4);
            while p <> 0 do begin
               delete(s4, p, 3);
               insert('def', s4, p);
               p := pos('abc', s4);
            end;
            if length(s2) > 0 then s2 := s2 + ' ';
            s2 := s2+s4;
         end;
         k := n+1;
      end;
      inc(n);
   end;
alexBlack вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
нужна помощь срочно!!! Dude Помощь студентам 2 06.06.2007 10:40
СРОЧНО! Нужна помощь RUsoft Общие вопросы Delphi 2 26.03.2007 16:54
нужна помощь по работе с строками файлов... Ruffian Общие вопросы Delphi 9 15.11.2006 16:05