• 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);

Ответы 1

  • 1a) (-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 = 452с) Здесь выводится значение p. Перед входом в цикл ему присваивается уже не 0, а 1, так что тут "запахло" произведением, а не суммой. И действительно, в теле цикла p домножается на k, т.е. это произведение неких k. Посмотрим, каких именно.Первоначально k=0. Входим в цикл, он типа repeat, поэтому входим, не думая. Первое же умножение p на 0 даст 0 и дальше уже нечегодумать: сколько не умножай, ноль нулем и останется. Так и будет выведено число 0.
  • Добавить свой ответ

Еще вопросы

Войти через Google

или

Забыли пароль?

У меня нет аккаунта, я хочу Зарегистрироваться

How much to ban the user?
1 hour 1 day 100 years