uses crt;
const nmax=20;{в больших массивах произведение вылезет за тип longint}
type mas=array[1..nmax] of integer;
procedure Index(m:mas;n:byte;a:integer);
var i,k:byte;
begin
writeln('Индексы элементов, по модулю меньших ',a);
k:=0;
for i:=1 to n do
if abs(m[i])<a then
begin
k:=1;
write(i,' ');
end;
if k=0 then write('Таких элементов нет');
end;
var b:mas;
n,i,j,k:byte;
a:integer;
begin
clrscr;
randomize;
repeat
write('Размер массива до ',nmax,' n=');
readln(n);
until n in [1..nmax];
writeln('Массив:');
for i:=1 to n do
begin
repeat
b[i]:=random(31)-15;
until b[i]<>0;{нули убрал, а то часто произведение будет ноль}
write(b[i]:4);
end;
writeln;
write('Введите число для поиска меньших по модулю a=');
readln(a);
Index(b,n,a);
writeln;
end.