Объяснение: всё дело в том, что в первом случае (в верхнем, где s = 0 написано вне цикла) s изначально равен нулю, а затем с каждой итерацией цикла s увеличивается.
А втором случае на каждой итерации цикла сначала присваивается s = 0, а затем уже изменяется. Поэтому перед каждой следующей итерацией цикла всё что происходило с s раньше обнуляется.
Если подвести итог, то разница заключается в том, что присваивание находится в цикле или вне него, а значит выполняется один раз (если вне цикла) или много раз (если внутри)
var i,n,k:integer;
a:array[1..10] of integer;
begin
for i:=1 to 10 do
read(a[i]);
writeln;
for i:=10 downto 1 do
write(a[i],' ');
readln;
readln
end.
3)
var i,n,k:integer;
a:array[1..10] of integer;
begin
for i:=1 to 10 do
read(a[i]);
writeln;
writeln((a[5]+a[6])/2:0:2);
readln;
readln
end.
4)
var i,n,k,min:integer;
a:array[1..10] of integer;
begin
for i:=1 to 10 do
begin
read(a[i]);
if (a[i] mod 10=4) or (a[i] mod 10=-4)
then min:=a[i];
for i:=1 to 10 do
if ((a[i] mod 10=4) or (a[i] mod 10=-4)) and (a[i]<min)
then min:=a[i];
writeln(min);
end.
5)
var i,n,k,max:integer;
a:array[1..10] of integer;
begin
max:=0;
for i:=1 to 10 do
begin
read(a[i]);
if (a[i] mod 5=0) and (a[i]>max)
then max:=a[i];
end;
writeln(max);
end.