Início > Desenvolvimento, Programação > Operadores Lógicos e Relacionais – Programação #12

Operadores Lógicos e Relacionais – Programação #12

Os operadores lógicos e relacionais são elementos que é fundamental conhecer dada a sua importância na elaboração de um programa.  Em todos os programas são utilizadas expressões relacionais e lógicas para a tomada de decisões e consequente  desvio do fluxo do programa.  Recorde as estruturas de programação.
Trataremos então dos seguintes aspectos:
  • Operadores Relacionais
  • Operadores lógicos
  • Expressões lógicas e relacionais
Em termos de nomenclatura, considera-se que o valor lógico Verdadeiro é representado por 1 e o valor lógico Falso por 0.  Por outro lado, o símbolo utilizada para a representação dos operadores varia de linguagem para linguagem, pelo que se apresentam aqui uma representação normalizada a utilizar apenas na elaboração de algoritmos, sendo apresentada posteriormente toda a simbologia referente àslinguagens de programação em estudo.
Operadores Relacionais
Apresenta-se de seguida uma tabela com todos os operadores relacionais.
Operador
maior
menor
maior ou igual
menor ou igual
igual
diferente
Símbolo
>
<
>=
<=
=
¹
Exemplo
a > b
a < b
a >= b
a <= b
a = b
¹ b
Resultado
1 se a maior que b, senão 0
1 se a menor que b, senão 0
1 se a maior ou igual a b, senão 0
1 se a menor ou igual a b, senão 0
1 se igual a b, senão 0
1 se diferente de b, senão 0

de notar que, em termos de precedência e associabilidade,  estes operadores têm uma precedência menor do que os operadores aritméticos. 
Nota importante
Não é eficaz comparar valores do tipo real com os operadores de igualdade em virtude da representação em virgula flutuante ser inexacta em alguns números.  Os exemplos que se seguem, sendo algebricamente verdadeira, são avaliadas como falsas na maioria dos computadores.
(1.0 / 3.0) + (1.0 / 3.0) + (1.0 / 3.0) = 1
Esta expressão é avaliada como falsa devido ao facto de 1.0 / 3.0 ter como resultado um valor  que contém número infinito de casas decimais (3.3333333…)  O computador é apenas capaz de capaz de utilizar um número finito de casas decimais e que portanto é feito um arredondamento do valor de 1/3 em cada ocorrência.
Para evitar os erros causados pela representação inexacta de valores reais, deve-se evitar utilizar as comparações de igualdade com números reais.

Operadores Lógicos
Operador
And
Or
Negação
Símbolo
Ù
Ú
~
Exemplo
Ù b
Ú b
~a
Resultado
1 se a e b forem não nulos, senão 0
1 se a ou b forem não nulos, senão 0
1 se a for zero, senão 0

Reveja as tabelas de verdade destes operadores
Operador AND – verdadeiro apenas se A e B forem verdadeiras
Operador Or – Verdadeiro se pelo menos um dos elementos for verdadeiro
Operador Not (negação) – Inversão do valor
Expressões Lógicas e Relacionais
Na maioria das linguagens de programação, os operandos das operações lógicas e relacionais podem ser valores inteiros ou reais, ou mesmo caracters pois são tratados como inteiros.
Os operadores lógicos e relacionais são geralmente os únicos operadores cuja ordem de avaliação dos operandos está definida, avaliando a expressão da esquerda para a direita
As expressões lógicas e relacionais complexas são usualmente utilizadas nas estruturas de selecção e repetição.  Nas estruturas de selecção, a utilização do operador AND é equivalente à utilização de estruturas Se  (if)  embutidas como no exemplo que se segue:
A expressão:
Se ( ( a < b ) AND ( b < C ) )
     declaração
è equivalente a:
Se ( a < B )
     Se ( b < c )
            declaração
Isto é verdade se não for utilizada a declaração senão. No exemplo que se segue a interpretação é feita de forma diferente:
Se ( ( a < b ) AND ( b < C ) )
     declaração 1
Senão
     declaração 2
não é o mesmo que:
Se ( a < B )
     Se ( b < c )
            declaração 1
Senão
            declaração 2
Para obter uma declaração equivalente deveríamos ter:
Se ( a < B )
     Se ( b < c )
            declaração 1
     Senão
            declaração 2
Senão
            declaração 2

Classes de operadores e respectivas precedências
Classe do operador
unários
multiplicativo
aditivo
relacionais
igualdade
AND
OR
atribuição
Operador
–    +   !
 *    /    Resto()
+   –
<      >=
=   ¹
&&
||
=
Associatividade
direita / esquerda
Esquerda / direita
esquerda  / direita
esquerda / direita
esquerda / direita
esquerda / direita
esquerda / direita
direita / esquerda
Precedência
maior
menor

Anúncios
  1. Nenhum comentário ainda.
  1. No trackbacks yet.

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s

%d blogueiros gostam disto: