Помощь - Поиск - Пользователи - Календарь
Полная версия: Задача на строки и повторяющиеся слова в ней
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
White-e
Задача звучит так:"Ввести строку. Удалить из строки слова, которые встречались в ней раньше."
помогите решить плз! В строках ваще не рублю. ОЧ надо может кто ее уже делал тогда скинте плиз не поленитесь. Да ещё преподша не оч крутая х.. когда поможет. Мне больше ненакого положится кроме ВАС)
klem4
Цитата
Ввести строку. Удалить из строки слова, которые встречались в ней раньше


Это например позавчера ?

Шутка smile.gif

Разбиение на слова. Все способы.

Там был ?

+ FAQ: Строки

+ поиск -> "Удалить слово"
White-e
пока ещё нигде не был) а на форуме есть уже готовая прога хотям более или менее похожая на мою? а то в строках я просто нуб)

да побывал я там ток мало чего понял может кто поможет) напиши прогу просто я врядли когдато сам до неё допру)))) помгите или дайте ссылку на прогу или напишить её если не впадлу)
Archon
Для начала, объясни, что это такие за слова, которые встречались раньше?
White-e
Слово- это символы ограниченные с двух сторон пробелами! В строке нет ни знако в препинания не точек. Заканчивается она без пробела. пример
вводим
abcd efg t f ks abcd f re efg
получаем
abcd efg t f ks re

вводим
ab ab ab ab c ab
получаем
ab c

одним слово надо удалить слова которые встречались 2 и более раз, причем оставить только первое из них. количество повторяющихся слов может быть различным!
}0pa
Что-то вроде этого, но я не проверял.Все дело своится к массивам и их обработке.
Статические массивы из слов: если нашли повторяющееся слово, то перемещаем его в конец и опустошаем...
МБ, кто-нить поправит norespect.gif
Код

uses crt;
const n=10;
type massiv = array[1..n]of string;
var m:massiv;
    i,j:integer;
    s1:string;
{-----------------------------------------------------------------------------}
procedure DelElem(var m1:massiv;c:integer;k:integer);
var j:integer;
    T:string;
begin
for j:=k to c-1 do
  begin
   T:=m[j];
   m1[j]:=m1[j+1];
   m1[j+1]:=T;
  end;
end;
{-----------------------------------------------------------------------------}
Procedure GetStr(var s:string;var m2:massiv);
var i,n,j:integer;
    buf:string;
begin
i:=1;n:=length(s);buf:='';j:=1;
while i<>n do
begin
while s[i]=' ' do inc(i);
while s[i]<>' ' do
  begin
   buf:=buf+s[i];
   inc(i);
  end;
inc(j);
m2[j]:=buf
end
end;
{-----------------------------------------------------------------------------}

begin
cls;
writeln('Ввод строки');
read(s1);

GetStr(s1,m);
for i:=1 to n-1 do
    for j:=i+1 to n do
      if m[i]=m[j] then
      begin
       m[j]:='';
       DelElem(m,n,j)
      end;

       writeln('Искомый строка');
       for i:=1 to n do write(m[i]:3);

end.
volvo
 ! 
}0pa, я тебя предупреждал... Извини, но придется принимать меры, ибо ты НЕ ОБРАЩАЕШЬ ВНИМАНИЕ на правила! Тебе на каком языке сказать, что ЭТО
Цитата
7. Проверяйте программы перед тем, как разместить их на форуме!!!
относится и к тебе тоже? Ан нет, "Кто-нибудь поправит..." Сейчас. Твой бред будем править...

Аккаунт заблокирован. Срок - 20 дней... В следующий раз получишь больше. ВСЕ.

Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.