Делаем программу с трассировкой и все хорошо видно.
var A:array[0..10] of integer;
var i:integer;
begin
Writeln('Первый цикл');
for i:=0 to 10 do begin
A[i]:= i + 1;
Writeln('i=',i,', a[',i,']=',a[i])
end;
Write('Массив: '); a.Println;
Writeln('Второй цикл');
for i:=0 to 10 do begin
A[i]:= A[10-i];
Writeln('i=',i,', a[',i,']=',a[i])
end;
Write('Массив: '); a.Println
end.
Результат
Первый цикл
i=0, a[0]=1
i=1, a[1]=2
i=2, a[2]=3
i=3, a[3]=4
i=4, a[4]=5
i=5, a[5]=6
i=6, a[6]=7
i=7, a[7]=8
i=8, a[8]=9
i=9, a[9]=10
i=10, a[10]=11
Массив: 1 2 3 4 5 6 7 8 9 10 11
Второй цикл
i=0, a[0]=11
i=1, a[1]=10
i=2, a[2]=9
i=3, a[3]=8
i=4, a[4]=7
i=5, a[5]=6
i=6, a[6]=7
i=7, a[7]=8
i=8, a[8]=9
i=9, a[9]=10
i=10, a[10]=11
Массив: 11 10 9 8 7 6 7 8 9 10 11