Árvore de páginas

Retorna um número que representa o resto da divisão do primeiro parâmetro (nDividend) pelo segundo (nDivisor). O operador módulo (%) do AdvPL têm a mesma funcionalidade da função Mod.

Sintaxe

Mod( < nDividend >, < nDivisor > )

Parâmetros

Nome

Tipo

Descrição

Obrigatório

Referência

nDividend

numérico

Indica o dividendo da operação de divisão.

X

 

nDivisor

numérico

Indica o divisor da operação de divisão.

X

 

Retorno

Nome

Tipo

Descrição

nRet

numérico

Retorna um número que representa o resto de <nDividend> dividido por <nDivisor>.

Observações

  • Em builds anteriores ao Protheus, a função Mod possuía comportamento diferenciado quando um dos parâmetros era negativo.
  • Nas builds de Protheus, a função Mod comporta-se da mesma forma que o operador módulo (%).

Exemplos

Exemplo 1
#DEFINE CRLF Chr(13)+Chr(10)
User Function Exemplo()
Local cMensagem := ""
//+----------------------------------------------------------------------------+
//|Exemplifica o uso da função Mod                                             |
//+----------------------------------------------------------------------------+
  cMensagem += "Mod(-3, -2) = "   + cValToChar(Mod(-3, -2))  + CRLF
  cMensagem += "Mod(-6, -3) = "   + cValToChar(Mod(-6, -3))  + CRLF
  cMensagem += "Mod(-9, -4) = "   + cValToChar(Mod(-9, -4))  + CRLF
  cMensagem += "Mod(-12, -5) = "  + cValToChar(Mod(-12, -5)) + CRLF
  cMensagem += "Mod(-16, -6) = "  + cValToChar(Mod(-16, -6)) + CRLF
  cMensagem += "Mod(-20, -7) = "  + cValToChar(Mod(-20, -7)) + CRLF
  cMensagem += "Mod(0, -1) = "    + cValToChar(Mod(0, -1))   + CRLF
  cMensagem += "Mod(3, -2) = "    + cValToChar(Mod(3, -2))   + CRLF
  cMensagem += "Mod(6, -3) = "    + cValToChar(Mod(6, -3))   + CRLF
  cMensagem += "Mod(9, -4) = "    + cValToChar(Mod(9, -4))   + CRLF
  cMensagem += "Mod(12, -5) = "   + cValToChar(Mod(12, -5))  + CRLF
  cMensagem += "Mod(16, -6) = "   + cValToChar(Mod(16, -6))  + CRLF
  cMensagem += "Mod(20, -7) = "   + cValToChar(Mod(20, -7))  + CRLF
  cMensagem += "Mod(0, 1) = "     + cValToChar(Mod(0, 1))    + CRLF
  cMensagem += "Mod(3, 2) = "     + cValToChar(Mod(3, 2))    + CRLF
  cMensagem += "Mod(6, 3) = "     + cValToChar(Mod(6, 3))    + CRLF
  cMensagem += "Mod(9, 4) = "     + cValToChar(Mod(9, 4))    + CRLF
  cMensagem += "Mod(12, 5) = "    + cValToChar(Mod(12, 5))   + CRLF
  cMensagem += "Mod(16, 6) = "    + cValToChar(Mod(16, 6))   + CRLF
  cMensagem += "Mod(20, 7) = "    + cValToChar(Mod(20, 7))
//+----------------------------------------------------------------------------+
//|Apresenta uma mensagem com os resultados obtidos                            |
//+----------------------------------------------------------------------------+
Return MsgInfo(cMensagem, "Mod - Exemplo")

Resultado do Exemplo

Abrangência

Microsiga Protheus 8.11, Protheus 10

Veja também

 

  • Sem rótulos