Удалить в каждом слове букву, которая находитсся посередине - дополнить программу - 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.
Объяснение кода листинга программы
- Объявлены две переменные: строка s и два целых числа i и j.
- Пользователю предлагается ввести строку. Введенная строка сохраняется в переменной s.
- Затем к строке добавляется пробел в начале и в конце, чтобы можно было найти середину строки.
- Переменная j инициализируется значением длины строки плюс один.
- В цикле от конца строки к началу проверяется каждая буква. Если это пробел, то удаляется символ посередине строки, если длина строки нечетная.
- Переменная j обновляется до значения i.
- После обработки всех символов выводится результат на экран.