Продублировать первое слово - Pascal ABC

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

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

Дана строка, слова разделены одним пробелом, в конце точка. Продублировать первое слово, если слово максимально длины встречается более 2 раз. В противном случае удалить последнее слово.

Решение задачи: «Продублировать первое слово»

textual
Листинг программы
  1. var
  2. s,buf,max:string;
  3. i:integer;
  4. begin
  5. writeln('Введите строку');
  6. readln(s);
  7. i:=1;
  8. s:=trim(s);
  9. max:='';
  10. buf:='';
  11. for i:=1 to length(s) do
  12.     if (s[i] <> ' ') and (s[i] <> '.') then
  13.        buf:=buf + s[i]
  14.     else
  15.        begin
  16.        if length(buf) > length(max) then
  17.           max:=buf;
  18.        buf:='';
  19.        end;
  20. buf:=s;
  21. delete(buf,pos(max,s),length(max));
  22. i:=length(s) - 1;
  23. if pos(max,buf) > 0 then
  24.    insert(copy(s,1,pos(' ',s)),s,pos(' ',s)+1)
  25. else
  26.    while s[i] <> ' ' do
  27.     begin
  28.     delete(s,i,1);
  29.     dec(i);
  30.     end;
  31. writeln('Итоговая строка: ',s);
  32. end.

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

  1. Введите строку.
  2. Переменная s инициализируется введенной пользователем строкой.
  3. Переменная buf инициализируется пустой строкой.
  4. Переменная max инициализируется пустой строкой.
  5. Переменная i инициализируется числом 1.
  6. Строка s очищается от лишних пробелов.
  7. Цикл for начинается. Для каждого символа в строке s...
  8. Если текущий символ не является пробелом и не равен максимальному символу в строке max...
  9. Строка buf увеличивается на текущий символ.
  10. Если длина строки buf превышает длину строки max, то max заменяется на buf.
  11. Строка buf очищается.
  12. Позиция max в строке s проверяется. Если позиция max больше позиции последнего символа в строке s, то...
  13. Строка s очищается.
  14. Цикл while начинается. Пока символ в позиции i в строке s не является пробелом...
  15. Символ в позиции i удаляется из строки s.
  16. Позиция i уменьшается на 1.
  17. Если позиция i меньше 1, то цикл while завершается.
  18. Выводится итоговая строка: ...
  19. Код завершается.

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


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

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

14   голосов , оценка 3.929 из 5

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

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

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