8. Определите значение переменной c после выполнения следующего фрагмента программы,...

+390 голосов
790k просмотров

8. Определите значение переменной c после выполнения следующего фрагмента программы, запишите решение: a:=100; b:=20; repeat i:= a div b; c:=i + 5; b:= a div b; until b>=100;


Информатика (32 баллов) | 790k просмотров
Дан 1 ответ
+111 голосов

Ответ:

Фрагмент программы будет выполнятся вечно, значение переменной c получить нельзя.

Объяснение:

Присваиваем переменной a число 100:

a:=100;

Присваиваем переменной b число 20:

b:=20;

Далее идёт цикл с постусловием, выполняем тело, пока b не станет больше или равна 100:

repeat

i:= a div b;

c:=i + 5;

b:= a div b;

until b>=100;

Смотрим:

  • i  =  a div b  =   100 div 20  =  5
  • c =  i + 5  =  5 + 5  =  10
  • b =  a div b   =   100 div 20  =  5

b>=100 ? нет  =>  ещё раз:

  • i  =  a div b  =   100 div 5  =  20
  • c =  i + 5  =  20 + 5  =  25
  • b =  a div b   =   100 div 5  =  20

Переменная b изначально была равна 20, а через 2 прохода цикла, она также стала 20. Делаем вывод: это замкнутый цикл, выполнятся он будет вечно, так как переменная b никогда не будет >=100.

(3.7k баллов)