1. Проанализируйте работу программы.
program n_1;
var x, y: integer;
begin
x:=2;
y:=1;
while x<6 do
begin
y:=y*2;
x:=x+1;
end;
end.
ответьте на во а) сколько раз исполнится тело цикла?
б) какое значение примет x после завершения программы?
в) какое значение примет y после завершения программы?
г) сколько раз исполнится тело цикла, если изменить условие на x<=6?
д) сколько раз исполнится тело цикла, если изменить условие на x>=6?
е) сколько раз исполнится тело цикла, если изменить условие на x>0?
Объяснение:
Смысл работы программы в том, что пока х будет меньше 6, то к нему будет прибавляться 1, а у будет умножаться на 2. После того, как х примет значение 6, программа завершится.
а) сколько раз исполнится тело цикла?
Изначально х=2
1) цикл -х=2+1=3
2) цикл -х=3+1=4
3) цикл -х=4+1=5
4) цикл -х=5+1=6
Всего исполнится 4 раза
б) какое значение примет x после завершения программы?
Х примет значение 6, так как было показано выше.
в) какое значение примет y после завершения программы?
Всего 4 цикла, а значит y ровно 4 раза умножится на 2
Первый раз: 1*2=2
Второй раз: 2*2=4
Третий раз: 4*2=8
Четвертый раз: 8*2=16.
ответ 16.
Можно было посчитать и проще, просто 2 возвести в четвертую степень.
г) сколько раз исполнится тело цикла, если изменить условие на x<=6?
Изначально х=2
1) цикл -х=2+1=3
2) цикл -х=3+1=4
3) цикл -х=4+1=5
4) цикл -х=5+1=6
5) цикл -х=6+1=7
почему 5 раз, а не 4, как было выше?
Потому что в этом условии сказано: Пока х будет меньше либо равен 6, на 4 цикле он равен 6 , значит он идет дальше, и на 5 цикле он уже равен 7, А значит цикл завершается.
д) сколько раз исполнится тело цикла, если изменить условие на x>=6?
Цикл работать не будет, так как:
х:=2+1=3
3 не больше и не равен 6, цикл завершается.
е) сколько раз исполнится тело цикла, если изменить условие на x>0?
Цикл будет работать бесконечно, потому что, будет постоянно накапливать, то есть уходить в плюс.