Сначала производится инициализация массива, в конце - выводится на печать n.
Содержательная часть программы - эта:
n := ves[1];
For i := 1 to 14 Do
If Ves[i] < n Then
Begin
n : = ves[1]
End;
Здесь сначала n равно ves[1], затем в цикле, если ves[i] меньше n, то n присваивается равным ves[1]. Если бы было присвоение ves[i], то получился бы алгоритм поиска минимального элемента (ответ был бы 21 = min[25, 21, 23, 28, 30, 25, 31, 28, 25, 28, 30, 27, 26, 24]). Но здесь вне зависимости от значений всегда присваивается n = ves[1], поэтому в n в любой момент времени записан первый вес (25), он и будет выведен на экран.
ответ: 25
var a:array [1..41] of real;
h,y,x:real;
i:integer;
begin
x:=-10.5;
h:=0.5;
i:=0;
repeat
i:=i+1;
y:=4;
if x<=0 then y:=x
else if x>5 then y:=x*x;
a[i]:=y;
x:=x+h;
writeln(x:8:2,a[i]:8:2);
until x>=10;
end.