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

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

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 13.04.2014, 23:19   #1
evgeniy8705
Новичок
Джуниор
 
Регистрация: 13.04.2014
Сообщений: 2
По умолчанию Удалить строку

В строке S, удалить два подряд идущих одинаковых слова, слова разделяются пробелом.
evgeniy8705 вне форума Ответить с цитированием
Старый 14.04.2014, 10:10   #2
ZX Spectrum-128
Участник клуба
 
Регистрация: 05.11.2013
Сообщений: 1,601
По умолчанию

Разбиение строки на слова.
Все метОды хороши, выбирай на вкус.

http://forum.pascalnet.ru/index.php?showtopic=6972
А уж сравнить найденные слова и вовсе просто.
ZX Spectrum-128 вне форума Ответить с цитированием
Старый 14.04.2014, 14:15   #3
evgeniy8705
Новичок
Джуниор
 
Регистрация: 13.04.2014
Сообщений: 2
По умолчанию

Цитата:
Сообщение от ZX Spectrum-128 Посмотреть сообщение
Разбиение строки на слова.
Все метОды хороши, выбирай на вкус.

http://forum.pascalnet.ru/index.php?showtopic=6972
А уж сравнить найденные слова и вовсе просто.
Я как новичок в этом деле, прошу вас помочь мне сделать эту задачу, а то что вы мне предоставили, это хорошо, но мне пока сложно разобраться в этих алгоритмах, но в будущем думаю пригодится.
evgeniy8705 вне форума Ответить с цитированием
Старый 14.04.2014, 15:22   #4
ZX Spectrum-128
Участник клуба
 
Регистрация: 05.11.2013
Сообщений: 1,601
По умолчанию

Есть куча разнообразных нюансов.
Но подозреваю, что вам нужно сдать и забыть.

Код:
const

   limits = [#0..#32,'.',',',':',';','!','?','"'];
type

   TWords = array[1..40] of string;

var
   text : string;
   words : TWords;
   i,number:byte;

function GetWords(s : string; var w : TWords) : byte;
var
   i,back,n : byte;
begin
   i := 1;
   n := 0;
   while(i<=length(s)) do begin
      while(i<=length(s)) and (s[i] in limits) do
       inc(i);
      if i<=length(s) then begin
         back := i;
         while(i<=length(s)) and not(s[i] in limits) do
          inc(i);
         inc(n);
         w[n] := copy(s, back, i-back);
      end;
   end;

   GetWords := n;
end;
begin
  text:='... мама, мама, что я буду делать, мама, мама, как я буду жить? ';
  number:=GetWords(text,words);
  text:='';
  for i:=1 to number do
    begin
      if words[i]=words[i+1] then
        begin
          words[i]:='';
          words[i+1]:='';
        end;
      text:=text+' '+words[i];
    end;
  writeln(text);
  readln;
end.
ZX Spectrum-128 вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ввести строку символов. Найти комбинацию из двух букв по всей строке, удалить их и сдвигать строку на пустые места AdelinaMango Общие вопросы C/C++ 9 02.04.2014 08:24
Двунаправленный линейный список строк. Вставить строку, удалить строку и заменить строку tarasman11 Паскаль, Turbo Pascal, PascalABC.NET 4 05.07.2012 20:27
Удалить строку YurIbr89 Помощь студентам 2 14.05.2011 00:24
VBA_макрос: удалить всю строку в таблице, если в ней есть слово "удалить" макарошка Microsoft Office Excel 15 05.10.2010 09:09
Удалить строку таблицы Aleksandr БД в Delphi 12 16.03.2010 11:31