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

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

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

> Задача на String!, помогите! срочно!
push
сообщение 4.06.2005 23:48
Сообщение #1


Гость






Нужно удалить из предложения слова, которые встречаются в нем заданное количество раз.
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
klem4
сообщение 5.06.2005 12:35
Сообщение #2


Perl. Just code it!
******

Группа: Модераторы
Сообщений: 4 100
Пол: Мужской
Реальное имя: Андрей

Репутация: -  44  +


таак опоздал, но вроде исправился :DDDD
уже из принципа решил, надеюсь этоправильно ))) вроде тестил прилично)))
uses crt;
const
limits=[#0..#32,'.',',','!','?',';'];
var
x,yes,no:array[1..30] of string;
s:string;
i,j,k,l,yy,nn,ycount,ncount,count,count1,bword:integer;
flag:boolean;

Begin

clrscr;

write('s='); readln(s);

write('count='); readln(count);

i:=1; j:=0;

while(i<=length(s)) do
begin
while(i<=length(s))and(s[i] in limits) do
inc(i);
if i<=length(s) then
begin
bword:=i;
inc(j);
while(i<=length(s))and(not(s[i] in limits)) do
inc(i);
x[j]:=copy(s,bword,i-bword);
end;
end;

ycount:=0; ncount:=0;

for i:=1 to j do
begin
count1:=0;
for k:=i to j do
if x[i]=x[k] then
inc(count1);
if count1=count then
begin
if ycount>0 then
begin
flag:=false;
l:=1;
while(l<=ycount)and(not(flag)) do
if x[i]=yes[l] then
flag:=true
else inc(l);
if flag then
begin
inc(ycount);
yes[ycount]:=x[i];
end
else
begin
inc(ncount);
no[ncount]:=x[i];
end
end
else
begin
inc(ncount);
no[ncount]:=x[i];
end;

end{c=c}
else
begin
if ncount>0 then
begin
flag:=false;
l:=1;
while(l<=ncount)and(not(flag)) do
if x[i]=no[l] then
flag:=true
else inc(l);
if not(flag) then
begin
inc(ycount);
yes[ycount]:=x[i];
end
end
else
begin
inc(ycount);
yes[ycount]:=x[i];
end;
end;
end;

for i:=1 to ycount do
write(yes[i],' ');
readln;
end.



злая задача :fire:

Сообщение отредактировано: klem4 - 5.06.2005 12:36


--------------------
perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме


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

 



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