Продублировать первое слово - 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 завершается.
- Выводится итоговая строка: ...
- Код завершается.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д