Professional Documents
Culture Documents
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.
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.
Abrangência
Versão 5.07 Versão 5.08 Versão 6.09 Versão 7.10 Versões Anteriores
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
+ Adição
- Subtração
* Multiplicação
/ Divisão
** ou ^ Exponenciação
% Módulo (Resto da Divisão)
Operadores de String
Operadores Lógicos
.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
() 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 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.
O símbolo @ é utilizado para indicar que durante a passagem de uma variável para uma
função ou procedimento ela seja tomada como uma referência e não como valor.
Operadores de Atribuicä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
= Atribuição Simples
:= Atribuição em Linha
+= Adição e Atribuição em Linha
-= Subtração e Atribuição em Linha
*= Multiplicação e Atribuição em Linha
/= Divisão e Atribuição em Linha
**= ou ^= Exponenciação e Atribuição em Linha
%= Módulo (resto da divisão) e Atribuição em Linha
Atribuição Simples
nVariavel = 10
Atribuição em Linha
Quando diversas variáveis são inicializadas em uma mesma linha, a atribuição começa
da direita para a esquerda, ou seja, nVar3 recebe o valro zero inicialmente, nVar2
recebe o conteúdo de nVar3 e nVar1 recebe o conteúdo de nVar2 por final.
Com o operador de atribuição em linha, pode-se substituir as inicializações individuais
de cada variável por uma inicialização apenas:
por
O operador de atribuição em linha também pode ser utilizado para substituir valores de
campos em um banco de dados.
Atribuição Composta
Abrangência
Versão 5.07 Versão 5.08 Versão 6.09 Versão 7.10 Versões Anteriores
No entanto:
Local nA := 10
Local nB := ++nA + nA
Resulta em 22, pois o operador incremental aumentou o valor da primeira nA antes que
seu valor fosse considerado.
Ordem de Precedencia dos Operadores
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
Dependendo do tipo de operador, existe uma ordem de precedência para a avaliação dos
operandos. Em princípio, todas as operações com os operadores são realizadas da
esquerda para a direita se eles tiverem o mesmo nível de prioridade.
• 1. Exponenciação
• 2. Multiplicação e Divisão
• 3. Adição e Subtração
Considere o exemplo: