Даю много баллов!Прошу помогите срочно, с объяснениемИнформатика, рекурсивная функция, 11...

0 голосов
20 просмотров

Даю много баллов!Прошу помогите срочно, с объяснениемИнформатика, рекурсивная функция, 11 задание


image

Информатика (17 баллов) | 20 просмотров
0

на предыдущей стр есть другой язык программирования (Basic)? если есть, кинь пожалуйста.

Дан 1 ответ
0 голосов
Правильный ответ

Буду объяснять на алгоритмическом языке. алгоритм начинается с функции F со значением 42. далее она выводит на экран звездочку ("вывод "*" "). это первая звездочка. далее проверяется условие (mod - функция, которая выводит на экран остаток от деления. Например: 1399 mod 100 = 99.) 42 = 0 ? Нет. Значит мы действуем по ветке "иначе" , то есть запускаем эту же функцию только со значением n - 3. Зная, что n = 42 вычисляем. Функция запускается со значением 39. опять проверяется условие и тд... Когда значение функции доходит до 30 и она запускается с этим значением, звездочка появляется (потому что функция ("вывод "*" ") находится перед If) и проверяется условие, делится ли нацело 30? Да, делится, остаток от деления на 5 равен 0. Следовательно запускается функция G со значениями n - 5. мы знаем что n = 30. G(25). затем проверяется условие n > 0. n у нас равно 25, значит условие верно. далее запускается функция F  от значения 25 - 1 = 24. И все по новой. Показывается звездочка, проверяется условие, условие не верно (т.к . 24/5 получится число с остатком), выполняются команды в "иначе". и так далее пока n = 0. после этого значения в функции F условие будет верно (0/5=0) , запускается функция G от значения -5. проверяется условие в функции G, условие неверно, программа завершается. Ответ: 13 

(116 баллов)