Дана строка-предложение. Зашифровать ее, поместив вначале все символы, расположенные на четных позициях строки, а затем, в обратном порядке, все символы, расположенные на нечетных позициях.

1
var s,s1,s2:string;
i,l:integer;
begin
readln(s);
i:=1; s1:=s; l:=length(s);
for i:=1 to l div 2 do begin
s1[i]:=s[i*2];
s1[l-i+1]:=s[(i-1)*2+1];
end;
if (l mod 2=1) then s1[l-i+1]:=s[(i-1)*2+1];
writeln(s1);
end.
в чём ошибка. При вводе Hello, world! пропадает восклицательный знак и получается el,wrd lo olH

Ответы и объяснения

2014-02-02T18:31:29+04:00
var a, b, c, i, n :integer;
     s, p:string;
begin
   readln (s);
   for i:=1 to length (s) do
      if i mod 2 = 0 then p:=p+s[i];
   for i:=length (s) downto 1 do
      if i mod 2 <> 0 then p:=p+s[i];
   writeln (p);
end.