1. Проанализируйте работу программы:
x = 1
y = 1
while x < 5:
y *= 2
x += 1
Ответьте на вопросы.
а) Сколько раз выполнится тело цикла?
б) Какое значение примет переменная x после завершения программы?
в) Какое значение примет переменная y после завершения программы?
г) Сколько раз выполнится тело цикла, если заменить условие на x <= 5?
д) Сколько раз выполнится тело цикла, если заменить условие на x >= 5?
е) Сколько раз выполнится тело цикла, если заменить условие на x > 0?
ж) Что произойдёт, если из тела цикла убрать команду x += 1?
з) Сколько раз выполнится тело цикла, если заменить команду x += 1 на x += 2?
и) Сколько раз выполнится тело цикла, если заменить команду x += 1 на x -= 1?
Ответ
а) Тело цикла выполнится 4 раза, так как начальное значение переменной x равно 1, и условие x < 5 выполняется для x = 1, 2, 3 и 4.
б) После завершения программы значение переменной x будет равно 5.
в) После завершения программы значение переменной y будет равно 16. В начале цикла y равно 1, затем при каждой итерации умножается на 2 (y *= 2). Это происходит 4 раза, в результате чего y примет значение 16.
г) Если заменить условие на x <= 5, то тело цикла выполнится 5 раз. Условие x <= 5 выполняется для x = 1, 2, 3, 4 и 5.
д) Если заменить условие на x >= 5, то тело цикла не выполнится ни разу. Начальное значение переменной x равно 1, и условие x >= 5 не выполняется.
е) Если заменить условие на x > 0, то тело цикла выполнится бесконечное количество раз, так как значение переменной x никогда не будет становиться отрицательным.
ж) Если из тела цикла убрать команду x += 1, то значение переменной x не будет изменяться, и цикл выполнится бесконечное количество раз.
з) Если заменить команду x += 1 на x += 2, то тело цикла выполнится 2 раза. Значение переменной x будет изменяться на 2 при каждой итерации.
и) Если заменить команду x += 1 на x -= 1, то тело цикла выполнится 4 раза. Значение переменной x будет уменьшаться на 1 при каждой итерации.