Вот что получилось сделал чтобы было ограничивалась от 4 до 8 и сделал чтобы было не больше 20 , но не могу сделать чтобы "Содержит одно сочетание «аb», заканчивается на «b»(сделал) и символы «b» и «с» не стоят рядом"
Код
Program pr01;
uses Crt;
const
alf: string = 'ABC';
n = 20;
type
mass = array [1..n] of string;
function InMass(a: mass; s: string): boolean;
var
i: integer;
begin
InMass := False;
for i := 1 to n do begin
if a[i] = s then begin
InMass := True;
exit;
end;
end;
end;
function P(l: integer): string;
var
i: integer;
st: string;
begin
st := '';
for i := 1 to l do begin
st := st + alf[random(length(alf))+1];
end;
P := st;
end;
var
i,j,l1,l2,l3: integer;
s: mass;
st: string;
begin
ClrScr;
Randomize;
i := 1;
while i <= n do begin
l1 := random(5)+3;
st := P(l1)+'B';
if InMass(s, st) then continue;
s[i] := st;
i := i + 1;
end;
for i := 1 to n do begin
for j := i to n do begin
if length(s[i]) > length(s[j]) then
begin
st := s[i];
s[i] := s[j];
s[j] := st;
end;
end;
end;
for i := 1 to n do begin
write(i:2,' ');
Write(s[i]);
writeln(' len=',length(s[i]));
end;
end.