HOME FORUMS MEMBERS RECENT POSTS LOG IN  
× Авторизация
Имя пользователя:
Пароль:
Нет аккаунта? Регистрация
Баннер 1   Баннер 2
НОВЫЕ ТОРГОВАЯ НОВОСТИ ЧАТ
loading...
Скрыть
Вернуться   ANTICHAT > ОФФТОП > Болталка
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

задача Pascal
  #1  
Старый 28.12.2008, 16:22
P3L3NG
Banned
Регистрация: 04.06.2008
Сообщений: 402
С нами: 9440285

Репутация: 719
По умолчанию задача Pascal

Задание
Разделитель — один из символов « ,.;:!?"'» (начиная с пробела и заканчивая апострофом). Буква — любой символ, отличный от разделителя. Слово — последовательность букв, ограниченная с каждой стороны разделителем или концом строки. Например, в строке «x9i23!слово, ,» два слова — «x9i23» и «слово».

Исходная строка вводится с клавиатуры, изменённая строка выводится на экран. Если в задании используется «заданное» слово, оно также вводится с клавиатуры. Разделители в программе представляются как множество.

Требуется произвести одно из следующих действий (при всех манипуляциях со словами разделители сохранять без изменений):

удалить слова, содержащие хотя бы 4 различные буквы, и продублировать остальные слова;

Есть 2 сорца: один - другой вариант, второй - этот , но не верно выполняющийся.


Кто напишет и за скока ?
Срок - Сегодня до 00.00 (мск)
 
Ответить с цитированием

  #2  
Старый 28.12.2008, 17:07
-=Razor=-
Новичок
Регистрация: 20.12.2008
Сообщений: 24
С нами: 9152742

Репутация: 62
По умолчанию

Цитата:
var delim,sent,result,tmps:string;
dArr : array[1..100] of byte;
i,p,k,w:byte;
begin
delim := ' ,.;:!?"''';
sent:= 'Let''s say, there is a test, simple: example. Clear? Sure! Next; aga well.';
sent:= ' '+sent+' ';
w:=0;

for i:=1 to 100 do dArr[i]:=0;
for i:=1 to length(delim) do
begin
tmps:=sent;
k:=pos(delim[i],tmps); p:=0;
while (k>0) do
begin
p:=p+k;
w:=w+1;
dArr[w]:=p;
Delete(tmps,1,k);
k:=pos(delim[i],tmps);
end;
end;

for i:=1 to w-1 do
for k:=i+1 to w do
if (dArr[i]>dArr[k]) then
begin
p:=dArr[i];
dArr[i]:=dArr[k];
dArr[k]:=p;
end;
result:='';
for i:=1 to w-1 do
if (dArr[i+1]-dArr[i]>1) then
begin
tmps := copy(sent,1+dArr[i],dArr[i+1]-1-dArr[i]);
if (tmps[1]=tmps[length(tmps)]) then
result:=result+sent[dArr[i+1]]
else
result:=result+tmps+' '+tmps+sent[dArr[i+1]]
end
else
result:=result+sent[dArr[i+1]];
writeln(' Original: '+sent);
writeln(' Result: '+result);
end.
Отпишись потом...
 
Ответить с цитированием

  #3  
Старый 28.12.2008, 17:20
P3L3NG
Banned
Регистрация: 04.06.2008
Сообщений: 402
С нами: 9440285

Репутация: 719
По умолчанию

Работает. Спс. Стучи в аську, могу номерок подарить или заплатить
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
СРОЧНО!!! Turbo Pascal MAG0t Разное - Покупка, продажа, обмен 3 23.12.2008 18:36
TURBO PASCAL 7 1.0 Daemond С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby 1 03.12.2008 22:32
Задача на Ассемблере NEt_hunter С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby 1 27.10.2006 22:15
Pascal. Задачи. Zakary Болталка 17 18.05.2006 09:59
Стоит следующая задача. Отлавливаем снифер. Егорыч+++ PHP 21 27.07.2005 16:18



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT ™ © 2001- Antichat Kft.

×

Создать сделку

Продавец: ник или ID

Название сделки:

Сумма USDT:

Срок сделки, дней:

Кто платит комиссию:

Условия сделки:

После создания сделки средства будут зарезервированы в холде до завершения сделки.

×

Мои сделки

Загрузка...
×

Сделка


Загрузка чата...
×

ESCROW ADMIN PANEL

Загрузка...
Загрузка...