Дана строка, слова разделены одним пробелом, в конце точка - Pascal ABC
Формулировка задачи:
Дана строка, слова разделены одним пробелом, в конце точка. Если последняя буква последнего слова и первая буква слова минимальной длины одинаковы, то поменять их местами. В противном случае удалить слово минимальной длины.
Буду очень благодарна за помощь.
Решение задачи: «Дана строка, слова разделены одним пробелом, в конце точка»
textual
Листинг программы
var s,s1,sp,sm:string; i,j,im,ip,mn:byte; begin writeln('Введите строку из слов, разделенных одним пробелом в конце точка'); readln(s); //составляем последнее слово sp:=''; i:=length(s)-1; while (i>=1)and(s[i]<>' ') do begin sp:=s[i]+sp; i:=i-1; end; ip:=i+1; //его начало //ищем слово минимальной длины mn:=255; i:=1; while i<length(s) do if (s[i]<>' ')and((i=1)or(s[i-1]=' ')) then begin s1:=''; j:=i; while(j<length(s))and(s[j]<>' ')do begin s1:=s1+s[j]; j:=j+1; end; if length(s1)<mn then begin mn:=length(s1); im:=i; //его начало sm:=s1; //само слово end; i:=i+length(s1); end else i:=i+1; if sm[1]=sp[1] then //если первые буквы одинаковые begin delete(s,ip,length(sp)); //удаляем последнее insert(sm,s,ip); //на его место вставляем минимальное delete(s,im,length(sm)); //удаляем минимальное insert(sp,s,im); //вставляем последнее end else delete(s,im,length(sm)); //иначе удаляем минимальное write(s) end.
Объяснение кода листинга программы
- Создаются переменные для хранения строки, слов и их длин, а также байтовые переменные для работы с байтами.
- Выводится сообщение для ввода строки.
- Строка разделяется на слова, которые сохраняются в переменной s.
- Создается пустая строка sp для последнего слова.
- Переменная i устанавливается равной длине s минус 1, а переменная j устанавливается равной i.
- Пока i больше или равно 1 и символ s[i] не равен пробелу, выполняется следующая последовательность действий:
- Строка sp увеличивается на текущий символ s[i].
- Переменная i уменьшается на 1.
- Если длина слова s1 меньше min_length, то обновляется min_length, переменная im устанавливается равной i, а переменная sm устанавливается равной s1.
- Если первые буквы слов sm и sp одинаковы, выполняется следующая последовательность действий:
- Строка s удаляется от i до ip, включая сам ip.
- Строка sp вставляется на место строки s в позиции i.
- Переменная im устанавливается равной i.
- Если первые буквы слов sm и sp не одинаковы, выполняется следующая последовательность действий:
- Переменная im устанавливается равной i.
- В конце выводится строка s.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д