Четные и нечетные символы разделить по разным строкам

Задача

Создайте из четных символов строки st1 строку str2 и из нечетных символов - строку str3.

Решение

  1. Измерим длину строки.
  2. В цикле перебираем символы от 1-го до последнего (его индекс равен значению длины строки).
  3. Если индекс очередного символа нечетный, то добавляем этот символ в конец строки str3.
  4. Иначе - добавляем к str2.
var
    str1,str2,str3: string;
    l,i: byte;    
begin
    readln(str1);
    str2 := '';
    str3 := '';
    l := length(str1);
    for i:=1 to l do
        if odd(i) then
            str3 := str3 + str1[i]
        else
            str2 := str2 + str1[i];
    writeln(str2);
    writeln(str3);
end.

Пример выполнения программы:

Pascal 1234567890
acl13579
Psa 24680

Комментарии

program het_nehet;
{Из четных символов строки s создать s1, из нечетных - s2}
 
var
  s,s1,s2:string;
  dl,i:byte;
 
begin
  s:='sdfcx   sfxdc fcxdstkj bdhcgvf';
  dl:=length(s);
  for i:=1 to dl do
    begin
      s1:=s1+copy(s,2*i-1,1); {2*i-1 задает нечетную последовательность с 1-ы}
      s2:=s2+copy(s,2*i,1); {2*i задает четную последовательность с 2-и}
      if (2*i-1)>dl
        then
          break; {выход еще до того как i станет = dl, конкретно при i=16 для данной s}
    end;
  writeln('Начальная строка:',s);  
  writeln('Строка нечетных символов:',s1);
  writeln('Строка четных символов:',s2);
 
end.