Аватар
Информатика, опубликовано 2018-08-22 22:00:07 by Гость

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

Аватар
Ответ оставил Гость

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.

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

Вводите строку
В это окно отлично виден и прекрасный горный ландшафт, и одинокое облако, зацепившееся за покрытую снегом вершину.
Результирующая строка: В это виден и прекрасный горный ландшафт, и одинокое облако, зацепившееся за покрытую снегом вершину.



Вопрос
Не нашли ответа?
Если вы не нашли ответа на свой вопрос, или сомневаетесь в его правильности, то можете воспользоваться формой ниже и уточнить решение. Или воспользуйтесь формой поиска и найдите похожие ответы по предмету Информатика.