Обработка строк - Turbo Pascal (248952)
Формулировка задачи:
Нужно удалить из слова все предыдущие вхождения последней буквы
Решение задачи: «Обработка строк»
textual
Листинг программы
program lab6; Var s,sl,st:string; C:char; i:byte; Begin write('Posledovatelnost slov: ');readln(s); if s[Length(s)]='.' then Delete(s,Length(s),1); i:=Length(s); While (s[i]<>' ')and(i<>0) do Begin st:=s[i]+st; Delete(s,i,1); dec(i); End; While Pos(' ',s)>0 do Begin sl:=Copy(s,1,Pos(' ',s)-1); Delete(s,1,Pos(' ',s)); if (st<>sl)and(Length(sl)>1) then writeln(Copy(sl,1,Length(sl)-1)); End; readln; begin c:=s[length(s)]; for i:=length(s)-1 downto 1 do if s[i]=c then delete(s,i,1); end; End.
Объяснение кода листинга программы
- Программа считывает строку из консоли с помощью
readln(s)
. - Если последним символом строки является точка, то она удаляется с помощью
Delete(s,Length(s),1)
. - Переменная
i
инициализируется значением длины строки. - В цикле, пока последний символ строки не является пробелом и индекс не равен нулю, выполняется следующее:
- Последний символ добавляется к переменной
st
. - Из строки удаляется последний символ.
- Значение
i
уменьшается на единицу.
- Последний символ добавляется к переменной
- В цикле, пока в строке есть пробелы, выполняется следующее:
- Создается новая строка
sl
, которая является копией исходной строки до первого пробела. - Первый пробел и все последующие символы до следующего пробела удаляются из исходной строки.
- Если новая строка отличается от исходной и ее длина больше одного символа, то она выводится на консоль.
- Создается новая строка
- В цикле, начиная с последнего символа исходной строки, проверяется каждый символ. Если он совпадает с последним символом, то он удаляется из строки.
- Программа завершается чтением символа из консоли с помощью
readln
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д