Const
n=50;
var
f:Text;
s:string;
ss:array of string;
a:array[1..n] of string;
i,j:integer;
begin
Assign(f,'input.txt'); Reset(f);
j:=0;
while not Eof(f) do begin
Readln(f,s);
ss:=s.Split(' ');
for i:=0 to Length(ss)-1 do
if Length(ss[i])>1 then
if RightStr(ss[i],2)='of' then
begin Inc(j); a[j]:=ss[i] end;
end;
Close(f);
for i:=1 to j do Write(a[i],' ');
Writeln
end.
<em><u>Тестовое решение:</u></em>
123of asdfdsof dasof
<em><u>Есть решение и покороче, но совсем не уровня начинающих:</u></em>
uses
System.Text.RegularExpressions;
const
n=50;
var
f:Text;
s:string;
a:array[1..n] of string;
i,j:integer;
begin
Assign(f,'input.txt'); Reset(f);
j:=0;
while not Eof(f) do begin
Readln(f,s);
foreach var m:Match in Regex.Matches(s,'\b\S+of\b') do
begin Inc(j); a[j]:=m.Value end;
end;
Close(f);
for i:=1 to j do Write(a[i],' ');
Writeln
end.
ПАЗОР
I=4
[Р,О,З,А] 4 элемент А, 4-1=3 - З и тд
В двух словах - поиск таких элементов А которые не встречаются в векторе С
как делается
пробегаем по вектору А
при каждом новом элементе обнуляем флаг К
продегаем по вектору С
сравниваем текущий элемент А с текущим элементом С
если равны, то меняем флаг К на 1
когда текущий элемент А сравнили со всеми элементами С и флаг К остался нулем, то значит не нашли равных и выводим значение текущего элемента А на экран
и тд
Возми к примеру квадрат, прямоугольник,овал, круг, ВКЛУЧИ ВООБРАЖЕНИЕЕЕ...