Documento ADVPL - Protheus
Trabalho Escolar: Documento ADVPL - Protheus. Pesquise 862.000+ trabalhos acadêmicosPor: gustoliveira • 4/5/2014 • 1.507 Palavras (7 Páginas) • 662 Visualizações
Operadores da Linguagem
Macro Substituicäo
Revisão: 13/07/2002
Abrangência
Versão 5.07 Versão 5.08 Versão 6.09 Versão 7.10 Versões Anteriores
O operador de macro substituição, simbolizado pelo "e" comercial (&), é utilizado para a avaliação de expressões em tempo de execução. Funciona como se uma expressão armazenada fosse compilada em tempo de execução, antes de ser de fato executada. Considere o exemplo:
01 X := 10
02 Y := "X + 1"
03 B := &Y // O conteúdo de B será 11
A variável X é atribuída com o valor 10, enquanto a variável Y é atribuída com a string de caracteres contendo "X + 1".
A terceira linha utiliza o operador de macro. Esta linha faz com que o número 11 seja atribuído à variável B. Pode-se perceber que esse é o valor resultante da expressão em formato de caractere contida na variável Y.
Utilizando-se uma técnica matemática elementar, a substituição, temos que na segunda linha, Y é definido como "X + 1", então pode-se substituir Y na terceira linha:
03 B := &"X + 1"
O operador de macro cancela as aspas:
03 B := X + 1
Pode-se perceber que o operador de macro remove as aspas, o que deixa um pedaço de código para ser executado. Deve-se ter em mente que tudo isso acontece em tempo de eecução, o que torna tudo muito dinâmico. Uma utilização interessante é criar um tipo de calculadora, ou avaliador de fórmulas, que determina o resultado de algo que o usuário digita.
O operador de macro tem uma limitação: variáveis referenciadas dentro da string de caracteres (X nos exemplos anteriores) não podem ser locais.
Operadores Comuns
Revisão: 13/07/2002
Abrangência
Versão 5.07 Versão 5.08 Versão 6.09 Versão 7.10 Versões Anteriores
Na documentação sobre variáveis há uma breve demonstração de como atribuir valores a uma variável da forma mais simples. O AdvPl amplia significativamente a utilização de variáveis através do uso de expressões e funções. Uma expressão é um conjunto de operadores e operandos cujo resultado pode ser atribuído a uma variável ou então analisado para a tomada de decisões. Por exemplo:
Local nSalario := 1000, nDesconto := 0.10
Local nAumento, nSalLiquido
nAumento := nSalario * 1.20
nSalLiquido := nAumento * (1-nDesconto)
Neste exemplo são utilizadas algumas expressões para calcular o salário líquido após um aumento. Os operandos de uma expressão podem ser uma variável, uma constante, um campo de arquivo ou uma função.
Operadores Matemáticos
Os operadores utilizados em AdvPl para cálculos matemáticos são:
+ Adição
- Subtração
* Multiplicação
/ Divisão
** ou ^ Exponenciação
% Módulo (Resto da Divisão)
Operadores de String
Os operadores utilizados em AdvPl para tratamento de caracteres são:
+ Concatenação de strings (união)
- Concatenação de strings com eliminação dos brancos finais das strings intermediárias
$ Comparação de Substrings (contido em)
Operadores Relacionais
Os operadores utilizados em AdvPl para operações e avaliações relacionais são:
< Comparação Menor
> Comparação Maior
= Comparação Igual
== Comparação Exatamente Igual (para caracteres)
<= Comparação Menor ou Igual
>= Comparação Maior ou Igual
<> ou # ou != Comparação Diferente
Operadores Lógicos
Os operadores utilizados em AdvPl para operações e avaliações lógicas são:
.And. E lógico
.Or. OU lógico
.Not. ou ! NÃO lógico
Operadores Especiais
Revisão: 13/07/2002
Abrangência
Versão 5.07 Versão 5.08 Versão 6.09 Versão 7.10 Versões Anteriores
Além dos operadores comuns, o AdvPl possui alguns outros operadores ou identificadores. Estas são suas finalidades:
() Agrupamento ou Função
[] Elemento de Matriz
{} Definição de Matriz, Constante ou Bloco de Código
-> Identificador de Apelido
& Macrosubstituição
@ Passagem de parâmetro por referência
Os parênteses são utilizados para agrupar elementos em uma expressão mudando a ordem de precedência da avaliação da expressão (segundo as regras matemáticas por exemplo). Também servem para envolver os argumentos de uma função. Veja a documentação sobre precedência de operadores para maiores detalhes.
Os colchetes são utilizados para especificar um elemento específico de uma matriz. Por exemplo, A[3,2], refere-se ao elemento da matriz A na linha 3, coluna 2.
As
...