№4. определить значение переменной s после выполнения следующих операторов: s: =1; i: =1 for i: =2 to 2 do s: =s+1/i; s= s: =0; i: =1 for i: =2 to -5 do s: =s+1/i; s= s: =1; i: =1 for i: =2 downto 2 do s: =s+1/i; s= №5. определить сколько раз будет выполняться тело следующих операторов цикла. k: =0; for i: =1 to k+3 do k: =k+1; k: =0; for i: =1 to 9 do k: =k+sqr(i); k: =0; for i: =9 to 1 do k: =k+1; k: =0; for i: =1 to 1 do k: =k+1;
1) S:=1; I:=1 For I:=2 to 2 do S:=S+1/I; S=1.5
2) S:=0; I:=1 For I:=2 to -5 do S:=S+1/I; S=0
3) S:=1; I:=1 For I:=2 downto 2 do S:=S+1/I; S=1.5
Задание №5. Определить сколько раз будет выполняться тело следующих операторов цикла.
1) K:=0; For i:=1 to K+3 do K:=K+1; ответ: 3
2) K:=0; For i:=1 to 9 do K:=K+sqr(i); ответ: 9.
3) K:=0; For i:=9 to 1 do K:=K+1; ответ: 0
4) K:=0; For i:=1 to 1 do K:=K+1; ответ: 1
Последовательность операторов дана в двух строках. Для удобства разберем их по отдельности.
Сначала у нас есть две строки:
s := 1;
i := 1
Переменной s присваивается значение 1, а переменной i также присваивается значение 1.
Далее имеем следующий цикл:
for i := 2 to 2 do
s := s + 1/i;
У нас указан диапазон для переменной i от 2 до 2, что означает, что цикл выполняется только один раз со значением i равным 2. Внутри цикла значение s обновляется следующим образом: s = s + 1/i. Здесь s равно 1 (из предыдущей строки), поэтому оно увеличивается на 1/2 и присваивается обратно переменной s. Итак, после выполнения этого цикла s будет равно 1 + 1/2, то есть 1.5.
Затем идут строки:
s := 0;
i := 1
Переменной s присваивается значение 0, а переменной i присваивается значение 1.
Последняя последовательность операторов:
for i := 2 to -5 do
s := s + 1/i;
Здесь указан диапазон для переменной i от 2 до -5, но такой диапазон не имеет значения и цикл не будет выполняться ни разу, поскольку начальное значение i (2) больше конечного значения (-5). Следовательно, оператор внутри цикла не будет выполнен и значение s не изменится от начального значения 0. Таким образом, s останется равным 0.
Далее имеем строки:
s := 1;
i := 1
Переменной s присваивается значение 1, а переменной i присваивается значение 1.
Последняя последовательность операторов:
for i := 2 downto 2 do
s := s + 1/i;
Здесь указан диапазон для переменной i от 2 до 2 в обратном порядке, что означает, что цикл выполняется только один раз со значением i равным 2. Внутри цикла значение s обновляется следующим образом: s = s + 1/i. Здесь s равно 1 (из предыдущей строки), поэтому оно увеличивается на 1/2 и присваивается обратно переменной s. Итак, после выполнения этого цикла s будет равно 1 + 1/2, то есть 1.5.
Таким образом, выполнение всех операторов приведет к тому, что переменная s будет иметь значение 1.5.
№5.
У нас также есть несколько последовательностей операторов, разделяемых строками.
В первой последовательности:
k := 0;
for i := 1 to k+3 do
k := k+1;
Переменной k присваивается значение 0, а переменной i присваивается значение 1. Далее указан диапазон для переменной i от 1 до k+3. Здесь k равно 0, поэтому диапазон будет от 1 до 0+3, то есть от 1 до 3. Цикл выполняется три раза, так как значение i принимает значения 1, 2 и 3. Внутри цикла значение k обновляется следующим образом: k = k + 1. Значение k увеличивается на 1 при каждом выполнении цикла. Поэтому в результате цикла значение k будет равно 3.
Во второй последовательности:
k := 0;
for i := 1 to 9 do
k := k + sqr(i);
Последний цикл, указанный в коде, имеет оператор внутри цикла, который вычисляет квадрат каждого значения i и увеличивает значение k на эту часть. Переменной k присваивается значение 0, а переменной i присваивается значение 1. Затем указан диапазон переменной i от 1 до 9. Цикл будет выполняться 9 раз, так как переменная i принимает значения от 1 до 9. В каждом выполнении цикла значение квадрата переменной i увеличивает значение k. Итак, с каждым выполнением цикла значение k будет увеличиваться на 1+4+9+16+...+81. В конечном итоге, после выполнения цикла, значение k будет равно сумме квадратов всех чисел от 1 до 9.
В третьей последовательности:
k := 0;
for i := 9 to 1 do
k := k + 1;
В этой последовательности указан диапазон переменной i от 9 до 1, что означает, что цикл не будет выполняться ни разу, так как конечное значение (1) меньше начального (9). Следовательно, оператор внутри цикла не будет выполнен и значение k останется равным начальному значению 0.
В четвертой последовательности:
k := 0;
for i := 1 to 1 do
k := k + 1;
В этой последовательности указан диапазон переменной i от 1 до 1, что означает, что цикл выполняется только один раз со значением i равным 1. Внутри цикла значение k обновляется следующим образом: k = k + 1. Здесь k равно 0 (из предыдущей строки), поэтому оно увеличивается на 1 и присваивается обратно переменной k. Итак, после выполнения этого цикла значение k будет равно 0 + 1, то есть 1.
Таким образом, переменная k будет иметь значение 3 после выполнения первой последовательности операторов и значение 1 после выполнения четвертой последовательности операторов.