8. Определите значение переменной c после выполнения следующего фрагмента программы, запишите решение: a:=100; b:=20; repeat i:= a div b; c:=i + 5; b:= a div b; until b>=100;
Фрагмент программы будет выполнятся вечно, значение переменной 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 = 5c = i + 5 = 5 + 5 = 10 b = a div b = 100 div 20 = 5
b>=100 ? нет => ещё раз:
i = a div b = 100 div 5 = 20c = i + 5 = 20 + 5 = 25b = a div b = 100 div 5 = 20
Переменная b изначально была равна 20, а через 2 прохода цикла, она также стала 20. Делаем вывод: это замкнутый цикл, выполнятся он будет вечно, так как переменная b никогда не будет >=100.
Фрагмент программы будет выполнятся вечно, значение переменной 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 = 5c = i + 5 = 5 + 5 = 10 b = a div b = 100 div 20 = 5b>=100 ? нет => ещё раз:
i = a div b = 100 div 5 = 20c = i + 5 = 20 + 5 = 25b = a div b = 100 div 5 = 20Переменная b изначально была равна 20, а через 2 прохода цикла, она также стала 20. Делаем вывод: это замкнутый цикл, выполнятся он будет вечно, так как переменная b никогда не будет >=100.