Категория: Функции

Имя класса: DefReturnBlock

Имя схемы: procedures_defreturn

Назначение:

  • Регистрирует и настраивает функцию, возвращающую значение


Параметры:

  • Поле ввода - имя новой функции. После размещения этого блока на холсте, в разделе "Функции" появится - Блок "вызов функции с возвратом" с ее именем
  • Поле возврата - блок, возвращающий из функции результат ее выполнения. Этот блок будет выполнен когда выполнение функции завершится.
  • Через шестеренку можно установить для функции входные аргументы
  • Секция выполнения - место для последовательности блоков, которая будет выполняться при вызове функции


Пример использования блока с аргументами

Здесь сначала регистрируется функция с именем "сложить квадраты", с аргументами "x" и "y". При вызове функции значения этих аргументов будут возведены в квадрат и затем сложены и возвращены из функции.

Далее следует два вызова этой функции с аргументами 3 для "x" и 5 для "y", затем 2 для "x" и 4 для "y". Результаты вызовов сохраняются в переменные "a" и "b" соответственно.


Важно понимать, что внутри функции существует свой собственный контекст, а её аргументы - это отдельные локальные переменные, не связанные с одноименными переменными за пределами функции. Здесь, переменные "x" и "y" — это аргументы функции. Когда мы вызываем функцию, внутри нее "x" получит значение 3, а "y" - 5. Однако это никак не повлияет на переменные "x" и "y" за пределами функции - они останутся неизменными.

А вот переменная "а" ведёт себя иначе. Она не объявлена аргументом функции, а значит, используется напрямую. Это значит, что функция работает с внешней переменной "а", изменяя её значение. Если до вызова функции "а" имела одно значение, то после вызова она будет равна 8 (сумме 3 и 5).

В теле функции можно разместить - Блок "прерывание функции", выполнение этого блока приведет к досрочному выходу из функции с возвратом указанного в нем значения.

Через вопросик можно заполнить описание функции. Это описание будет отображаться в виде всплывающей подсказки у Блок "вызов функции"


  • No labels