# Результат работы подпрограммы | Типовые задачи Предыдущий Следующий

## Общие сведения Наименование: FUNC_RES. Количество аргументов: 1. ## Примечания по входам Вход: «Результат вызываемой подпрограммы». ## Функционирование Определяет (переопределяет) текущий результат вызываемой подпрограммы (функции) и назначает его выходу алгоблока. Если в вызываемой подпрограмме не используется данный алгоблок, то результат работы подпрограммы будет равен нулю. ## Пример использования //==================================== // Пример 1 // Вызываемая подпрограмма HYPOTENUSE B1 = SQR(ARG1) B2 = SQR(ARG2) B3 = ADD(B1; B2) B4 = SQRT(B3) B5 = FUNC_RES(B4) // Основная подпрограмма B1 = CALL(HYPOTENUSE; AI1.1; AI1.2) B2 = RESULT(AO1.1; B1) B3 = CALL(HYPOTENUSE; AI2.1; AI2.2) B4 = RESULT(AO1.2; B3) //==================================== // Пример 2 // Вызываемая подпрограмма POWER // Она равна ARG1 3, если ARG2 равен логической единице // или ARG1 5, если ARG2 равен логическому нулю. B1 = MUL(ARG1; ARG1; ARG1) B2 = FUNC_RES(B1) B3 = IF_EXIT(ARG2) B4 = MUL(B1; ARG1; ARG1) B5 = FUNC_RES(B4) // Основная подпрограмма B1 = CALL(POWER; 2; 1) B2 = RESULT(AO1.1; B1) // АО1.1 будет равен 8 B3 = CALL(POWER; 2; 0) B4 = RESULT(AO1.2; B3) // АО1.2 будет равен 32 //==================================== // Пример 3 // Вызываемая подпрограма ISBIT // Подпрограмма определяет, установлен ли в числе ARG1 // бит с номером ARG2 (нумеруется с нуля) B10 = PWR(2; ARG2) B20 = IDIV(ARG1; B10) B30 = IREM(B20; 2) B40 = FUNC_RES(B30) // 1 - установлен // 0 - не установлен // Основная подпрограмма // Исходное число - в АО1.1 // В DO1.1-DO1.8 состояния битов 0-7 в исходном числе b010 = call(isbit; ao1.1; 0) b020 = result(do1.1; b010) b110 = call(isbit; ao1.1; 1) b120 = result(do1.2; b110) b210 = call(isbit; ao1.1; 2) b220 = result(do1.3; b210) b310 = call(isbit; ao1.1; 3) b320 = result(do1.4; b310) b410 = call(isbit; ao1.1; 4) b420 = result(do1.5; b410) b510 = call(isbit; ao1.1; 5) b520 = result(do1.6; b510) b610 = call(isbit; ao1.1; 6) b620 = result(do1.7; b610) b710 = call(isbit; ao1.1; 7) b720 = result(do1.8; b710)