Aula 4 – Expressões e Operadores Cleverton...

37
Aula 4 – Expressões e Operadores Cleverton Hentz

Transcript of Aula 4 – Expressões e Operadores Cleverton...

Aula 4 – Expressões e Operadores Cleverton Hentz

Sumário de Aula

2

}  Expressões }  Operadores }  Linearização de Expressões

Expressões

3

}  Operador é uma função que atua sobre operandos para produzir algum resultado

}  Avaliação é o cálculo da expressão para produzir um valor }  O resultado de uma expressão pode ser utilizado nas

seguintes situações: }  Atribuição de valores à variáveis;

¨  Neste caso, o valor armazenado na variável é atualizado, recebendo o valor resultante da avaliação da expressão.

}  Utilizado em uma instrução de avaliação;

Uma expressão é composta por variáveis, constantes, ou qualquer combinação válida de variáveis, constantes ou operadores e que retorne um resultado após a sua avaliação.

Exemplo de Expressões

4

}  Tendo a expressão 1+5, podemos analisar seus elementos da seguinte forma: }  Um operador (+) que representa uma soma; }  Duas constantes/literais (1,5) que representam números

inteiros }  O resultado da expressão é a constante 6;

}  Exemplo de aplicação de expressões: int m = 1 + 5 int a = m - 2 Console.WriteLine(a + 2)

Operadores

5

}  Os operadores podem ser entendidos como funções que são aplicadas à valores(expressões);

}  Os valores utilizados em conjunto com os operadores são conhecidos como operandos;

}  Os operadores podem ter associados a uma determinada quantidade de operandos: }  Operadores unários: Possuem apenas um operando;

}  -5, -6 e -1.

}  Operadores binários: Possuem dois operandos. }  5 + 2, 6 + 7, - 5 - 7

Classificação dos Operadores

6

}  Os operadores podem ser classificados através do tipo de dados dos seus operandos: }  Aritméticos: São utilizados em expressões aritméticas, logo

seus resultados são números; }  Relacionais e lógicos: São utilizados em expressões lógicas,

logo seus resultados são valores lógicos; }  String: São utilizadas em expressões entre strings, logo seus

resultados são valores de caracteres;

Operadores Aritméticos

7

Oper. Tipo significado exemplos + binário adição 2 + 3 - binário subtração 6 - 1, x - a - 2

* binário multiplicação 7 * 3, num * 2 / binário divisão 15 / 3, (4 + 4) / 2 % binário resto inteiro da divisão 6 % 2 é igual a 0 9 % 4 é igual a 1 - unário inversão de sinal -4, -2.5

Exemplos Expressões

8

}  2 + 3 }  -5 - 4 }  4 + 5 - 6 }  5 + 6 + 7

Linearização de Expressões

9

}  Nos algoritmos nos trabalhamos as expressões na forma linear;

}  Não podemos escrever ao invés disso escrevemos 5/3 ;

}  Os parêntesis são utilizados para priorizar a resolução das expressões;

}  A função Math.Pow() representa a potenciação }  Outros exemplos:

}  = 5*Math.Pow(x,3) + 7* Math.Pow(x,2) + 3*x – 1

}  = (5 + 2) / 3

35

1375 23 −++ xxx

5 + 23

Exercício

10

}  Coloque as expressões na forma linear:

} 

}  €

−b + c2a

34 3rπ

Precedência dos Operadores

11

}  Precedência diz respeito à ordem em que os operadores em uma expressão serão avaliados: }  Ou seja, o que eu devo fazer antes??? Uma subtração ou uma divisão????

}  Devemos começar avaliando uma expressão da esquerda para a direita, sempre procurando resolver primeiro: }  As subexpressões com parênteses mais internos; }  As subexpressões com operadores de precedência mais alta.

}  Para forçar a avaliação de uma expressão que tem uma precedência menor, utilizamos os parênteses “( )”: }  Parênteses indicam quais subexpressões, dentro de uma expressão, serão

avaliadas primeiro.

Precedência dos Operadores Aritméticos

12

Operador Precedência - (unário) 3 (maior) * / % 2 + - (binário) 1 (menor)

Avaliação de Expressões

13

Sistematizando o processo de avaliação de expressões, temos: 1.  Avaliar os parênteses mais internos da expressão

1.  Caso não existam passe para o próximo passo 2.  Caso exista avalie cada subexpressão a partir do passo 1

2.  Observar a precedência (prioridade) dos operadores }  Em caso de empate, considera-se a avaliação da expressão da esquerda

para a direita

3.  A ordem de avaliação entre os quatro grupos de operadores é: 1.  Aritméticos 2.  Strings 3.  Relacionais 4.  Lógicos

Exemplos

14

}  Resolva as expressões aritméticas abaixo a)  2 * 3 + 4 b)  2 * (3 + 4) c)  (2 * (3 + 4) + 1) d)  (1 - 4) * 3/6 – Math.Pow(3,2) e)  5 + 9 + 7 + 8/4 f)  1 - 4 * 3/6 - Math.Pow(3,2)

Exemplos - Resolução

15

a)  2 * 3 + 4 6 + 4

10 b)  2 * (3 + 4)

2 * 7 14

c)  (2 * (3 + 4) + 1) (2 * 7 + 1) 2 * 7 + 1 14 + 1 15

Exemplos - Resolução

16

d)  (1 - 4) * 3/6 - Math.Pow(3,2) -3 * 3/6 - Math.Pow(3,2)

-3 * 3/6 - 9 -9/6 - 9 -1,5 - 9 -10,5

e)  5 + 9 + 7 + 8/4 5 + 9 + 7 + 2 23

Exemplos - Resolução

17

f)  1 - 4 * 3/6 – Math.Pow(3,2) 1 - 4 * 3/6 – 9 1 - 12/6 - 9 1 - 2 - 9 -10

Expressões String

18

}  Operandos são do tipo string (“texto”); }  Possuem um operador (+):

}  Operador de concatenação; }  Utilizado para unir (concatenar) seqüências de texto; }  O tamanho da string resultante é igual a soma do tamanho de

cada string operada.

}  Exemplos: }  “a” + “b” resulta em: ab }  “sonha” + “dor” resulta em “sonhador” }  “a” + 1 resulta em “a1”

Expressões Lógicas

19

}  Composta de operadores são relacionais ou lógicos;

}  Operandos podem ser de qualquer tipo, desde que usem os operadores lógicos;

}  Resultado é um valor lógico – true ou false.

Operadores Relacionais

20

l  Utilizados para se fazer comparações entre expressões numéricas, string ou lógicas

operador tipo significado exemplo == binário igual 3 = 3, x = y > binário maior que 5 > 4, (y + z) > 8 < binário menor que 3 < 6, num < 12 >= binário maior ou igual a 5 >= 56, (a * b) >= 10 <= binário menor ou igual a 3 <= 9, a + c >= 1 != binário diferente de 8 != 9, a != b

Operadores Relacionais

21

}  Exemplos: a) 2 * 4 == 24 / 3 b) 15 % 4 < 19 % 6 c) 3 * 5 - 4 <= Math.Pow(3,2) / 2 d) 2 + 8 % 7 >= 3 * 6 – 15

l  Precedência: l  Todos os operadores relacionais possuem a mesma

precedência entre si. l  Possuem precedência maior que os operadores aritméticos,

portanto deve-se resolver os aritméticos primeiro

Operadores Lógicos

22

}  Correspondem aos operadores básicos da lógica. Valor do resultado é sempre verdadeiro ou falso

operador tipo significado || binário disjunção && binário conjunção ^ binário disjunção exclusiva (XOR) ! unário negação

Tabela Verdade dos Operadores Lógicos

23

}  É uma tabela que representa todas as possíveis combinações para um determinado conjunto de variáveis e que apresenta o resultado para expressões com estas variáveis.

}  O número de linhas da tabela é definido em relação ao número de variáveis. }  2n Em que n representa o número de variáveis.

}  Exemplo: }  22 é igual a 4.

A B V F F V V V F F

Tabela Verdade dos Operadores Lógicos

24

}  Disjunção (||) – Valor verdade é falso somente se os resultado dos dois operandos for falso.

A B A || B V F V F V V V V V F F F

Exemplo – Disjunção (||)

25

1.  A baleia é um mamífero ou O gato é um felino 2.  A baleia é um mamífero ou O macaco é um peixe 3.  (1 > 3) || ((10 > 1) || (5 != 5))

Exemplo – Disjunção (||)

26

1.  A baleia é um mamífero ou O gato é um felino V ou V resultado: V

2.  A baleia é um mamífero ou O macaco é um peixe V ou F resultado: V

(no ou, apenas uma das afirmações precisa ser verdadeira para o resultado ser verdadeiro)

3.  (1 > 3) || ((10 > 1) || (5 != 5)) T || F F || T

resultado: T

Tabela Verdade da Conjunção (&&)

27

}  Conjunção (&&) – Valor verdade é verdadeiro somente se o resultado de ambos os operandos forem verdadeiros.

A B A && B V F F F V F V V V F F F

Exemplo - Conjunção (&&)

28

1.  A baleia é um mamífero e O gato é um felino 2.  A baleia é um mamífero e O macaco é um peixe 3.  1 > 3 && (10 > 1 && 5 != 5)

Exemplo - Conjunção (&&)

29

1.  A baleia é um mamífero e O gato é um felino V e V resultado: V

2.  A baleia é um mamífero e O macaco é um peixe V e F resultado: F

(no e, toda as afirmações precisam ser verdadeiras para o resultado ser verdadeiro)

3.  1 > 3 && (10 > 1 && 5 != 5) T && F F && F

Resultado: F

Tabela Verdade da negação (!)

30

}  A negação (!) inverte o valor verdade da expressão. Se for falso, passa a ser verdadeiro, se for verdadeiro, passa a ser falso.

A !A V F F V

Exemplo – Negação (!)

31

1.  nao (A baleia é um peixe) 2.  !(“abcd” == “abcd”) 3.  !( !(1 > 3) && (10 > 1 && 5 != 5) )

Tabela Verdade dos Operadores Lógicos

32

}  Disjunção Exclusiva XOR(^) – Valor verdade é verdadeiro somente se apenas um dos dois operandos for verdadeiro.

A B A ^ B V F V F V V V V F F F F

Exemplo – Disjunção Exclusiva(^)

33

1.  (1 > 3) ^ ((10 > 1) ^ (5 != 5)) 2.  (“a” == “a”) ^ (3 <= 7)

Exemplo – Disjunção Exclusiva(^)

34

1.  (1 > 3) ^ ((10 > 1) ^ (5 != 5)) T ^ F F ^ T

resultado: T 2.  (“a” == “a”) ^ ( 3 <= 7) T ^ T resultado: F

Precedência dos Operadores Lógicos

35

Operador Precedência ! (Negação) 4 (maior) ^ (Disjunção Exclusiva) 3 && (Conjunção) 2 || (Disjunção) 1 (menor)

Exemplos de Expressões Lógicas

36

}  (2 > 3) || (3 < 2) && (2 < 3) }  (2 > 3) && ((true ^ false) && !(true && false)) }  (“abc” == “cba”) || (true == false) || (true && false)

}  (a ^ b) && (a || !b) && (a && false)

Exercícios

37

}  Resolva as expressões abaixo: }  “abc” == “ab”+”c” && false ^ (“a” > “b”) }  (4 % 2 + 5 < 10) && ("ab" < "bc” && ("bc" < "bd"))