Удалить в каждом слове букву, которая находитсся посередине - дополнить программу - Pascal ABC

Узнай цену своей работы

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

у меня задание по лабе : удалить в каждом слове букву,которая находитсся посередине. Уже третий день мучаюсь, у меня получается удалить букву в середине слова, но проблема в том что только одного слова, а если будет идти предложение, оно все равно удалит только в первом слове, помогите организовать правильный цикл. Вот мой набросок программы:

Решение задачи: «Удалить в каждом слове букву, которая находитсся посередине - дополнить программу»

textual
Листинг программы
var
  s: String;
  i, j: Integer;
begin
  Write('Строка: '); ReadLn(s); s:=' '+s; j:=Length(s)+1;
  for i:=Length(s) downto 1 do
    if s[i]=' ' then begin
      if j-i>1 then Delete(s,(i+j) div 2,1);
      j:=i;
    end;
  WriteLn('Результат:',s);
end.

Объяснение кода листинга программы

  1. Объявлены две переменные: строка s и два целых числа i и j.
  2. Пользователю предлагается ввести строку. Введенная строка сохраняется в переменной s.
  3. Затем к строке добавляется пробел в начале и в конце, чтобы можно было найти середину строки.
  4. Переменная j инициализируется значением длины строки плюс один.
  5. В цикле от конца строки к началу проверяется каждая буква. Если это пробел, то удаляется символ посередине строки, если длина строки нечетная.
  6. Переменная j обновляется до значения i.
  7. После обработки всех символов выводится результат на экран.

Оцени полезность:

5   голосов , оценка 4.2 из 5
Похожие ответы