l'ho eseguito col mio bel TP e mi accetta solo valori esternia a 0 e N...quindi o "crei" lo spazio per un array che ha elementi meno dello 0 (cioè niente) o accetta valori che sfondano l'array!!!

Ti sto dicendo per quando riguarda questo codice:
codice:
program array_1;
uses crt;
const n=100;
type vettore=array[1..n] of integer;
var i,elementi:integer;
    a:vettore;

begin
clrscr;
repeat
write('Di quanti elementi deve essere formato l''array? ');
readln(elementi);
until (elementi>n) or (elementi<0);
writeln;
for i:=1 to elementi do
                     begin
                     write('Elemento ',i,'= ');
                     readln(a[i]);
                     end;
writeln;
for i:=1 to elementi do
                     begin
                     a[i]:=a[i] div 2;
                     writeln(a[i]);
                     end;
readln;
end.
CHE E' SBAGLIATO
era giusto il codice che ho postato prima!!!

O il mio compilatore è scemo oppure ti stai confondendo tra il while e il repeat (capita a tutti...è difficile ragionare al contrario)

Prova a eseguire il codice che ho postato (2° post)...