Вопрос задан 15.07.2026 в 15:04. Предмет Информатика. Спрашивает Гритченко Елена.

Сколько раз выполнится тело цикла в каждом фрагменте программы?
 1. For i :=1 to 7 do S := S + i * i;
 2. For x := -3 to 5 do 5 do K := K+ABS(X);
 3. For a := 10 downo 2 do P :=P*a;
 4. For i := 2 to 6 do
                         begin
                             K:=K+1;
                             S:=K+i;
                         end; 

Сколько раз выполнится тело цикла, и чему будут равны значения встречающихся в программе переменных после выполнения каждого фрагмента программы?

5. i :=2; S:=0;
   While S<0 do begib S:= S+i;  i:+2; end;

6. x:=1 ; S:=10 ;
While x <=10 do x:=x*2 ;
S:= S+x

7. a:=0; S:=0 ;
While a> 0  do S :=S +a;
a:=a+1;

8 . a:=1;
Repeat
      R := 2*a;
      a:= a+1 ;
until  R < 1;
 
9. a:=1; b:=1;
While a+b < 8 do begin a :=a+1; b := b+2   end;
S := a+b;
 
10. S:=0; P:= 10; k:= 1;
Repeat
      S:= S+k*k;
      k :=k+2;
until S > P;

11. For i :=2 to 6 do begin 
                               K:= K+1;   S:= K+i;
                                end;

12. for i:= 1 to 4 do S :=S+i*i; S: S*2;

Перейти к ответам

Ответы на вопрос

Отвечает Игнатьев Кирилл.

В записи есть несколько очевидных опечаток: downodownto, begibbegin, i:+2i:=i+2, а в пункте 12 предполагается S:=S*2. В пункте 2 лишнее 5 do считаем опечаткой.

Если начальные значения переменных не заданы, обозначим их как (S_0), (K_0), (P_0).

  1. For i:=1 to 7 do S:=S+i*i;

Тело выполнится 7 раз.

[
1^2+2^2+\dots+7^2=140
]

Итог:

[
S=S_0+140
]

На последней итерации (i=7).

  1. For x:=-3 to 5 do K:=K+ABS(x);

Значения (x): от (-3) до (5), всего 9 раз.

[
|-3|+|-2|+|-1|+|0|+|1|+|2|+|3|+|4|+|5|=21
]

Итог:

[
K=K_0+21
]

На последней итерации (x=5).

  1. For a:=10 downto 2 do P:=P*a;

Значения (a): (10,9,8,7,6,5,4,3,2), всего 9 раз.

[
10\cdot9\cdot8\cdot7\cdot6\cdot5\cdot4\cdot3\cdot2=3,628,800
]

Итог:

[
P=P_0\cdot3,628,800
]

На последней итерации (a=2).


For i:=2 to 6 do
begin
  K:=K+1;
  S:=K+i;
end;

Тело выполнится 5 раз: при (i=2,3,4,5,6).

После последней итерации:

[
K=K_0+5
]

На последней итерации (i=6), поэтому:

[
S=(K_0+5)+6=K_0+11
]

Если первоначально (K=0), то (K=5), (S=11).


i:=2;
S:=0;
While S<0 do
begin
  S:=S+i;
  i:=i+2;
end;

Условие (S<0) сразу ложно, потому что (S=0).

Тело выполнится 0 раз.

Итог:

[
S=0,\qquad i=2
]


x:=1;
S:=10;
While x<=10 do
  x:=x*2;
S:=S+x;

Без begin...end в тело цикла входит только команда x:=x*2.

Значения (x):

[
1\to2\to4\to8\to16
]

Тело выполнится 4 раза.

После цикла (x=16). Затем один раз выполняется команда:

[
S=10+16=26
]

Итог:

[
x=16,\qquad S=26
]


a:=0;
S:=0;
While a>0 do
  S:=S+a;
a:=a+1;

Условие (a>0) ложно сразу, потому что (a=0).

Тело выполнится 0 раз.

Команда a:=a+1 находится вне цикла и выполнится один раз.

Итог:

[
S=0,\qquad a=1
]


a:=1;
Repeat
  R:=2*a;
  a:=a+1;
until R<1;

Цикл Repeat выполняется хотя бы один раз.

После первой итерации:

[
R=2,\qquad a=2
]

Условие (R<1) ложно. Далее (R) будет равен (4,6,8,\dots), то есть всегда будет больше 1.

Тело выполнится бесконечное число раз. Цикл не завершится.


a:=1;
b:=1;
While a+b<8 do
begin
  a:=a+1;
  b:=b+2;
end;
S:=a+b;

Начало:

[
a=1,\quad b=1,\quad a+b=2
]

1-я итерация:

[
a=2,\quad b=3,\quad a+b=5
]

2-я итерация:

[
a=3,\quad b=5,\quad a+b=8
]

Далее условие (a+b<8) ложно.

Тело выполнится 2 раза.

Итог:

[
a=3,\qquad b=5,\qquad S=8
]


S:=0;
P:=10;
k:=1;
Repeat
  S:=S+k*k;
  k:=k+2;
until S>P;

1-я итерация:

[
S=0+1^2=1,\qquad k=3
]

2-я итерация:

[
S=1+3^2=10,\qquad k=5
]

Условие (10>10) ложно.

3-я итерация:

[
S=10+5^2=35,\qquad k=7
]

Теперь (35>10), цикл завершается.

Тело выполнится 3 раза.

Итог:

[
S=35,\qquad P=10,\qquad k=7
]


For i:=2 to 6 do
begin
  K:=K+1;
  S:=K+i;
end;

Это тот же фрагмент, что и в пункте 4.

Тело выполнится 5 раз.

Итог:

[
K=K_0+5,\qquad S=K_0+11
]

Если (K=0) перед циклом:

[
K=5,\qquad S=11
]


For i:=1 to 4 do
  S:=S+i*i;
S:=S*2;

Цикл выполнится 4 раза.

В цикле к (S) прибавляется:

[
1^2+2^2+3^2+4^2=1+4+9+16=30
]

После цикла отдельно выполняется умножение на 2:

[
S=(S_0+30)\cdot2=2S_0+60
]

Если первоначально (S=0), то:

[
S=60
]

На последней итерации (i=4).

Похожие вопросы

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос