Написать программу в паскале: дана строка текста. слова в тексте друг от друга отделяются одним пробелом. удалить из строки все слова, начинающиеся и заканчивающиеся на "о".

polina1159 polina1159    1   09.06.2019 02:00    0

Ответы
holoyf holoyf  01.10.2020 22:46
Var
  ptr: integer;

function GetWord(s: string): string;
// Возвращает очередное слово из строки s или пустое значение,
// если в строке больше нет слов.
// Перед вызовом позиция начала слова указывается переменной ptr.
// Перед выходом ptr устаналивается на границу следующего слова
// ptr=0 означает, что вся строка просмотрена.
var
  n, p: integer;
begin
  n := Length(s);
  if (ptr >= n) or (ptr=0) then begin
    ptr := 0;
    Result := ''
  end
  else begin
    p := PosEx(' ', s, ptr);
    if p > 0 then begin
      Result := Copy(s, ptr, p - ptr);
      ptr := p + 1
    end
    else begin
      Result := Copy(s, ptr, n - ptr + 1);
      ptr := 0
    end
  end
end;

var
  s1, s2, s: string;
  n: integer;

begin
  writeln('Вводите строку');
  readln(s1);
  ptr := 1;
  s2 := '';
  repeat
    s := GetWord(s1);
    n := Length(s);
    if n > 0 then
      if (s[1] <> 'о') or (s[n] <> 'о') then
        s2 := s2 + s + ' '
  until n = 0;
  n := Length(s2);
  if s2[n] = ' ' then
    s2 := Copy(s2, 1, n - 1);
  writeln('Результирующая строка: ', s2)
end.

Тестовый прогон:

Вводите строку
В это окно отлично виден и прекрасный горный ландшафт, и одинокое облако, зацепившееся за покрытую снегом вершину.
Результирующая строка: В это виден и прекрасный горный ландшафт, и одинокое облако, зацепившееся за покрытую снегом вершину.
ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Информатика