| ← Март 2014 → | ||||||
|
1
|
2
|
|||||
|---|---|---|---|---|---|---|
|
3
|
4
|
5
|
6
|
7
|
8
|
9
|
|
10
|
11
|
12
|
14
|
15
|
16
|
|
|
17
|
18
|
19
|
20
|
21
|
22
|
23
|
|
24
|
25
|
26
|
27
|
28
|
29
|
30
|
|
31
|
||||||
За последние 60 дней ни разу не выходила
Сайт рассылки:
http://rfpro.ru/
Открыта:
11-11-2009
Статистика
0 за неделю


a:=' q aa ww sss eee dddd rrrrr fffff gggggg hhhhhhh jjjjjjjj kkkkkkkkkk';
{всё, что не символы 'a'..'z' считается разделителем}
for c:=1 to length(a)do
if not(a[c]in ['a'..'z'])then a[c]:=',';
{контрольная строка
writeln('control A:',a);
{удаляем начальные разделители}
while a[1]=','do delete(a,1,1);
{контрольная строка
writeln('control B:',a);
{удаляем двойные разделители}
while pos(',,',a)>0do delete(a,pos(',,',a),1);
{контрольная строка
writeln('control C:',a);
{заменяем-добавляем точку в конце строки}
if a[length(a)]=','then a[length(a)]:='.'
else a:=a+'.';
{контрольная строка
writeln('control D:',a);
{внешний цикл проверки}
repeat
{начинаем с начала строки}
c:=1;
f:=true;
{контрольная строка
writeln('control E:',a);
{внутренний цикл проверки }
repeat
{контрольная строка
writeln('control F:',a);
{переходим к следующему слову}
d:=c;
{ищем начало следующего слова}
while(a[d]<>',')and(a[d]<>'.')do inc(d);
inc(d);
{считаем длину слова}
e:=0;
while(a[c+e]<>',')and(a[c+e]<>'.')and
(a[d+e]<>',')and(a[d+e]<>'.')do inc(e);
{если второе слово длинее, то короткое слово переносим в конец строки}
if a[d+e]in['a'..'z']then
begin
a[length(a)]:=',';{заменяем точку}
a:=a+copy(a,c,e+1);{копируем в конец строки}
delete(a,c,e+1);{удаляем скопированое слово}
a[length(a)]:='.';{востанавлиываем точку}
f:=false;{была замена}
end
else c:=d;
until(d+e)=length(a);
until f;
{выводим результат}
writeln('Result:',a);readln;
end.