Что-то вроде этого, но я не проверял.Все дело своится к массивам и их обработке.
Статические массивы из слов: если нашли повторяющееся слово, то перемещаем его в конец и опустошаем...
МБ, кто-нить поправит
Код
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.