Другие языки программирования и технологии

нужна помощь с Паскалем

вводится строка с клавиатуры. заменить символы "ab" на "ba" а "ba" на "ab"
во мой код но он не работает:
var
s: string;
len,x, i, j: integer;
begin
write('Input string: ');
readln(s);
len:= length(s);

i:= 1;

while i<len-1> = 'a' then begin
if s[i+1] = 'b' then begin
x:=ord(s);
s:=s[i+1];
s[i+1]:=chr(x);
end;
end;

if s = 'b' then begin
if s[i+1] = 'a' then begin
x:=ord(s);
s:=s[i+1];
s[i+1]:=chr(x);
end;
end;
j:= j+1;
i:= i+1;

end;
writeln(s);
readln

end.

прошу помочь
=)
=)
613
program abba;

var
s: string;
ch: char;
len, i: integer;

begin
writeln('Input string:');
readln(s);
len := length(s);

for i := 1 to len - 1 do
begin
if ((s[ i ] = 'a') and (s[ i + 1 ] = 'b')) or ((s[ i ] = 'b') and (s[ i + 1 ] = 'a')) then
begin
{обмен}
ch := s[ i ];
s[ i ] := s[ i+1 ];
s[ i+1 ] := ch;
end;
end;

WriteLn(s);

end.

с for будет глюк для abba потому все же лучше c while цикл:

i:=1;
while i < len do
begin
if ((s[ i ] = 'a') and (s[ i + 1 ] = 'b')) or ((s[ i ] = 'b') and (s[ i + 1 ] = 'a')) then
begin
{обмен}
ch := s[ i ];
s[ i ] := s[ i+1 ];
s[ i+1 ] := ch;
Inc( i );
end;
Inc( i );
end;
Алексей Лобачев
Алексей Лобачев
76 712
Лучший ответ
=) спасибо! работает
Кажется вначале Program пишется еще, посему Program N041212

У тебя цикл там или условие? If / While определись. Если While, где do ?

ord, chr уж не помню что за операторы

Цикла у тебя там нет, ибо полуцикл-полуусловие

Предпоследнее readln;

Дальше просто мозг взрывается думать
чеза бред наверху
=) в каком месте? согласен что код может быть бредовым, но я ведь написал что он не рабочий просто прошу указать на ошибки