1) сколько раз выполниться цикл: a) for i: =7 downto -3 do k: =k+1; b) k: =0; while k < 15 do begin k: =k+4; end; c) k: =10; repeat k: =k-1; until k> 2; 2) определите, что будет напечатано в результате работы следующего фрагмента программы: a) s: =0; for k: =1 to 27 do begin if k mod 7 =0 then s: =s+1; end; write(s); b) s: =0; k: =1; while k < 18 do begin s: =s+k; k: =k+4; end; write(s); c) k: =0; p: =1; repeat p: =p*k; k: =k+3; until k> 10; write(p);
(-3-7)/(-1)+1 = 11 раз выполнится цикл. Стандартная формула вычисления числа шагов.
1b)
Тут k меняется от 0 с шагом 4 до 14 (15 уже нельзя). По той же формуле:
(14-0)/4+1 = 3+1 = 4 раза (деление мы выполняем нацело).
1c)
k присваивается значение 10, затем оно уменьшается на 1 (теперь k=9) и проверяется условие завершения цикла k>2.
Условие завершения истинно, поэтому цикл будет выполнен 1 раз.
2a)
До входа в цикл s=0, а при каждом проходе по циклу s увеличивается на 1, если выполняется некое условие, т.е. s - это счетчик, значение которого выводится после окончания цикла.
Условие k mod 7 = 0 сообщает нам, что именно подсчитывается: сколько раз k будет делится на 7 без остатка. Значение k изменяется от 1 до 27 и легко найти на этом интервале все числа, кратные 7, если вспомнить таблицу умножения: 7, 14, 21.
Следовательно, будет выведено число 3.
2b)
Здесь так же s=0 перед входом в цикл, но в теле цикла s увеличивается уже не на 1, а на k, т.е. это накопление суммы некоторых k. Первоначально k=1, а затем оно с шагом 4 растет, пока остается меньше 18, т.е k = 1, 5, 9, 13, 17. Сумма этих чисел и будет накоплена в s, так что s = 1+5+9+13+17 = 45
2с)
Здесь выводится значение p. Перед входом в цикл ему присваивается уже не 0, а 1, так что тут "запахло" произведением, а не суммой. И действительно, в теле цикла p домножается на k, т.е. это произведение неких k. Посмотрим, каких именно.
Первоначально k=0. Входим в цикл, он типа repeat, поэтому входим, не думая. Первое же умножение p на 0 даст 0 и дальше уже нечего
думать: сколько не умножай, ноль нулем и останется. Так и будет выведено число 0.