IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

> Неправильно работает код удаления слова из строки
-студент-
сообщение 15.02.2006 20:39
Сообщение #1


Гость






Дана строка типа слово1 слово2 слово3 слово1
Надо чтобы после парсинга строки удалились дубликаты те получилось
слово1 слово2 слово3

Код

var
  t,single:string;
  i,j:integer;


function word(t_temp:string; var count: integer):string;
  var
    l1,l2:integer;
  begin
    delete(t_temp, 1, count);
    l1:=pos(' ', t_temp);
    l2:=pos(',', t_temp);
    while (l1=1) or (l2=1) do
      begin
        l1:=pos(' ', t_temp);
        l2:=pos(',', t_temp);
        if (l1=1) or (l2=1) then
          begin
            delete(t_temp,1,1);
            inc(i);
          end;
      end;
    if l1<l2 then
      begin
       result:=copy(t_temp,1,l1);
       inc(count, l1)
      end
    else
      begin
        result:=copy(t_temp,1,l2);
        inc(count,l2);
      end;
end;

function double(t_temp:string; sub:string; vaar count:integer):boolean;
  begin
    delete(t_temp,1,count);
    j:=pos(sub,t_temp);
    if j= 0 then result:=false
    else
      result:=true;
  end;

procedure cut(var str:string; sub:string; var count:integer);
  begin
    j:=pos(sub,str);
     while j<>0 do
      begin
        j:=pos(sub,str);
        delete(str,j,length(sub));
      end;
  end;

begin
  writeln('Enter your string...');
  readln(t);
  i:=0;
  while i<=length(t) do
    begin
      single:=word(t,i);
      if double(t,single,i) then
        cut(t,single,i)
      else inc(i);
    end;
  writeln(t);
  readln;
end.


Помогите пожалуйста
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
Гость
сообщение 15.02.2006 20:58
Сообщение #2


Гость






сорри, буду разбираться)
 К началу страницы 
+ Ответить 

Сообщений в этой теме
-студент-   Неправильно работает код удаления слова из строки   15.02.2006 20:39
volvo   Велосипеды изобретаем? Я пользуюсь вот этим: Разб...   15.02.2006 20:44
Гость   Разбить не проблема проблема удалить дубликаты   15.02.2006 20:45
volvo   Вот как раз это - не проблема... Проход по списку ...   15.02.2006 20:48
Гость   Проблема в том что нужно еще вывести слова правиль...   15.02.2006 20:57
Гость   сорри, буду разбираться)   15.02.2006 20:58
volvo   Ты по ссылке был? Видел, КАК находятся слова? Инде...   15.02.2006 21:00
Гость   я понял спасибо) буду аккуратнее :D   15.02.2006 21:08
GuRman   нет, все таки возник еще один вопрос. вот есть про...   15.02.2006 21:54
volvo   SetLength это что? Открытые массивы? Компилятор у ...   15.02.2006 22:17
GuRman   все, задачу решил наконец-то)   15.02.2006 23:27
volvo   Молодец! А теперь код выложи сюда, и давай сра...   15.02.2006 23:30
GuRman   ну у меня задача еще немного отличалась но этот ко...   16.02.2006 0:02
volvo   ЗЫ замечания? 8) :blink: А можешь полностью свою ...   16.02.2006 10:09


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 20.07.2025 16:39
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"