Строки. В каждом четном по порядку слове удалить все нечетные буквы, а в каждом нечетном слове удалить все четные буквы - Turbo Pascal

Формулировка задачи:

Дана строка символов, состоящая из русских слов, разделенных пробелами. В каждом четном по порядку слове удалить все нечетные буквы, а в каждом нечетном слове удалить все четные буквы. Полученные слова вывести на экран в обратном лексикографическом порядке.


textual

Код к задаче: «Строки. В каждом четном по порядку слове удалить все нечетные буквы, а в каждом нечетном слове удалить все четные буквы - Turbo Pascal»

var 
  s, T : string;
  i, j, prev, word_num : integer;
  arr : array[1 .. 50] of string;
begin
  { write('s = '); readln(s); }
  s := 'привет это простой тест приложения';
  
  s := s + ' ';
  prev := 0; 
  word_num := 1;
  i := 1;
  while i <= length(s) do
  begin
    if s[i] = ' ' then
    begin
      if i - prev > 1 then
      begin
        { слово - от prev + 1 до i - 1 }
        for j := i - prev - 1 downto 1 do 
          if odd(word_num) <> odd(j) then 
          begin
            delete(s, prev + j, 1); dec(i);
          end;
        arr[word_num] := copy(s, prev + 1, i - prev - 1);
        inc(word_num);
      end;
      prev := i;
    end;
    inc(i);
  end;
  dec(word_num);
  
  for i := 1 to word_num do
    for j := word_num downto i +1 do
      if arr[j - 1] < arr[j] then
      begin
        T := arr[j - 1]; arr[j - 1] := arr[j]; arr[j] := T;
      end;
  for i := 1 to word_num do
    write(arr[i], ' ');
  writeln;
end.
Эта работа вам не подошла?

Вы всегда можете заказать любую учебную работу у наших авторов от 20 руб.


СДЕЛАЙТЕ РЕПОСТ

9   голосов, оценка 4.000 из 5

Источник