Дан текст, состоящий из слов, разделенных пробелами. слова, начинающиеся и заканчивающиеся на буквы «a» удалить из текста — Pascal(Паскаль)

program Project1;
 
const
  //Множество разделителей слов.
  D = [' ', '.', ',', ':', ';', '!', '?', '-', #9, #10, #13];
var
  S : String;
  i, Pos2, Len : Integer;
begin
  repeat
    //Исходный текст.
    Writeln('Задайте текст:');
    Readln(S);
    
    //Находим слова с буквой "a" в начале и конце и удаляем их.
    Len := Length(S);
    Pos2 := 0;
    for i := Len downto 1 do begin
      //Пропускаем разделители.
      if S[i] in D then Continue;
      //Отслеживаем конец слова.
      if (i = Len) or (S[i + 1] in D) then Pos2 := i;
      //Отслеживаем начало слова.
      if (i = 1) or (S[i - 1] in D) then begin
        //Если слово начинается и заканчивается на букву 'а', то удаляем это слово.
        if (S[Pos2] in ['а', 'А', 'a', 'A']) and (S[i] in ['а', 'А', 'a', 'A']) then begin
          Delete(S, i, Pos2 - i + 1);
        end;
      end;
    end;
 
    //Показываем результат.
    Writeln('Текст после обработки.');
    Writeln(S);
 
    Writeln('Повторить - Enter. Выход - любой символ + Enter.');
    Readln(S);
  until S <> '';
end.

Leave a Comment

− 7 = 1