Ответы
Ответ:
1.
program z1;
var i,s,n,p,j:integer;
begin
s:=0;
n:=5;
for i:=1 to n do
begin
p:=1;
for j:=i to n do
if j mod 2 = 0 then p:=p*j else p:=p*2;
s:=s+p
end;
writeln (s)
end.
2.
program z1;
var i,s,n,p,j:integer;
begin
s:=0;
n:=5;
i:=1;
while i<=n do
begin
p:=1;
j:=i;
repeat
if j mod 2 = 0 then p:=p*j else p:=p*2;
j:=j+1
until j>n;
s:=s+p;
i:=i+1
end;
writeln (s)
end.
Объяснение:
При замене цикла for на while:
добавляем начальное значение переменной i (i:=1; )
устанавливаем условие, чтобы принимались все значения i до n включительно (i<=n)
добавляем изменение переменной вручную (i:=i+1 )
При замене цикла for на repeat:
добавляем начальное значение переменной j (j:=i; )
добавляем изменение переменной вручную (j:=j+1 )
устанавливаем условие, чтобы принимались все значения j не большие n (j>n)