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

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

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

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

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

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

Помогите с решением данной задачи на Паскале: Дан текст. Удалить слова, у которых нет повторяющихся букв.
Odent вне форума Ответить с цитированием
Старый 24.09.2015, 17:41   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Твои попытки увидеть можно?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 30.09.2015, 10:15   #3
newerow1989
Я самый любопытный
Участник клуба
 
Аватар для newerow1989
 
Регистрация: 24.07.2012
Сообщений: 1,949
По умолчанию

Удалить слова, у которых есть повторяющиеся буквы
Код:
var s:string;
    i0,i1,j,k:integer;
    del:boolean;
begin
   s:='mama myla ramy i upala';//Readln(s);
   i0:=1;
   Repeat
      i1:=i0;
      del:=false;
      For j:=i0 to Length(s) do
         If s[j]=' ' then
            Break else
            i1:=j;
      For j:=i0 to i1 do
         For k:=j+1 to i1 do
            If s[j]=s[k] then
            begin
               del:=true;
               Break;
            end;
      If del then
         Delete(s,i0,i1-i0+2) else
         i0:=i1+2;
   Until i0>=Length(s);
   Writeln(s);
   Readln;
end.
Удалить слова, у которых нет повторяющихся букв
Код:
var s:string;
    i0,i1,j,k:integer;
    del:boolean;
begin
   s:='mama myla ramy i upala';//Readln(s);
   i0:=1;
   Repeat
      i1:=i0;
      del:=true;
      For j:=i0 to Length(s) do
         If s[j]=' ' then
            Break else
            i1:=j;
      For j:=i0 to i1 do
         For k:=j+1 to i1 do
            If s[j]=s[k] then
            begin
               del:=false;
               Break;
            end;
      If del then
         Delete(s,i0,i1-i0+2) else
         i0:=i1+2;
   Until i0>=Length(s);
   Writeln(s);
   Readln;
end.
Сойдет?
С запрограммированным приветом, Неверов Евгений!
Сайт: http://newerow1989.ru
[Паскаль] [Delphi]

Последний раз редактировалось newerow1989; 30.09.2015 в 10:17.
newerow1989 вне форума Ответить с цитированием
Старый 30.09.2015, 12:50   #4
Arigato
Высокая репутация
СуперМодератор
 
Аватар для Arigato
 
Регистрация: 27.07.2008
Сообщений: 15,544
По умолчанию

В качестве альтернативы:
Код:
var
  s: string;
  i, p: integer;
  del: boolean;
  c: set of char;

begin
  s:='mama myla ramy i upala';//Readln(s);
  p:=length(s);
  del:=true;
  c:=[];
  for i:=p downto 0 do begin
    if (i=0) or (s[i]=' ') then begin
      if del then delete(s,i+1,p-i+1);
      p:=i-1;
      del:=true;
      c:=[];
    end else begin
      if s[i] in c then del:=false;
      c:=c+[s[i]];
    end;
  end;
  writeln(s);
  readln;
end.
Arigato вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Даны два слова. Составьте программу, определяющую можно или нет из букв слова А составить слово В. Конь Антон Паскаль, Turbo Pascal, PascalABC.NET 3 10.06.2015 14:44
Даны два слова. Составьте программу, определяющую можно или нет из букв слова А составить слово В Конь Антон Помощь студентам 1 24.05.2015 16:43
как удалить все строки в которых нет определенного символа? inogda_dobriy Microsoft Office Word 5 20.08.2013 23:43
Удалить слова, в которых буквы повторяются Artoo Помощь студентам 0 16.12.2011 22:09