исправить задачу на паскале со строками

Ответить
artik
Сообщения: 2
Зарегистрирован: 04 апр 2010, 19:24

Отредактировать текст, удалив из него слова, которые уже встречались в нем раньше.
вот я написал, но чето не пашет((
var
a:string;
b:array[1..100]of string;
c:array[1..100]of integer;
i,j,k:integer;
begin
writeln('vvedite stroku');
readln(a);
a:=' '+a;
for i:=1 to length(a)do
if a=' 'then inc(k)else b[k]:=b[k]+a;
for i:= 1 to k do
for j:=1 to i do
if b=b[j] then inc (c);

for i:=1 to k do
if c=1 then write(b,' ');
readln;
end.
yanita
Сообщения: 4
Зарегистрирован: 08 апр 2010, 22:24
Откуда: Мариуполь

А может стоит разобрать строку текста на отдельные слова, а потом сравнивать слова как элементы массива (P)?
найти в строке A очередной пробел - pos(A,' ');
в цикле
скопировать слово от первого символа до пробела copy(A,1,pos(A,' '));
удалить то что скопировали + пробел delete(a,1,pos(A,' ')+1);

Массив определить как P:array[1..20] of string[10];
расчитан на 20 слов по 10 символов.

Или брать каждое слово и с пом функции pos искать его в строке далее.
Ответить