Написать программу в паскале: дана строка текста. слова в тексте друг от друга отделяются одним пробелом. удалить из строки все слова, начинающиеся и заканчивающиеся на "о".
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.
Тестовый прогон:
Вводите строку В это окно отлично виден и прекрасный горный ландшафт, и одинокое облако, зацепившееся за покрытую снегом вершину. Результирующая строка: В это виден и прекрасный горный ландшафт, и одинокое облако, зацепившееся за покрытую снегом вершину.
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.
Тестовый прогон:
Вводите строку
В это окно отлично виден и прекрасный горный ландшафт, и одинокое облако, зацепившееся за покрытую снегом вершину.
Результирующая строка: В это виден и прекрасный горный ландшафт, и одинокое облако, зацепившееся за покрытую снегом вершину.