Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Центр помощи > [Pascal] Удаление одинаковых символов из строки


Автор: lomobot 15.11.2006, 10:53
не могу решить задачу:
дана последовательность слов (с клавиатуры). Напечатать все слова, предварительно преобразовав каждое из  них по правилу: оставить в  слове только первое вхождение каждой буквы.
т.е.  например из текста "Корова молоко" должен получиться после обработки такой текст: "Корва молк"

Автор: kali 15.11.2006, 11:45
Код

program q;
var
  s,ans:string;
  mas : array ['A'..'z'] of boolean;
  i:integer;

procedure resetmas;
var j:char;
begin
  For j:='A' to 'z' do mas[j]:=true;
end;

begin
  readln(s);
  ans:='';
  resetmas;
  for i:= 1 to length(s) do // исправлено
  begin
    if s[i]=' ' then
    begin
      resetmas;
      ans:=ans+s[i];
    end else begin
      if mas[s[i]] then
      begin
        ans:=ans+s[i];
        mas[s[i]]:=false;
      end;
    end;
  end;
  writeln(ans);
end.

Автор: volvo877 15.11.2006, 12:01
kali, индексация в строках Паскаля начинается с 1-цы, а не с 0... Таким образом, при вводе "korova" ты получаешь "korv"...

Автор: kali 15.11.2006, 12:48
volvo877
ты прав глюканул малек.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)