Т.к. требуется использовать цикл 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.
Объяснение:
При первом проходе программы
m=0
в цикле for сравниваем Если элемент массива под номером 1 (т.е. число 2) минус 2*m>1 то m равна текущему элементу массива.
т.к. 2-2*0=2 и это больше 0 то значение m становится равным 2
1 проход m=2
При втором проходе цикла фор сравниваем уже второй элемент массива, т.е.
Dat[2]-2*m>1
6-2*2>1
2>1
Условие выполняется значит значение m на 2 проходе равно 6
при дальнейших проходах цикла for мы больше не получим значений больше 1 т.к. текущее m=6, т.е. из элементов массива мы будем вычитать 12, т.е. ни одного положительного числа мы не получим, т.е. условие if не выполнится ни разу и значение m не изменится
ответ m=6
s1+2*c+3*d
s1+c+2*d
Объяснение: