Продублировать первое слово - Pascal ABC
Формулировка задачи:
Дана строка, слова разделены одним пробелом, в конце точка. Продублировать первое слово, если слово максимально длины встречается более 2 раз. В противном случае удалить последнее слово.
Решение задачи: «Продублировать первое слово»
textual
Листинг программы
var s,buf,max:string; i:integer; begin writeln('Введите строку'); readln(s); i:=1; s:=trim(s); max:=''; buf:=''; for i:=1 to length(s) do if (s[i] <> ' ') and (s[i] <> '.') then buf:=buf + s[i] else begin if length(buf) > length(max) then max:=buf; buf:=''; end; buf:=s; delete(buf,pos(max,s),length(max)); i:=length(s) - 1; if pos(max,buf) > 0 then insert(copy(s,1,pos(' ',s)),s,pos(' ',s)+1) else while s[i] <> ' ' do begin delete(s,i,1); dec(i); end; writeln('Итоговая строка: ',s); end.
Объяснение кода листинга программы
- Введите строку.
- Переменная s инициализируется введенной пользователем строкой.
- Переменная buf инициализируется пустой строкой.
- Переменная max инициализируется пустой строкой.
- Переменная i инициализируется числом 1.
- Строка s очищается от лишних пробелов.
- Цикл for начинается. Для каждого символа в строке s...
- Если текущий символ не является пробелом и не равен максимальному символу в строке max...
- Строка buf увеличивается на текущий символ.
- Если длина строки buf превышает длину строки max, то max заменяется на buf.
- Строка buf очищается.
- Позиция max в строке s проверяется. Если позиция max больше позиции последнего символа в строке s, то...
- Строка s очищается.
- Цикл while начинается. Пока символ в позиции i в строке s не является пробелом...
- Символ в позиции i удаляется из строки s.
- Позиция i уменьшается на 1.
- Если позиция i меньше 1, то цикл while завершается.
- Выводится итоговая строка: ...
- Код завершается.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д