uses crt;
function Pos2(z,s:string):boolean;
var i,j,n:byte;
s1:string;
begin
s1:=s;
n:=0;
while pos(z,s1)>0 do{пока подстрока есть}
begin
n:=n+1;{считаем}
delete(s1,pos(z,s1),length(z));{удаляем}
end;
if n in [1..2] then Pos2:=true{если есть и не более 2 раз, подходит}
else Pos2:=false;
end;
var mas:array[1..20] of string;
k,n,i:byte;
ps:string;
begin
clrscr;
repeat
write('Введите количество слов в массиве, не более 20 n=');
readln(n);
until n in [1..20];
writeln('Введите ',n,' слов:');
for i:=1 to n do
readln(mas[i]);
write('Искомая подстрока: ');
readln(ps);
{выводим нужные слова}
writeln('Слова, содержащиеся в заданном слове не более 2 раз:');
for i:=1 to n do
if Pos2(ps,mas[i]) then
writeln(mas[i]);
readln
end.