1.
var a:array [1..10] of integer;
i,k:integer;
begin
k:=0;
write('Массив: ');
for i:=1 to 10 do
begin
a[i]:=random(100);
write(a[i]:4);
if a[i] mod 2 = 1 then k:=k+1
end;
writeln;
if k>0 then writeln ('Количество нечетных чисел равно ',k)
else writeln ('Нечетных чисел нет')
end.
2.
var a:array [1..10] of integer;
i,m:integer;
begin
m:=99;
write('Массив: ');
for i:=1 to 10 do
begin
a[i]:=random(100);
write(a[i]:4);
if a[i] < m then m:=a[i]
end;
writeln;
writeln ('min = ',m)
end.
Объяснение:
var a:array [1..10] of integer;
i,k,m:integer;
begin
k:=0;
m:=99;
write('Массив: ');
for i:=1 to 10 do
begin
a[i]:=random(100);
write(a[i]:4);
if a[i] mod 2 = 1 then k:=k+1;
if a[i] < m then m:=a[i]
end;
writeln;
if k>0 then writeln ('Количество нечетных чисел равно ',k)
else writeln ('Нечетных чисел нет');
writeln ('min = ',m)
end.
Некоторые языки программирования это допускают, но правила разработки алгоритмов строго запрещают такие манипуляции, потому что нарушаются каноны современного программирования. В связи с этим большинство языков прямо запрещают модификацию параметра цикла в теле цикла.
Если нужно конкретно - в Pascal и Fortran оператор цикла с пратметром строгий, запрещающий менять значение параметра в теле цикла. Обнаруживается при компиляции, запустить на выполнение нельзя. В языках cемейства С оператор for нестрогий, цикл с параметром там моделируется и компилятор не отслеживает модификацию параметра цикла в теле цикла. В бейсиках также можно модифицировать параметр цикла в теле цикла.