- Для первого вопроса, рассмотрим фрагмент программы:
s:=0;
i:=5;
while i>=0 do
begin
s:=s+i;
i:=i-1;
end;
Здесь используется цикл while
, который работает, пока i
больше или равно 0. В каждом проходе цикла к переменной s
прибавляется текущее значение i
, а затем i
уменьшается на 1. Давайте проанализируем шаги:
- Начальные значения:
s = 0
, i = 5
.
- Первый проход:
s = 0 + 5 = 5
, i = 5 - 1 = 4
.
- Второй проход:
s = 5 + 4 = 9
, i = 4 - 1 = 3
.
- Третий проход:
s = 9 + 3 = 12
, i = 3 - 1 = 2
.
- Четвертый проход:
s = 12 + 2 = 14
, i = 2 - 1 = 1
.
- Пятый проход:
s = 14 + 1 = 15
, i = 1 - 1 = 0
.
- Шестой проход:
s = 15 + 0 = 15
, i = 0 - 1 = -1
.
Цикл завершается, когда i
становится меньше 0. Итак, конечные значения переменных будут: s = 15
и i = -1
.
- Теперь рассмотрим второй вопрос, выбор фрагмента программы, который вычисляет произведение чисел от 1 до 5. Проверим каждый вариант:
а) p:=0; i:=1; while i<=5 do i:=i+1; p:=p*i;
- здесь p
установлено в 0 и не изменяется в теле цикла, поэтому результат будет 0.
б) p:=1; i:=1; while i<6 do i:=i+1; p:=p*i;
- здесь цикл увеличивает i
до 6, после чего происходит однократное умножение p
на i
, что неверно.
в) p:=1; i:=1; while i<6 do begin p:=p*i; i:=i+1; end;
- это правильный вариант. Значение p
начинается с 1, и в каждом проходе цикла p
умножается на текущее значение i
, которое затем увеличивается на 1. Так вычисляется произведение 12345.
г) p:=1; i:=1; while i>6 do begin p:=p*i; i:=i+1; end;
- цикл здесь никогда не выполняется, так как условие i>6
изначально ложно.
Итак, правильный ответ на второй вопрос - вариант в).