Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 09.11.2011, 22:38   #1
as1212
Пользователь
 
Регистрация: 08.10.2011
Сообщений: 42
По умолчанию Составить программу удалив из него повторное вхождение слов.

Дан текст. Составить программу удалив из него повторное вхождение слов.

Вот что я попытался сделать но все равно не получается

1. Сделал массив из 8 слов и удалил из него одиннаковые


uses crt;
const n = 8;
type M_st=array[1..n] of string[20];
var
a:M_st;
s:M_st;
i,j,l: integer;
flag: boolean;
begin
writeln('Vvedite 8 slov');
for i := 1 to n do
readln(a[i]);
writeln;
j := 1;
for i := 1 to n do
begin
flag := true;
for l := 1 to j do
if s[l] = a[i] then
flag := false;
if flag = true then begin
s[j] := a[i];
j := j+1
end;
end;
for i := 1 to j-1 do
write (s[i],' ');
writeln;
readln;
writeln;
end.


Но она не подходит из за того, что дан не массив слов а текст т.е. после ввода каждого слова нужно нажимать пробел

2. Написал часть программы которая копирует каждое слово текста в массив а вот тальше впал в ступор.


program lab10;
uses crt;
Var C: String;
I,Pb,j,l,n,k:integer; x: array [1..1000] of string; s: array [1..1000] of string;

flag: boolean;
Begin
Write('Введите текст: ');
ReadLn(C);
C:=C+' '; n:=Length(C);
K:=0;
While pos(' ',C) <> 0 Do
Begin
Pb := pos(' ',C);
for i:=1 to pb do
x[i]:=Copy(C,1,Pb-1);
if x[i]=Copy(C,1,Pb-1) then K:=k+1;
Delete(C,1,Pb);
end;
writeln;
as1212 вне форума Ответить с цитированием
Старый 09.11.2011, 22:53   #2
dimokin777
Пользователь
 
Регистрация: 08.11.2011
Сообщений: 18
По умолчанию

2 программа копирует не каждое слово в массив , а почему то только последнее..
dimokin777 вне форума Ответить с цитированием
Старый 10.11.2011, 21:16   #3
dimokin777
Пользователь
 
Регистрация: 08.11.2011
Сообщений: 18
По умолчанию

Код:
program lab10;
Var C: String;
    I,Pb,j,f,n,k:integer;
    x: array [1..1000]  of string;
    s: array [1..1000]  of string;
Begin
 Write('Введите текст: ');
 ReadLn(C);
 C:=C+' '; n:=Length(C);
 K:=0;


 While pos(' ',C) <> 0 Do
 begin
 Pb := pos(' ',C);
 if Pb=pos(' ',C) then
 begin
 k:=k+1;
 i:=k;
 x[i]:=Copy(C,1,Pb-1);
 end;
 Delete(C,1,Pb);
 end;

 
 for j:=1 to k do
 begin
 i:=j;
 s[j]:=x[i];
 end;

 for j:=1 to k do
 begin
 for i:=1 to k do
 if s[j]=x[i] then f:=f+1;
 if f<2 then write(s[j],' ');
 f:=0;
 end;
 
End.
dimokin777 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Повторное вхождение слов as1212 Помощь студентам 1 02.11.2011 20:55
Уплотнить массив,удалив из него все нулевые строки и столбцы malishka ya@ Помощь студентам 0 29.05.2010 14:18
Уплотнить массив,удалив из него все нулевые строки и столбцы sonya17 Помощь студентам 0 27.05.2010 19:56