Напечатать все слова, предварительно преобразовав каждое из них по следующему правилу: удалить из слова все вхождения последней буквы(кроме нее самой) — Pascal(Паскаль)

uses crt;
const rz=[' ','.',',','-','?','!'];{разделители слов}
var s,s1,s2:string;
    n,i,j,k:byte;
begin
clrscr;
writeln('Введите последовательность слов');
readln(s);
s2:='';
i:=1;
while i<=length(s) do
if not(s[i] in rz)and ((s[i-1] in rz)or(i=1)) then{если не буква, а перед ней разделитель, или она первая}
 begin
  k:=i;s1:='';
  while not(s[k] in rz)and(k<=length(s))do {пока буква и не конец строки}
   begin
    s1:=s1+s[k];{составляем слово}
    k:=k+1;{идем вперед}
   end;
  for j:=length(s1)-1 downto 1 do{идем от предпоследней буквы назад}
  if s1[j]=s1[length(s1)] then delete(s1,j,1);{если как последняя, удаляем}
  write(s1,' ');{выводим}
  i:=i+length(s1);{перепрыгиваем}
 end
else i:=i+1;
readln
end.

Leave a Comment

− 1 = 5