Т.к. требуется использовать цикл until, то значит требуется код на языке Паскаль.
1) цикл for
program p_for
var
p: real;
i, n: integer;
begin
readln(n);
p := 1;//начальное значение
for i := 1 to n do
p := p * i;
writeln(p);
end.
2) цикл while
program p_while
var
p: real;
i, n: integer;
begin
readln(n);
i := 1;
p := 1;//начальное значение
while i <= n do
begin
p := p * i;
i := i + 1;
end;
writeln(p);
end.
3) цикл until
program p_until
var
p: real;
i, n: integer;
begin
readln(n);
i := 1;
p := 1;//начальное значение
repeat
p := p * i;
i := i + 1;
until i > n;
writeln(p);
end.
Объяснение:
var i,n,p,s,k,m:integer;
a:array [1..11] of integer;
begin
n:=10;
p:=1;
write('Массив: ');
for i:=1 to n do
begin
a[i]:=random(9)+1;
if a[i] mod 3 = 0 then p:=p*a[i];
write(a[i]:2,' ')
end;
writeln;
if p<>1 then writeln('Произведение элементов кратных 3 равно ',p)
else writeln('Элементов кратных 3 нет. Произведение элементов кратных 3 равно 0');
n:=9;
write('Массив: ');
for i:=1 to n do
begin
a[i]:=random(9)+1;
if a[i] > 5 then
begin
s:=s+a[i];
k:=k+1
end;
write(a[i]:2,' ')
end;
writeln;
if k<>0 then writeln('Cреднее арифметическое элементов массива больше 5 равно ',s/k:0:3)
else writeln('Элементов больше 5 нет. Cреднее арифметическое элементов массива больше 5 равно 0');
n:=11;
write('Массив: ');
for i:=1 to n do
begin
a[i]:=random(9)+1;
write(a[i]:2,' ')
end;
writeln;
m:=a[1];
for i:=2 to n do
if a[i]>m then m:=a[i];
writeln('Самый большой элемент массива равен ',m)
end.