Напечатайте строку, предварительно удалив из нее все вхождения th - Turbo Pascal

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

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

Не работает, помогите найти ошибку! Известно, что в начале строки s находится не более 40 латинских букв, за которыми следуют пробелы. напечатайте эту строку, предварительно удалив из нее все вхождения th
Листинг программы
  1. {$APPTYPE CONSOLE}
  2. uses
  3. SysUtils;
  4. const m=80;
  5. type stroka = array[1..80] of char;
  6. var s: stroka;
  7. srt: string;
  8. n: integer;
  9. procedure read_stroka (var s: stroka; var i: integer);
  10. var ch:char;
  11. begin
  12. ch := '.';
  13. i := 1;
  14. while i<=n do
  15. begin
  16. read (ch);
  17. s[i] := ch;
  18. i := i + 1;
  19. end;
  20. end;
  21. procedure delete_stroka (var s:stroka;var n: integer);
  22. var i,j: integer;
  23. begin
  24. i :=1;
  25. while i < n do
  26. begin
  27. if (s[i] = 't') and (s[i+1] = 'h') then
  28. begin
  29. for j:=i to n-2 do begin
  30. s[j] := s[j+2]
  31. end;
  32. s[n-1]:=' ';
  33. s[n]:=' ';
  34. end
  35. else
  36. i := i + 1 ;
  37. end;
  38. end;
  39. procedure print_stroka(s:stroka; k:integer);
  40. var i :integer;
  41. begin
  42. i := 1;
  43. while i <=n do
  44. begin
  45. write (s[i]);
  46. i := i + 1;
  47. end;
  48. writeln;
  49. end;
  50. begin
  51. writeln ('введите длину строки');
  52. readln(n);
  53. writeln ('введите строку, заканчивающуюся пробелом, не более ',n,' символов');
  54. read_stroka(s,n);
  55. delete_stroka(s,n);
  56. print_stroka(s,n);
  57. Readln;
  58. readln;
  59. end.

Решение задачи: «Напечатайте строку, предварительно удалив из нее все вхождения th»

textual
Листинг программы
  1.   for j:=Length(s)-1 downto 1 do
  2.     if (s[j]='t') and (s[j+1]='h') then Delete(s,j,2);

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

  1. В цикле for перебираются символы строки s, начиная с последнего и до первого включительно.
    1. Проверяется условие: если текущий символ равен 't' и следующий символ равен 'h'.
    2. Если условие выполняется, то удаляется подстрока s[j:j+2], то есть символ 't' и следующий за ним символ 'h'.
    3. Цикл продолжается до тех пор, пока не будет пройдено все символы строки s.

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


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

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

8   голосов , оценка 3.875 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы