Определите что выведет на экран программа при вызове f 9
Перейти к содержимому

Определите что выведет на экран программа при вызове f 9

  • автор:

Определите что выведет на экран программа при вызове f 9

11 задание 115 номер не сходится с ответом

АннаФр: 115) Определите, что выведет на экран программа при вызове F(9). procedure F(n: integer); begin if n > 0 then begin F(n – 4); F(n div 2); write(n) end end; У меня получилось 012401201, в ответе 11251249

Поляков: АннаФр пишет: У меня получилось 012401201, в ответе 11251249 Проверьте по программе.

polyakovss: Здравствуйте! F(9)=F(5)F(4)9 F(5)=F(1)F(2)5 F(4)=F(0)F(2)4 F(2)=F(-2)F(1)2 F(1)=F(-3)F(0)1 Учтем, что процедура F(n) "работает" при n > 0. Значит, F(0), F(-3), F(-2) ничего не делают. Их можно вычеркнуть. Теперь идем в обратном порядке: F(1)=F(-3)F(0)1=1 F(2)=F(-2)F(1)2 = F(1)2=1 2=12 F(4)=F(0)F(2)4=F(2)4=12 4=124 F(5)=F(1)F(2)5=1 12 5=1125 F(9)=F(5)F(4)9=1125 124 9=11251249 F(9)=11251249

Определите, что выведет на экран программа при вызове F(9). procedure F(n: integer); begin write(n

Ну ты просто выдумал себе сложности, при вызове F она выведет 9, паскаль не знаю, но точно утверждаю, что это так.

Сначала идёт вывод переменной а потом операции с ней, ничего додумывать не нужно.

Для определения того, что программа выведет на экран при вызове F(9) , давайте разберемся в её работе.

Когда функция F(n) вызывается с аргументом n = 9 , она делает следующее:

Записывает значение n на экран (в данном случае, выводится число 9).

Проверяет условие n > 3 . В данном случае оно выполняется, так как 9 больше 3.

Выполняется блок begin. end , в котором происходят два рекурсивных вызова функции F() :

  • Первый вызов: F(9 — 4) , то есть F(5) .
  • Второй вызов: F(9 div 2) , то есть F(4) .

Давайте продолжим разбираться с этими вызовами:

  • Выводится значение 5 .
  • Проверяется условие n > 3 , которое выполняется, так как 5 больше 3.
  • Выполняется блок begin. end , в котором происходят еще два рекурсивных вызова:
    • F(5 — 4) , то есть F(1) .
    • F(5 div 2) , то есть F(2) .
    • Выводится значение 1 .
    • Проверяется условие n > 3 , которое не выполняется, так как 1 не больше 3. Рекурсивные вызовы в этом случае не происходят.
    • Выводится значение 2 .
    • Проверяется условие n > 3 , которое не выполняется, так как 2 не больше 3. Рекурсивные вызовы в этом случае также не происходят.

    Таким образом, после выполнения всех вызовов функции F() , результатом вызова F(9) будет последовательность чисел, выводимых на экран: 9 5 1 2 .

    Важно понимать, что порядок вывода чисел обусловлен порядком выполнения рекурсивных вызовов и их завершением. Так как вызовы делаются до условий, это может привести к изменению обычного порядка вывода результатов, как в данном случае.

    Определите, что выведет на экран программа при вызове F(9). procedure F(n: integer); begin write(n); if n > 3 then begin F(n

    Ну ты просто выдумал себе сложности, при вызове F она выведет 9, паскаль не знаю, но точно утверждаю, что это так.

    Сначала идёт вывод переменной а потом операции с ней, ничего додумывать не нужно.

    Ссылки в HTML создаются при помощи тега <a> — от английского слова anchor, то есть якорь.

    Синтаксис следующий:
    <a href=»адрес ссылки»>. </a>

    Кроме атрибута href есть и другие атрибуты, которые можно добавить. Часто используется target=»_blank», что приведёт к открытию ссылки в новом окне или вкладке браузера.

    1) 16∧2x-1(бит)= 128(Гб)
    128(Гб)=1099511627776 (бит)
    16∧2x-1(бит)= 1099511627776 (бит)
    16∧2x-1(бит)= 16∧10 (бит)
    отсюда х= 5,5

    2) 2000*4000=8000000 символов всего
    1 символ=1 бит
    8000000 бит : 8 =1000000 байт:1024= 976,5625 Кб:1024≈0,9 Мб

    запишем условие: в условие сказано, что книга набиралась на компьютере, а мощность компьютерного алфавита равна 256, т.е. N=256, страниц=150, строк=40, символы=60, I-?

    Определите, что выведет на экран программа при вызове F(9).
    procedure F(n: integer);
    begin
    write(n);
    if n > 3 then begin
    F(n – 4);
    F(n div 2);
    end;
    end;
    Сложность этой задачи в том, что вывод стоит до условий, а не в нем. Как тогда рассуждать?

    Ну ты просто выдумал себе сложности, при вызове F она выведет 9, паскаль не знаю, но точно утверждаю, что это так.

    Сначала идёт вывод переменной а потом операции с ней, ничего додумывать не нужно.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *