Удалить из строки слова, которые начинаются на букву "r" и имеют нечётную длину - Turbo Pascal

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

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

Дана строка. Слова отделены пробелом. Вывести строку, удалив слова, которые начинаются на букву "r" и имеют нечетную длину.
Попробовал так, программа не идет должным образом. Буду очень признателен за помощь!

Решение задачи: «Удалить из строки слова, которые начинаются на букву "r" и имеют нечётную длину»

textual
Листинг программы
uses crt;
var str:string;
    i,j,k:integer;
begin
clrscr;
writeln('Введите строку, содержащую слова начинающиеся на букву r');
readln(str);
str:=' '+str+' ';{добавим пробел в начало и в конец для удобства}
i:=2; {начнем со 2 символа}
while i<=length(str) do {пока не конец}
if (str[i]='r') and(str[i-1]=' ') then{если r, а перед ней пробел}
 begin
  j:=i;
  k:=0;
  while(j<=length(str))and (str[j]<>' ')do {пока не конец строки и не пробел}
   begin
    k:=k+1;{считаем}
    j:=j+1;{идем вперед}
   end;
  if odd(k) then delete(str,i,k){если длина нечетная, удаляем слово}
  else i:=i+k; {иначе перешагиваем}
 end
else i:=i+1;{иначе на 1 вперед}
delete(str,1,1);{удалим первый пробел}
writeln(str);
readln
end.

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

  1. Ввод строки, содержащей слова, начинающиеся на букву r.
  2. Добавление пробела в начало и в конец строки для удобства обработки.
  3. Инициализация переменных: i = 2, j = 2, k = 0.
  4. Цикл while, выполняющийся до тех пор, пока i не станет больше длины строки.
  5. Проверка: если i-й символ равен r и предыдущий символ равен , то начинаем обрабатывать слово.
  6. Установка j равным i.
  7. Цикл while, выполняющийся до тех пор, пока j не станет больше длины строки и j-й символ не равен .
  8. Увеличение k на 1.
  9. Увеличение j на 1.
  10. Проверка: если k - это нечетное число, то удаляем слово.
  11. Если k четное, то увеличиваем i на k.
  12. Если k нечетное, то удаляем слово.
  13. Удаление первого пробела в начале строки.
  14. Вывод обработанной строки.
  15. Чтение строки с клавиатуры для подтверждения ввода.
  16. Конец программы.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

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

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