Cклавиатуры вводится произвольная строка символов. группы символов, разделенные пробелами и не имеющие пробелов внутри, будем называть словами. написать программу, которая удаляет все слова с нечетными номерами. вывести полученную строку на экран. длина строки не более 100 символов.
// PascalABC.NET 3.1, сборка 1256 от 21.06.2016
begin
var s:=ReadlnString('>');
var m:=s.Matches('(\S+)').Select(x->(x.Index+1,x.Value.Length));
// получили последовательность элементов вида <позиция><длина>,
// отражающих положение слов в строке.
var n:=m.Count; // количество слов
if n.IsEven then Dec(n);
while n>0 do begin
var e:=m.ElementAt(n-1);
Delete(s,e.Item1,e.Item2);
Dec(n,2)
end;
Writeln(s)
end.
Тестовое решение
> Карл у Клары украл кораллы Клара у Карла украла кларнет
у украл Клара Карла кларнет
//Pascal ABC.NET 3.1 сборка 1219
Var
s:string;
i:integer;
begin
readln(s);
s:=s.Trim;
i:=1;
while i<=length(s)-1 do
if (s[i]=' ') and (s[i+1]=' ') then delete(s,i,1) else inc(i);
var ars:=s.Split;
s:='';
i:=1;
while i<=ars.length-1 do
begin
s:=s+ars[i]+' ';
i:=i+2;
end;
writeln(s);
end.
Пример ввода:
С понедельника точно начну писать документацию. Вот пока немного годноты.
Пример вывода:
понедельника начну документацию. пока годноты.