Результат работы подпрограммы

Типовые задачи  Предыдущий  Следующий

Общие сведения

Наименование: 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

// Она равна ARG13, если ARG2 равен логической единице

// или ARG15, если 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)