Куда "не катит"?
результат тот же, что и без R''
-- Сб май 10, 2014 22:29:21 --всё он выдаёт
если спросить writeln(R[k]) он выдает правильный результат для всех k
-- Сб май 10, 2014 22:31:39 --Если уж вникать в детали.
Если не лень, то можете вставить
Код:
Program omega2;
var R,E,F,WW,W: string;
var ff,s,C,i,n,m,k,ly,ny: integer;
var p,q: char;
begin
readln(W);
n:=length(W);
C:=0;
m:=n div 2;
{R:='';}
for i:=1 to m do
begin
if W[2*i-1]+W[2*i]='a1' then R[i]:='x';
if W[2*i-1]+W[2*i]='b1' then R[i]:='y';
if W[2*i-1]+W[2*i]='a2' then R[i]:='z';
if W[2*i-1]+W[2*i]='b2' then R[i]:='t';
if W[2*i-1]+W[2*i]='A1' then R[i]:='a';
if W[2*i-1]+W[2*i]='B1' then R[i]:='b';
if W[2*i-1]+W[2*i]='A2' then R[i]:='c';
if W[2*i-1]+W[2*i]='B2' then R[i]:='d';
end;
writeln(R[1]);
writeln(R);
k:=0;
for i:=1 to m do
begin
if R[i] in ['y','t','b','d'] then k:=k+1;
end;
ny:=k;
k:=m;
while R[k] in ['x','z','a','c'] do k:=k-1;
ly:=k;
repeat
begin
for k:=ly downto 2 do
begin
if R[k]='y' then
begin
if R[k-1]='z' then C:=C+1{F[k]};
if R[k-1]='c' then C:=C-1{F[k]};
end;
if R[k]='b' then
begin
if R[k-1]='z' then C:=C-1{F[k]};
if R[k-1]='c' then C:=C+1{F[k]};
end;
{остальные варианты}
p:=R[k];
Delete(R, k,1);
Insert(p, R, k-1);
end;
end;
k:=ly;
while R[k] in ['x','z','a','c'] do k:=k-1;
ly:=k;
until ny<ly;
writeln(Length(R));
end.
на сайт
http://www.compileonline.com/compile_pascal_online.phpНа вход вставьте a1a1b1a1