sábado, 1 de março de 2008

PDA - Aula 06: Operadores e Expressões 2

* Esta obra é uma adptação do autor desse blog da disciplina de Fundamento de Algoritmo para Computação do curso de Tecnologia em Sistemas de Computacão/Cederj UFF das aulas originais cujo os autores são: Adriano Cruz e Jonas Knopman.

Conteúdo:
  1. Objetivos
  2. Operadores Relacionais
  3. Expressões Relacionais
  4. Operadores Lógicos
  5. Expressões Lógicas
  6. Expressões Mistas
  7. Atribuição
  8. Bibliografia
1. Objetivos
  • Apresentar os diversos tipos de operadores e expressões.
  • Mostrar como as expressões devem ser escritas em pseudo-código.
  • Mostrar as regras de avaliação de expressões.
  • Apresentar o conceito de atribuição de resultados.
2. Operadores Relacionais
  • Usados para fazer comparação entre dados compatíveis.

  • O resultado de uma expressão que envolve operadores relacionais é do tipo lógico (verdadeiro ou falso).
  • No curso do PDA Cederj/UFF são considerados que os operadores deste grupo têm a mesma prioridade entre si.
3. Expressões Relacionais
  • Considere a=3, b=7, total=200.0, média=8.1 e ano=2000
  • a > b -- resultado falso
  • total = 100.0 -- resultado falso
  • média >= 7.0 -- resultado verdadeiro
  • ano <> 2001 -- resultado verdadeiro
Exemplos:
  • Considerando a=3, b=7, t=20.0 e m=8.1 qual o resultado das expressões?
  • t <> 100.0
  • (m + b) <= 7.0
  • (t/(b+a)) = 2.0
Solução
  • Temos a=3, b=7, t=20.0 e m=8.1.
  • t <> 100.0 -- resultado verdadeiro
  • (m + b) <= 7.0 -- resultado falso
  • 1a. Operação m+b = 15.1
  • 2a. Operação 15.1 <= 7.0 resultado falso
  • Temos a=3, b=7, t=20.0 e m=8.1.
  • (t/(b+a)) = 2.0
    • 1a. Operação: b+a = 10
    • 2a. Operação: t / 10 = 20.0 /10 = 2.0
    • 3a. Operação: 2.0 = 2.0 portanto resultado verdadeiro

  • Usados em expressões cujo resultado dever ser ou o valor verdadeiro ou falso


4. Operadores Lógicos
  • Existem outros operadores lógicos, como por exemplo, os operadores ou-exclusivo, ne (não e), nou (não ou).
  • Estes outros operadores podem ser obtidos a partir dos três já definidos (e, ou e não).
  • Como os operadores aritméticos estes operadores também têm uma “tabuada”.
  • A ou B tem como resultado verdadeiro se A ou B for igual a verdadeiro.
  • A e B tem como resultado verdadeiro somente se A e B forem iguais a verdadeiro.

  • Algumas vezes estas tabelas são mostradas com o algarismo 0 representando falso e 1 verdadeiro.
  • Para ilustrar os resultados dos operadores lógicos vamos usar como exemplo interruptores que devem ser usados para acender lâmpadas.


  • Lâmpada acende (verdade) somente se interruptor a e interruptor b estiverem ligados (verdade).

  • Lâmpada apaga (falso) porque interruptor a está desligado (falso).
  • Basta um interruptor desligado para que a lâmpada apague.

  • Para a lâmpada acender (verdade) basta pelo menos um interruptor ligado (verdade).

  • Para a lâmpada apagar (falso) é necessário que os dois interruptores sejam desligados (falso).
  • Considere a=falso, b=verdadeiro e c=falso.
  • a e b ou c -- resultado falso
  • 1a. Operação: a e b = falso e verdadeiro = falso
  • 2a. Operação: falso ou c = falso ou falso = falso
  • Considere a=falso, b=verdadeiro e c=falso.
  • não a e b -- resultado verdadeiro
    1a. Operação: não a = não falso = verdadeiro
    2a. Operação: verdadeiro e b = verdadeiro e verdadeiro = verdadeiro
  • Considerando a=falso, b=verdadeiro e c=falso, qual é o resultado das expressões?
  • a e (b ou c)
  • não (a e b)
  • a ou b ou c
5. Expressões lógicas
  • Considerando a=falso, b=verdadeiro e c=falso temos:
  • a e (b ou c) -- resultado falso
    1a. Operação: b ou c = verdadeiro ou falso = verdadeiro
    2a. Operação: a e verdadeiro = falso e verdadeiro = falso
  • Considerando a=falso, b=verdadeiro e c=falso temos:
  • não (a e b) -- resultado verdadeiro
    1a. Operação: a e b = falso e verdadeiro = falso
    2a. Operação: não falso = verdadeiro
  • Considerando a=falso, b=verdadeiro e c=falso temos:
  • a ou b ou c -- resultado verdadeiro
    1a. Operação: a ou b = falso ou verdadeiro = verdadeiro
    2a. Operação: verdadeiro ou c = verdadeiro ou verdadeiro = verdadeiro
6. Expressões mistas
  • É muito comum em algoritmos juntar operadores relacionais e lógicos em expressões.
  • Estas expressões são geralmente do tipo
    (nota1 > 7.0) ou (nota2 > 7.0)‏
    (salario > valor) e (ano > 2001)‏
  • O resultado destas expressões é do tipo lógico (verdadeiro ou falso).
  • Considerando l1=5.0, l2=3.0, l3=4.0 e l4=7.1:
  • (l1 > l3) e (l2 > l4) -- resultado falso
    1a. Operação: 5.0 > 4.0 = verdadeiro
    2a. Operação: 3.0 > 7.1 = falso
    3a. Operação: verdadeiro e falso = falso
  • É possível juntar também operadores aritméticos.
  • Considere l1=5.0, l2=3.0, l3=4.0 e l4=7.1, qual o resultado da expressão?
  • ((l1+2) = l3) ou (l2 <= l4) -- resultado verdadeiro 1a. Operação: 5.0 + 2 = 7.0 2a. Operação: 7.0 = 3.0 = falso 3a. Operação: 3.0 <= 7.1 = verdadeiro 4a. Operação: falso ou verdadeiro = verdadeiro
  • Considerando presente=verdadeiro , n1=7.5 e n2=6.5, qual é o resultado da expressão?
  • (((n1+n2)/2.0) >= 7.0) e presente
  • Considerando presente=verdadeiro , n1=7.5 e n2=6.5 temos:
  • Observe o uso de parênteses para indicar a prioridade das operações
  • (((n1+n2)/2.0) >= 7.0) e presente
    1a. Operação: n1+n2 = 7.5+6.5 = 14.0
    2a. Operação: 14.0/2.0 = 7.0
    3a. Operação: 7.0 >= 7.0 = verdadeiro
    4a. Operação: verdadeiro e presente = verdadeiro e verdadeiro = verdadeiro.
  • Em expressões podemos misturar vários tipos de operadores.
  • A tabela mostra a prioridade relativa dos operadores estudados.
7. Atribuição
  • O resultado de expressões normalmente deve ser armazenado em uma variável para uso futuro.
  • Costuma-se chamar de atribuição esta operação.
  • Em nosso pseudo-código o comando de atribuição é representado pelo símbolo 
  • Por exemplo:
    a  35 * 6 + 2
  • O comando acima faz com que o resultado da expressão (=212) seja armazenado na variável a.
  • Todo comando de atribuição pode ser dividido em duas etapas:

    2. Avaliação da expressão;
    3. Armazenamento do resultado da avaliação na posição de memória representada pela variável.
  • Considere x=10, y=5 e z=8.
  • As figuras abaixo mostram a memória antes e depois do comando de atribuição
    x <- y + z
‏‏

8. Bibliografia

http://equipe.nce.ufrj.br/adriano/algoritmos/apostila/expressoes.htm


Nenhum comentário: