Задача:
В одномерном массиве, состоящем из п целочисленных элементов,
вычислить:
1) номер максимального элемента массива;
2)произведение элементов массива, расположенных между первым и
вторым нулевыми элементами.
Преобразовать массив таким образом, чтобы в первой его половине
располагались элементы, стоявшие в нечетных позициях, а во второй
половине — элементы, стоявшие в четных позициях.

program 22;
uses crt;
var a:array[1..10] of integer;
max:integer;
i,l,k,j,p,n:integer;
begin
clrscr;
writeln('введите массив из чисел');
for i:=1 to 10 do readln(a);
max:=1;
for i:=2 to 10 do
if a>a[max] then max:=i;
writeln('­номер максимального элемента ', max);
begin
j:=0;
k:=0;
i:=1;
p:=1;
while not(a=0) do
i:=i+1;
j:=i;
i:=i+1;
while not(a=0) do
i:=i+1;
k:=i;
if not(j=0) and not(k=0) then begin
for i:=j+1 to k-1 do p:=p*a;
write('произведение элементов массива между первым и вторым нулевыми элементами ', p);
writeln('');
end;
writeln('');
end;
begin
for i:=1 to 10 do
if (i mod 2)=1 then write(' ',a);
write(' ');
for i:=1 to 10 do if (i mod 2)=0 then write(' ',a);
end;
readkey;
end.

в программе пишет ошибку когда нету двух 0 или есть только один 0: ошибка проверки диапазона и ссылается на while..
Что нужно добавить чтобы все работало?