Показать сообщение отдельно
Старый 22.12.2014, 18:33   #561
 
Статус: Рядовой
Регистрация: 14.12.2014
Сообщений: 2
СПАСИБО: 1
сказали Спасибо 0 раз(а) в 0 сообщении
По умолчанию Re: Решебник (turbo pascal, Delphi)

Извините, как описать index, ибо паскаль не знает такого, а я не понимаю j := Index( Substr( A, i, l - i + 1 ), " "); буду очень благодарен

Добавлено через 44 минуты
Вот что получилось, но ошибку выкидывает: "Неизвестное имя Index"
program doubleletters;
var a,a1,a2,b,c:string;
k,i,l,j:byte;
function substr(const a:string; const i,j:byte):string;
var b:string;
k:byte;
begin for k:=i to i+j-1 do
b:=b+a[k];
substr:=b;
end;
Function IsDoubleLetters ( Var A : String ) : Boolean;
Var
i : Integer;
ist : Boolean;
B : String;
Begin
ist := False;
B := Substr( A, 1, 1 );
For i := 2 To Length( A ) Do Begin
If Substr( A, i - 1, 1 ) = Substr( A, i, 1 )
Then ist := True
Else B := B + Substr( A, i, 1 );
End;
A := B;
IsDoubleLetters := ist;
End;
begin
l := Length( A );
i := 1;
While ( i < l ) Do Begin
j := Index( Substr( A, i, l - i + 1 ), ' ');
If j = 0
Then j := l - i + 1
Else j := j - 1;
If j = 0
Then Begin
B := ' ';
j := 1;
End
Else B := Substr( A, i, j );
If IsDoubleLetters ( B )
Then Begin
If i = 1
Then Begin
A1 := '';
B := ' ' + B;
End
Else A1 := Substr ( A, 1, i - 1 );
k := Length ( A );
If ( i + j ) > k
Then A2 := ' '
Else A2 := Substr ( A, i + j , k - i - j + 1 );
A := A1 + A2 + B;
l := l - j;
End
Else i := i + j;
End;
end.

Последний раз редактировалось Belkaorex; 22.12.2014 в 18:33. Причина: Добавлено сообщение
Belkaorex вне форума   ЦИТИРОВАТЬ
Объявление
Нам нужна Ваша поддержка. Сбор средств на оплату дата-центра.