Originariamente inviato da cso
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!!!
bè si perchè il repeat until non è che come il do-while....


Il do-while(o while-do) esegue il blocco di istruzione MENTRE la condizione e' FALSA...quando diventa VERA ESCE....mentre il repetat until fà il CONTRARIO!


Quindi và bene la PRIMA tua soluzione O la mia che pero' usa il do-while...NON IL REPEAT UNTIL!

http://www.taoyue.com/tutorials/pascal/pas3dc.html qua la frase che ti ho evidenziato spiega propio cio' di cui noi stiamo discutendo
In a repeat loop, compound statements are built-in -- you don't need to use begin-end. Also, the loop continues until the Boolean expression is TRUE, whereas the while loop continues until the Boolean expression is FALSE.