Контрольные задания > ВЗ. Проанализируйте работу программы.
program math;
var x, y: integer;
begin
x:= 1;
y:=1;
while x<5 do
begin
y:= y*2;
x:= x+1;
end;
end.
1) Какое значение примет у после завершения программы?
2) Сколько раз исполнится тело цикла, если изменить условие на х>0?
Вопрос:
ВЗ. Проанализируйте работу программы.
program math;
var x, y: integer;
begin
x:= 1;
y:=1;
while x<5 do
begin
y:= y*2;
x:= x+1;
end;
end.
1) Какое значение примет у после завершения программы?
2) Сколько раз исполнится тело цикла, если изменить условие на х>0?
Ответ:
1) Разберем выполнение программы по шагам:
- Изначально x = 1, y = 1.
- Цикл выполняется, пока x < 5.
- 1-я итерация: y = 1 * 2 = 2, x = 1 + 1 = 2.
- 2-я итерация: y = 2 * 2 = 4, x = 2 + 1 = 3.
- 3-я итерация: y = 4 * 2 = 8, x = 3 + 1 = 4.
- 4-я итерация: y = 8 * 2 = 16, x = 4 + 1 = 5.
- Цикл завершается, так как x = 5.
Значение y после завершения программы: 16.
2) Если изменить условие цикла на x > 0, то цикл станет бесконечным, так как x увеличивается с каждой итерацией и всегда будет больше 0. Таким образом, тело цикла исполнится бесконечное число раз.